add small experiments to distribute points on a sphere prepare for coordinate frame demo (incomplete) fix/hack around gwen update of scroll bars and Focu
56 lines
2.3 KiB
C
56 lines
2.3 KiB
C
#ifndef COMMON_RENDER_INTERFACE_H
|
|
#define COMMON_RENDER_INTERFACE_H
|
|
|
|
enum
|
|
{
|
|
B3_GL_TRIANGLES = 1,
|
|
B3_GL_POINTS
|
|
};
|
|
|
|
enum
|
|
{
|
|
B3_DEFAULT_RENDERMODE=1,
|
|
//B3_WIREFRAME_RENDERMODE,
|
|
B3_CREATE_SHADOWMAP_RENDERMODE,
|
|
B3_USE_SHADOWMAP_RENDERMODE,
|
|
};
|
|
|
|
struct CommonRenderInterface
|
|
{
|
|
virtual void init()=0;
|
|
virtual void updateCamera(int upAxis)=0;
|
|
virtual void removeAllInstances() = 0;
|
|
virtual void setCameraDistance(float dist) = 0;
|
|
virtual void setCameraPitch(float pitch) = 0;
|
|
virtual void setCameraTargetPosition(float x, float y, float z)=0;
|
|
|
|
|
|
virtual void getCameraPosition(float cameraPos[4])=0;
|
|
virtual void getCameraPosition(double cameraPos[4])=0;
|
|
|
|
virtual void setCameraTargetPosition(float cameraPos[4])=0;
|
|
virtual void getCameraTargetPosition(float cameraPos[4]) const=0;
|
|
virtual void getCameraTargetPosition(double cameraPos[4]) const=0;
|
|
|
|
virtual void renderScene()=0;
|
|
|
|
virtual int getScreenWidth() = 0;
|
|
virtual int getScreenHeight() = 0;
|
|
|
|
virtual int registerGraphicsInstance(int shapeIndex, const float* position, const float* quaternion, const float* color, const float* scaling)=0;
|
|
virtual int registerGraphicsInstance(int shapeIndex, const double* position, const double* quaternion, const double* color, const double* scaling)=0;
|
|
virtual void drawLines(const float* positions, const float color[4], int numPoints, int pointStrideInBytes, const unsigned int* indices, int numIndices, float pointDrawSize)=0;
|
|
virtual void drawLine(const float from[4], const float to[4], const float color[4], float lineWidth) = 0;
|
|
virtual void drawLine(const double from[4], const double to[4], const double color[4], double lineWidth) = 0;
|
|
virtual void drawPoint(const float* position, const float color[4], float pointDrawSize)=0;
|
|
virtual int registerShape(const float* vertices, int numvertices, const int* indices, int numIndices,int primitiveType=B3_GL_TRIANGLES, int textureIndex=-1)=0;
|
|
virtual void updateShape(int shapeIndex, const float* vertices)=0;
|
|
|
|
virtual void writeSingleInstanceTransformToCPU(const float* position, const float* orientation, int srcIndex)=0;
|
|
virtual void writeSingleInstanceTransformToCPU(const double* position, const double* orientation, int srcIndex)=0;
|
|
virtual void writeTransforms()=0;
|
|
virtual void enableBlend(bool blend)=0;
|
|
};
|
|
#endif//COMMON_RENDER_INTERFACE_H
|
|
|