MCPcopy Create free account
hub / github.com/RavEngine/RavEngine / Draw

Function Draw

deps/SDL2/test/testrendertarget.c:181–223  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

179}
180
181SDL_bool
182Draw(DrawState *s)
183{
184 SDL_Rect viewport;
185 SDL_Texture *target;
186
187 SDL_RenderGetViewport(s->renderer, &viewport);
188
189 target = SDL_CreateTexture(s->renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_TARGET, viewport.w, viewport.h);
190 if (!target) {
191 SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't create render target texture: %s\n", SDL_GetError());
192 return SDL_FALSE;
193 }
194 SDL_SetRenderTarget(s->renderer, target);
195
196 /* Draw the background */
197 SDL_RenderCopy(s->renderer, s->background, NULL, NULL);
198
199 /* Scale and draw the sprite */
200 s->sprite_rect.w += s->scale_direction;
201 s->sprite_rect.h += s->scale_direction;
202 if (s->scale_direction > 0) {
203 if (s->sprite_rect.w >= viewport.w || s->sprite_rect.h >= viewport.h) {
204 s->scale_direction = -1;
205 }
206 } else {
207 if (s->sprite_rect.w <= 1 || s->sprite_rect.h <= 1) {
208 s->scale_direction = 1;
209 }
210 }
211 s->sprite_rect.x = (viewport.w - s->sprite_rect.w) / 2;
212 s->sprite_rect.y = (viewport.h - s->sprite_rect.h) / 2;
213
214 SDL_RenderCopy(s->renderer, s->sprite, NULL, &s->sprite_rect);
215
216 SDL_SetRenderTarget(s->renderer, NULL);
217 SDL_RenderCopy(s->renderer, target, NULL, NULL);
218 SDL_DestroyTexture(target);
219
220 /* Update the screen! */
221 SDL_RenderPresent(s->renderer);
222 return SDL_TRUE;
223}
224
225void
226loop()

Callers 1

loopFunction · 0.70

Calls 8

SDL_RenderGetViewportFunction · 0.85
SDL_CreateTextureFunction · 0.85
SDL_LogErrorFunction · 0.85
SDL_GetErrorFunction · 0.85
SDL_SetRenderTargetFunction · 0.85
SDL_RenderCopyFunction · 0.85
SDL_DestroyTextureFunction · 0.85
SDL_RenderPresentFunction · 0.85

Tested by

no test coverage detected