Archeus 0.0.0
A C library and game engine that focuses on documentation
Loading...
Searching...
No Matches
view.c File Reference
#include "arc/graphics/view.h"
#include "arc/std/errno.h"
#include <SDL.h>
#include <stdlib.h>

Go to the source code of this file.

Functions

void ARC_View_Create (ARC_View **view, ARC_Renderer *renderer, ARC_Rect bounds)
 creates ARC_View type
 
void ARC_View_Destroy (ARC_View *view)
 destroys ARC_View type
 
void ARC_View_Render (ARC_View *view, ARC_View_RenderFn renderFn, void *data)
 renders callbacks contents within an ARC_View
 
ARC_Rect ARC_View_GetBounds (ARC_View *view)
 gets bounds from ARC_View type
 

Function Documentation

◆ ARC_View_Create()

void ARC_View_Create ( ARC_View ** view,
ARC_Renderer * renderer,
ARC_Rect bounds )

creates ARC_View type

Parameters
viewARC_View to initialize
rendererARC_Renderer the view will render to
boundsARC_Rect bounds of the view within the renderer

Definition at line 7 of file view.c.

7 {
8 *view = (ARC_View *)malloc(sizeof(ARC_View));
9 (*view)->renderer = renderer;
10 (*view)->bounds = bounds;
11}
ARC_Renderer * renderer
Definition view.h:12

References ARC_View::renderer.

◆ ARC_View_Destroy()

void ARC_View_Destroy ( ARC_View * view)

destroys ARC_View type

Definition at line 13 of file view.c.

13 {
14 free(view);
15}

◆ ARC_View_GetBounds()

ARC_Rect ARC_View_GetBounds ( ARC_View * view)

gets bounds from ARC_View type

Parameters
viewARC_View to get bounds from
Returns
bounds of the view

Definition at line 33 of file view.c.

33 {
34 return view->bounds;
35}
ARC_Rect bounds
Definition view.h:13

References ARC_View::bounds.

◆ ARC_View_Render()

void ARC_View_Render ( ARC_View * view,
ARC_View_RenderFn renderFn,
void * data )

renders callbacks contents within an ARC_View

Parameters
viewARC_View to be renedered to
renderFnfunction which contents will render to given ARC_View
datadata to be used in renderFn

Definition at line 17 of file view.c.

17 {
18 int err = SDL_RenderSetViewport((SDL_Renderer *)view->renderer, (const SDL_Rect *)&(view->bounds));
19 if(err){
20 ARC_DEBUG_LOG(ARC_ERRNO_DATA, "in src/graphics/sdl/view.c ARC_View_Render(view, renderFn), SDL_RenderSetViewport(...) returned: %d", err);
21 return;
22 }
23
24 renderFn(data);
25
26 err = SDL_RenderSetViewport((SDL_Renderer *)view->renderer, NULL);
27 if(err){
28 ARC_DEBUG_LOG(ARC_ERRNO_DATA, "in src/graphics/sdl/view.c ARC_View_Render(view, NULL), SDL_RenderSetViewport(...) returned: %d", err);
29 return;
30 }
31}
#define ARC_ERRNO_DATA
Definition errno.h:7

References ARC_ERRNO_DATA, ARC_View::bounds, and ARC_View::renderer.