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

// 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