aboutsummaryrefslogtreecommitdiff
path: root/src/renderer/renderer_impl.h
blob: 6fd0c159bf3ce0a69a3e479f5320552b613cd520 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#pragma once

#include <gfx/renderer.h>

#include <stdbool.h>

typedef struct IBL           IBL;
typedef struct LLR           LLR;
typedef struct ShaderProgram ShaderProgram;
typedef struct Texture       Texture;

typedef struct Renderer {
  GfxCore* gfxcore;
  LLR*     llr;
  IBL*     ibl;
  Texture* brdf_integration_map;
  struct {
    ShaderProgram* debug;
    ShaderProgram* normals;
    ShaderProgram* normal_mapped_normals;
    ShaderProgram* tangents;
  } shaders;
} Renderer;

/// Create a new renderer.
bool gfx_renderer_make(Renderer*, LLR*, GfxCore*);

/// Destroy the renderer.
void gfx_renderer_destroy(Renderer*);