paysages3d/lib_paysages/render.h
2013-01-19 22:42:50 +00:00

51 lines
1.4 KiB
C

#ifndef _PAYSAGES_RENDER_H_
#define _PAYSAGES_RENDER_H_
#include "shared/types.h"
#include "tools/color.h"
#include "tools/euclid.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef Color (*f_RenderFragmentCallback)(struct Renderer* renderer, Vector3 location, void* data);
typedef void (*RenderCallbackStart)(int width, int height, Color background);
typedef void (*RenderCallbackDraw)(int x, int y, Color col);
typedef void (*RenderCallbackUpdate)(double progress);
typedef struct RenderArea RenderArea;
typedef struct
{
int width;
int height;
int antialias;
int quality;
} RenderParams;
void renderInit();
void renderQuit();
RenderArea* renderCreateArea();
void renderDeleteArea(RenderArea* area);
void renderSetParams(RenderArea* area, RenderParams params);
void renderSetBackgroundColor(RenderArea* area, Color* col);
void renderClear(RenderArea* area);
void renderUpdate(RenderArea* area);
void renderPushTriangle(RenderArea* area, Vector3 pixel1, Vector3 pixel2, Vector3 pixel3, Vector3 location1, Vector3 location2, Vector3 location3, f_RenderFragmentCallback callback, void* callback_data);
void renderPostProcess(RenderArea* area, Renderer* renderer, int nbchunks);
int renderSaveToFile(RenderArea* area, const char* path);
void renderSetPreviewCallbacks(RenderArea* area, RenderCallbackStart start, RenderCallbackDraw draw, RenderCallbackUpdate update);
#ifdef __cplusplus
}
#endif
#endif