70 lines
1.6 KiB
C
70 lines
1.6 KiB
C
#ifndef ENGINE_H
|
|
#define ENGINE_H
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
#define ENGINE_CONTEXT_LEVEL_MAIN 0
|
|
#define ENGINE_CONTEXT_LEVEL_SUB 1
|
|
|
|
#define ENGINE_CONTEXT_INVALID 0
|
|
#define ENGINE_CONTEXT_MAIN 1
|
|
#define ENGINE_CONTEXT_FRAME 2
|
|
#define ENGINE_CONTEXT_WORLD 3
|
|
#define ENGINE_CONTEXT_ATTRIBUTE 4
|
|
#define ENGINE_CONTEXT_TRANSFORM 5
|
|
#define ENGINE_CONTEXT_SOLID 6
|
|
#define ENGINE_CONTEXT_OBJECT 7
|
|
#define ENGINE_CONTEXT_MOTION 8
|
|
|
|
extern ri_var_t* V_P;
|
|
extern ri_var_t* V_PZ;
|
|
extern ri_var_t* V_PW;
|
|
extern ri_var_t* V_N;
|
|
extern ri_var_t* V_NP;
|
|
extern ri_var_t* V_CS;
|
|
extern ri_var_t* V_OS;
|
|
extern ri_var_t* V_S;
|
|
extern ri_var_t* V_T;
|
|
extern ri_var_t* V_ST;
|
|
extern ri_var_t* V_WIDTH;
|
|
extern ri_var_t* V_CONSTANTWIDTH;
|
|
|
|
typedef uint32_t context_t;
|
|
|
|
typedef struct _sengine_t
|
|
{
|
|
FILE *pFile;
|
|
RtToken name;
|
|
context_t *pContext;
|
|
stack_t *pContext_stack;
|
|
var_list_t varList;
|
|
scene_t geometry;
|
|
scene_t lights;
|
|
graph_state_t gs;
|
|
void *pErrorHandler;
|
|
|
|
} engine_t;
|
|
|
|
// JayMan functions
|
|
void Engine_init(engine_t *pObj, RtToken name);
|
|
void Engine_free(engine_t *pObj);
|
|
void Engine_context_set(engine_t *pObj, uint32_t context, uint32_t level);
|
|
uint32_t Engine_context_get(engine_t *pObj, uint32_t level);
|
|
void Engine_context_push(engine_t *pObj);
|
|
void Engine_context_pop(engine_t *pObj);
|
|
|
|
void Engine_Render(engine_t *pObj);
|
|
void Engine_DeleteScene(engine_t *pObj);
|
|
void Engine_SceneInfo(engine_t *pObj);
|
|
|
|
void* jmalloc(uint32_t size);
|
|
void jfree(void *pMem);
|
|
void jstats(void);
|
|
|
|
void Tic(double *tic_start);
|
|
double Toc(double *tic_start);
|
|
|
|
#endif // ENGINE_H
|