Added support for desktop full screen with pillarboxing and letterboxing
and started adding some comments to the code
This commit is contained in:
1 parent
ffaa6e5ae7
commit
e110b1f2fd
10 files changed
+351
-77
No files matched your search
+20
-11
@@ -15,24 +15,24 @@ struct renderer {
|
||||
SDL_Renderer *SDL_base_renderer;
|
||||
};
|
||||
|
||||
Renderer *create_renderer() { return (Renderer *)malloc(sizeof(Renderer)); }
|
||||
|
||||
bool init_renderer(Renderer *renderer, SDL_Window *window) {
|
||||
if (!renderer || !window) {
|
||||
return false;
|
||||
Renderer *create_renderer(SDL_Window *window) {
|
||||
Renderer *renderer = (Renderer *)malloc(sizeof(Renderer));
|
||||
if (!renderer) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
renderer->SDL_base_renderer = SDL_CreateRenderer(
|
||||
window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
|
||||
if (!(renderer->SDL_base_renderer)) {
|
||||
destroy_renderer(&renderer);
|
||||
|
||||
// Technically speaking, I believe it should be possible to just return
|
||||
// the pointer. However, to make sure that everything is clear, I am
|
||||
// performing a test that returns true or false based on whether the
|
||||
// pointer was initialised or not.
|
||||
return renderer->SDL_base_renderer ? true : false;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return renderer;
|
||||
}
|
||||
|
||||
void get_drawable_size(Renderer *renderer, int32_t *w, int32_t *h) {
|
||||
void get_render_output_size(Renderer *renderer, int32_t *w, int32_t *h) {
|
||||
SDL_GetRendererOutputSize(renderer->SDL_base_renderer, w, h);
|
||||
}
|
||||
|
||||
@@ -47,6 +47,15 @@ void render_clear(const Renderer *renderer, SDL_Color color) {
|
||||
SDL_RenderClear(renderer->SDL_base_renderer);
|
||||
}
|
||||
|
||||
void fill_rect(const Renderer *renderer, SDL_Color color, float x, float y,
|
||||
float w, float h) {
|
||||
SDL_FRect dest = {x, y, w, h};
|
||||
|
||||
SDL_SetRenderDrawColor(renderer->SDL_base_renderer, color.r, color.g, color.b,
|
||||
color.a);
|
||||
SDL_RenderFillRectF(renderer->SDL_base_renderer, &dest);
|
||||
}
|
||||
|
||||
void render_surface(const Renderer *renderer, SDL_Surface *surface, float x,
|
||||
float y, float w, float h) {
|
||||
SDL_Texture *texture =
|
||||
|
||||
Reference in new issue
Block a user