Scaller
This commit is contained in:
+13
-12
@@ -46,7 +46,7 @@ void renderer_main(void(*game_main)(void)) {
|
||||
win = SDL_CreateWindow("GAME", // creates a window
|
||||
SDL_WINDOWPOS_CENTERED,
|
||||
SDL_WINDOWPOS_CENTERED,
|
||||
500, 500, 0);
|
||||
1280, 720, 0);
|
||||
|
||||
Uint32 render_flags = SDL_RENDERER_ACCELERATED;
|
||||
|
||||
@@ -95,17 +95,6 @@ void renderer_main(void(*game_main)(void)) {
|
||||
|
||||
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);
|
||||
if(texture == NULL) {
|
||||
fprintf(stderr, "Error while creating texture %s is_null: %d\n", SDL_GetError(), object->object.surface == NULL);
|
||||
exit(1);
|
||||
}
|
||||
SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND);
|
||||
object->cache = texture;
|
||||
printf("Built cache\n");
|
||||
}
|
||||
|
||||
int error = SDL_RenderCopyEx(renderer, object->cache, NULL, &object->rect, 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());
|
||||
@@ -117,6 +106,16 @@ void renderer_main(void(*game_main)(void)) {
|
||||
}
|
||||
}
|
||||
|
||||
static void buildCache(RenderItem_t * object) {
|
||||
SDL_Texture * texture = SDL_CreateTextureFromSurface(renderer, object->object.surface);
|
||||
if(texture == NULL) {
|
||||
fprintf(stderr, "Error while creating texture %s is_null: %d\n", SDL_GetError(), object->object.surface == NULL);
|
||||
exit(1);
|
||||
}
|
||||
SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND);
|
||||
object->cache = texture;
|
||||
}
|
||||
|
||||
RenderId_t renderer_renderObject(RenderObject_t object) {
|
||||
RenderId_t itemId = objectCount++;
|
||||
|
||||
@@ -134,6 +133,8 @@ RenderId_t renderer_renderObject(RenderObject_t object) {
|
||||
itemId
|
||||
};
|
||||
|
||||
buildCache(&item);
|
||||
|
||||
objects[itemId] = item;
|
||||
//the objects are sorted
|
||||
qsort(objects, objectCount, sizeof(RenderItem_t), (__compar_fn_t)compartSort);
|
||||
|
||||
Reference in New Issue
Block a user