sdlrenderer: C89 support

This commit is contained in:
Rob Loach 2021-12-14 21:10:30 -05:00
parent fb698ba7ef
commit eadb4179af
No known key found for this signature in database
GPG Key ID: 627C60834A74A21A
3 changed files with 18 additions and 16 deletions

View File

@ -2,7 +2,7 @@
BIN = demo
# Flags
CFLAGS += -std=c99 -pedantic -O0
CFLAGS += -std=c89 -pedantic -O0
CFLAGS += `sdl2-config --cflags`
SRC = main.c

View File

@ -71,6 +71,7 @@ main(int argc, char *argv[])
SDL_Window *win;
SDL_Renderer *renderer;
int running = 1;
int flags = 0;
/* GUI */
struct nk_context *ctx;
@ -89,7 +90,6 @@ main(int argc, char *argv[])
exit(-1);
}
int flags = 0;
flags |= SDL_RENDERER_ACCELERATED;
flags |= SDL_RENDERER_PRESENTVSYNC;

View File

@ -73,6 +73,8 @@ nk_sdl_render(enum nk_anti_aliasing AA)
struct nk_sdl_device *dev = &sdl.ogl;
{
SDL_Rect saved_clip;
SDL_bool clipping_enabled;
int vs = sizeof(struct nk_sdl_vertex);
size_t vp = offsetof(struct nk_sdl_vertex, position);
size_t vt = offsetof(struct nk_sdl_vertex, uv);
@ -110,9 +112,8 @@ nk_sdl_render(enum nk_anti_aliasing AA)
/* iterate over and execute each draw command */
offset = (const nk_draw_index*)nk_buffer_memory_const(&ebuf);
SDL_Rect saved_clip;
SDL_bool clipping_enabled = SDL_RenderIsClipEnabled(sdl.renderer);
clipping_enabled = SDL_RenderIsClipEnabled(sdl.renderer);
SDL_RenderGetClipRect(sdl.renderer, &saved_clip);
nk_draw_foreach(cmd, &sdl.ctx, &dev->cmds)
@ -128,18 +129,19 @@ nk_sdl_render(enum nk_anti_aliasing AA)
SDL_RenderSetClipRect(sdl.renderer, &r);
}
const void *vertices = nk_buffer_memory_const(&vbuf);
{
const void *vertices = nk_buffer_memory_const(&vbuf);
int ret = SDL_RenderGeometryRaw(sdl.renderer,
(SDL_Texture *)cmd->texture.ptr,
(const void*)((const nk_byte*)vertices + vp), vs,
(const void*)((const nk_byte*)vertices + vc), vs,
(const void*)((const nk_byte*)vertices + vt), vs,
(vbuf.needed / vs),
(void *) offset, cmd->elem_count, 2);
offset += cmd->elem_count;
SDL_RenderGeometryRaw(sdl.renderer,
(SDL_Texture *)cmd->texture.ptr,
(const void*)((const nk_byte*)vertices + vp), vs,
(const void*)((const nk_byte*)vertices + vc), vs,
(const void*)((const nk_byte*)vertices + vt), vs,
(vbuf.needed / vs),
(void *) offset, cmd->elem_count, 2);
offset += cmd->elem_count;
}
}
SDL_RenderSetClipRect(sdl.renderer, &saved_clip);
@ -317,7 +319,7 @@ void nk_sdl_shutdown(void)
nk_font_atlas_clear(&sdl.atlas);
nk_free(&sdl.ctx);
SDL_DestroyTexture(dev->font_tex);
//glDeleteTextures(1, &dev->font_tex);
/* glDeleteTextures(1, &dev->font_tex); */
nk_buffer_free(&dev->cmds);
memset(&sdl, 0, sizeof(sdl));
}