You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.3 KiB
C
61 lines
1.3 KiB
C
// The Digital Grove Codebase
|
|
// Copyright (c) Ryan Fleury. All rights reserved.
|
|
|
|
#ifndef RENDER_H
|
|
#define RENDER_H
|
|
|
|
////////////////////////////////
|
|
//~ rjf: Render Pass Parameters
|
|
|
|
typedef struct R_PassParams R_PassParams;
|
|
struct R_PassParams
|
|
{
|
|
Mat4x4F32 view;
|
|
Mat4x4F32 projection;
|
|
Vec3F32 keylight_dir;
|
|
};
|
|
|
|
////////////////////////////////
|
|
//~ rjf: Render Resource Types
|
|
|
|
typedef struct R_Material R_Material;
|
|
struct R_Material
|
|
{
|
|
Vec4F32 color;
|
|
};
|
|
|
|
typedef struct R_TriFace R_TriFace;
|
|
struct R_TriFace
|
|
{
|
|
U16 idx[3];
|
|
};
|
|
|
|
////////////////////////////////
|
|
//~ rjf: Render Handles
|
|
|
|
typedef struct R_BufferHandle R_BufferHandle;
|
|
struct R_BufferHandle
|
|
{
|
|
UAddr uaddr[1];
|
|
};
|
|
|
|
typedef struct R_SubModelHandle R_SubModelHandle;
|
|
struct R_SubModelHandle
|
|
{
|
|
UAddr uaddr[1];
|
|
};
|
|
|
|
////////////////////////////////
|
|
//~ rjf: Render Resources @per_platform
|
|
|
|
function R_BufferHandle R_BufferHandleFromData(void *data, UAddr element_count, UAddr element_size);
|
|
function R_SubModelHandle R_SubModelHandleFromBuffers(R_BufferHandle vtx_buffer, R_BufferHandle idx_buffer);
|
|
|
|
////////////////////////////////
|
|
//~ rjf: Render Commands @per_platform
|
|
|
|
function void R_Pass(R_PassParams *params);
|
|
function void R_SubModel(R_SubModelHandle handle, R_Material material, Mat4x4F32 xform);
|
|
|
|
#endif // RENDER_H
|