$darkmode
Suckless OGL 1.0.0
A lean, high-performance C11 PBR Renderer
camera.c File Reference
#include "camera.h"
#include <cglm/cam.h>
#include <cglm/types.h>
#include <cglm/util.h>
#include <cglm/vec3.h>
#include <math.h>
Include dependency graph for camera.c:

Functions

void camera_init (Camera *cam, float distance, float yaw, float pitch)
 Initializes the camera with default values. More...
 
void camera_update_vectors (Camera *cam)
 Recalculates front, right, and up vectors from yaw and pitch. More...
 
void camera_fixed_update (Camera *cam)
 Performs one fixed-step physics update. More...
 
void camera_process_mouse (Camera *cam, float xoffset, float yoffset)
 Processes mouse movement to update target orientation. More...
 
void camera_get_view_matrix (Camera *cam, mat4 view)
 Generates the 4x4 view matrix for this camera. More...
 
void camera_process_scroll (Camera *cam, float yoffset)
 Processes mouse scroll events to apply physical impulse. More...
 

Function Documentation

◆ camera_fixed_update()

void camera_fixed_update ( Camera cam)

Performs one fixed-step physics update.

Handles momentum, friction, and head-bobbing calculations.

Parameters
camPointer to the camera instance.

◆ camera_get_view_matrix()

void camera_get_view_matrix ( Camera cam,
mat4  view 
)

Generates the 4x4 view matrix for this camera.

Parameters
camPointer to the camera instance.
[out]viewMatrix to populate.

◆ camera_init()

void camera_init ( Camera cam,
float  distance,
float  yaw,
float  pitch 
)

Initializes the camera with default values.

Parameters
camPointer to the camera instance.
distanceInitial forward offset (legacy).
yawInitial horizontal rotation.
pitchInitial vertical rotation.
Here is the call graph for this function:

◆ camera_process_mouse()

void camera_process_mouse ( Camera cam,
float  xoffset,
float  yoffset 
)

Processes mouse movement to update target orientation.

Parameters
camPointer to the camera instance.
xoffsetRelative horizontal mouse movement.
yoffsetRelative vertical mouse movement.

◆ camera_process_scroll()

void camera_process_scroll ( Camera cam,
float  yoffset 
)

Processes mouse scroll events to apply physical impulse.

Parameters
camPointer to the camera instance.
yoffsetScroll amount along the y-axis.

◆ camera_update_vectors()

void camera_update_vectors ( Camera cam)

Recalculates front, right, and up vectors from yaw and pitch.

Parameters
camPointer to the camera instance.
Note
Updates cam->front, cam->right, and cam->up.