X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=gl_backend.h;h=b770d68700923c7473c8c9a2aac4b68131c6e52b;hb=17499dfe2bee8ebecbcb0f6ba3093a1ff2ea5070;hp=dcfacf08482d23cc00c783804c403ded77c1570d;hpb=a0214de923ad8e4f9583306f7520c1dcbe31dc3c;p=xonotic%2Fdarkplaces.git diff --git a/gl_backend.h b/gl_backend.h index dcfacf08..b770d687 100644 --- a/gl_backend.h +++ b/gl_backend.h @@ -12,6 +12,9 @@ extern float gl_modelview16f[16]; extern float gl_modelviewprojection16f[16]; extern qboolean gl_modelmatrixchanged; +extern cvar_t gl_vbo_dynamicvertex; +extern cvar_t gl_vbo_dynamicindex; + #define POLYGONELEMENTS_MAXPOINTS 258 extern int polygonelement3i[(POLYGONELEMENTS_MAXPOINTS-2)*3]; extern unsigned short polygonelement3s[(POLYGONELEMENTS_MAXPOINTS-2)*3]; @@ -25,7 +28,7 @@ void R_Viewport_InitOrtho(r_viewport_t *v, const matrix4x4_t *cameramatrix, int void R_Viewport_InitPerspective(r_viewport_t *v, const matrix4x4_t *cameramatrix, int x, int y, int width, int height, float frustumx, float frustumy, float zNear, float zFar, const float *nearplane); void R_Viewport_InitPerspectiveInfinite(r_viewport_t *v, const matrix4x4_t *cameramatrix, int x, int y, int width, int height, float frustumx, float frustumy, float zNear, const float *nearplane); void R_Viewport_InitCubeSideView(r_viewport_t *v, const matrix4x4_t *cameramatrix, int side, int size, float nearclip, float farclip, const float *nearplane); -void R_Viewport_InitRectSideView(r_viewport_t *v, const matrix4x4_t *cameramatrix, int side, int size, int border, float nearclip, float farclip, const float *nearplane); +void R_Viewport_InitRectSideView(r_viewport_t *v, const matrix4x4_t *cameramatrix, int side, int size, int border, float nearclip, float farclip, const float *nearplane, int offsetx, int offsety); void R_SetViewport(const r_viewport_t *v); void R_GetViewport(r_viewport_t *v); void GL_Finish(void); @@ -77,17 +80,17 @@ void R_Mesh_UpdateMeshBuffer(r_meshbuffer_t *buffer, const void *data, size_t si void R_Mesh_DestroyMeshBuffer(r_meshbuffer_t *buffer); void GL_Mesh_ListVBOs(qboolean printeach); -void R_Mesh_PrepareVertices_Vertex3f(int numvertices, const float *vertex3f, const r_meshbuffer_t *buffer); +void R_Mesh_PrepareVertices_Vertex3f(int numvertices, const float *vertex3f, const r_meshbuffer_t *buffer, int bufferoffset); r_vertexgeneric_t *R_Mesh_PrepareVertices_Generic_Lock(int numvertices); qboolean R_Mesh_PrepareVertices_Generic_Unlock(void); void R_Mesh_PrepareVertices_Generic_Arrays(int numvertices, const float *vertex3f, const float *color4f, const float *texcoord2f); -void R_Mesh_PrepareVertices_Generic(int numvertices, const r_vertexgeneric_t *vertex, const r_meshbuffer_t *vertexbuffer); +void R_Mesh_PrepareVertices_Generic(int numvertices, const r_vertexgeneric_t *vertex, const r_meshbuffer_t *vertexbuffer, int bufferoffset); r_vertexmesh_t *R_Mesh_PrepareVertices_Mesh_Lock(int numvertices); qboolean R_Mesh_PrepareVertices_Mesh_Unlock(void); // if this returns false, you need to prepare the mesh again! void R_Mesh_PrepareVertices_Mesh_Arrays(int numvertices, const float *vertex3f, const float *svector3f, const float *tvector3f, const float *normal3f, const float *color4f, const float *texcoordtexture2f, const float *texcoordlightmap2f); -void R_Mesh_PrepareVertices_Mesh(int numvertices, const r_vertexmesh_t *vertex, const r_meshbuffer_t *buffer); +void R_Mesh_PrepareVertices_Mesh(int numvertices, const r_vertexmesh_t *vertex, const r_meshbuffer_t *buffer, int bufferoffset); // sets up the requested vertex transform matrix void R_EntityMatrix(const matrix4x4_t *matrix); @@ -113,7 +116,7 @@ void R_Mesh_ResetTextureState(void); void R_Mesh_ClearBindingsForTexture(int texnum); // renders a mesh -void R_Mesh_Draw(int firstvertex, int numvertices, int firsttriangle, int numtriangles, const int *element3i, const r_meshbuffer_t *element3i_indexbuffer, size_t element3i_bufferoffset, const unsigned short *element3s, const r_meshbuffer_t *element3s_indexbuffer, size_t element3s_bufferoffset); +void R_Mesh_Draw(int firstvertex, int numvertices, int firsttriangle, int numtriangles, const int *element3i, const r_meshbuffer_t *element3i_indexbuffer, int element3i_bufferoffset, const unsigned short *element3s, const r_meshbuffer_t *element3s_indexbuffer, int element3s_bufferoffset); // saves a section of the rendered frame to a .tga or .jpg file qboolean SCR_ScreenShot(char *filename, unsigned char *buffer1, unsigned char *buffer2, int x, int y, int width, int height, qboolean flipx, qboolean flipy, qboolean flipdiagonal, qboolean jpeg, qboolean png, qboolean gammacorrect, qboolean keep_alpha);