A few patches

This commit is contained in:
2023-01-20 22:51:21 +01:00
parent 8d62c17715
commit 2d62bfc599
5 changed files with 40 additions and 10 deletions
+13 -5
View File
@@ -1,6 +1,7 @@
#include "renderer.h"
#include <SDL2/SDL.h>
#include <SDL2/SDL_blendmode.h>
#include <SDL2/SDL_error.h>
#include <SDL2/SDL_rect.h>
#include <SDL2/SDL_render.h>
#include <SDL2/SDL_timer.h>
@@ -33,18 +34,22 @@ static int compartSort(const RenderItem_t * a, const RenderItem_t * b) {
static void * render_thread(void *) {
SDL_GetRendererOutputSize(renderer, &monitorSize.width, &monitorSize.height);
objectStorageSize = 1000;
objects = malloc(objectStorageSize);
while(true) {
for(int i = 0; i < objectCount; i++) {
RenderItem_t * object = &objects[i];
if(object->cache == NULL) {
SDL_Texture * texture = SDL_CreateTextureFromSurface(renderer, object->object.surface);
SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND);
if(texture == NULL) {
fprintf(stderr, "Error while creating texture %s is_null: %d\n", SDL_GetError(), object->object.surface == NULL);
}
SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_NONE);
object->cache = texture;
printf("Built cache\n");
}
int error = SDL_RenderCopyEx(renderer, object->cache, &object->rect, NULL, object->object.angle_degre, NULL, SDL_FLIP_NONE);
if(error != 0) {
fprintf(stderr, "Render error in object %d with error %s\n", object->id, SDL_GetError());
}
SDL_RenderCopyEx(renderer, object->cache, &object->rect, NULL, object->object.angle_degre, NULL, SDL_FLIP_NONE);
}
SDL_Delay(1000 / 400); //400fps or u a pussy
}
@@ -66,6 +71,9 @@ void renderer_main() {
// creates a renderer to render our images
renderer = SDL_CreateRenderer(win, -1, render_flags);
objectStorageSize = 1000;
objects = malloc(objectStorageSize);
pthread_create(&thread, NULL, render_thread, NULL);
}