mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 10:54:24 -04:00
build properly with new GeomContext (and without GeomNodeContext
This commit is contained in:
parent
5fe909bb4f
commit
d6ce073b65
@ -456,7 +456,6 @@ dx_init( void) {
|
||||
#ifdef COUNT_DRAWPRIMS
|
||||
global_pD3DDevice = pDevice;
|
||||
#endif
|
||||
_pCurrentGeomContext = NULL;
|
||||
_bDrawPrimDoSetupVertexBuffer = false;
|
||||
|
||||
_last_testcooplevel_result = S_OK;
|
||||
@ -1031,17 +1030,6 @@ typedef enum {
|
||||
FlatVerts,IndexedVerts,MixedFmtVerts
|
||||
} GeomVertFormat;
|
||||
|
||||
#define COPYVERTDATA_2_VERTEXBUFFER(PrimType,NumVertices) { \
|
||||
DWORD numVertBytes=_pCurFvfBufPtr-_pFvfBufBasePtr; \
|
||||
memcpy(_pCurrentGeomContext->_pEndofVertData,_pFvfBufBasePtr,numVertBytes); \
|
||||
DPInfo dpInfo; \
|
||||
dpInfo.nVerts=NumVertices; \
|
||||
dpInfo.primtype=PrimType; \
|
||||
_pCurrentGeomContext->_PrimInfo.push_back(dpInfo); \
|
||||
_pCurrentGeomContext->_num_verts+=dpInfo.nVerts; \
|
||||
_pCurrentGeomContext->_pEndofVertData+=numVertBytes; }
|
||||
|
||||
|
||||
INLINE void DXGraphicsStateGuardian7::
|
||||
transform_color(Colorf &InColor,D3DCOLOR &OutRGBAColor) {
|
||||
Colorf transformed
|
||||
@ -1380,12 +1368,8 @@ draw_point(GeomPoint *geom, GeomContext *gc) {
|
||||
|
||||
nassertv((nPrims*vertex_size) == (_pCurFvfBufPtr-_pFvfBufBasePtr));
|
||||
|
||||
if(!_bDrawPrimDoSetupVertexBuffer) {
|
||||
HRESULT hr = _pScrn->pD3DDevice->DrawPrimitive(D3DPT_POINTLIST, _curFVFflags, _pFvfBufBasePtr, nPrims, NULL);
|
||||
TestDrawPrimFailure(DrawPrim,hr,_pScrn->pDD,nPrims,0);
|
||||
} else {
|
||||
COPYVERTDATA_2_VERTEXBUFFER(D3DPT_POINTLIST,nPrims);
|
||||
}
|
||||
} else { // setup for strided
|
||||
|
||||
size_t vertex_size = draw_prim_setup(geom);
|
||||
@ -1524,7 +1508,6 @@ draw_line(GeomLine* geom, GeomContext *gc) {
|
||||
|
||||
DWORD nVerts = nPrims<<1;
|
||||
|
||||
if(!_bDrawPrimDoSetupVertexBuffer) {
|
||||
if (_tmp_fvfOverrunBuf == NULL) {
|
||||
nassertv((nVerts*vertex_size) == (_pCurFvfBufPtr-_pFvfBufBasePtr));
|
||||
hr = _pScrn->pD3DDevice->DrawPrimitive(D3DPT_LINELIST, _curFVFflags, _pFvfBufBasePtr, nVerts, NULL);
|
||||
@ -1534,9 +1517,6 @@ draw_line(GeomLine* geom, GeomContext *gc) {
|
||||
delete [] _tmp_fvfOverrunBuf;
|
||||
}
|
||||
TestDrawPrimFailure(DrawPrim,hr,_pScrn->pDD,nVerts,0);
|
||||
} else {
|
||||
COPYVERTDATA_2_VERTEXBUFFER(D3DPT_LINELIST,nVerts);
|
||||
}
|
||||
|
||||
_pCurFvfBufPtr = NULL;
|
||||
}
|
||||
@ -1648,12 +1628,8 @@ draw_linestrip_base(Geom* geom, GeomContext *gc, bool bConnectEnds) {
|
||||
|
||||
nassertv((nVerts*vertex_size) == (_pCurFvfBufPtr-_pFvfBufBasePtr));
|
||||
|
||||
if(!_bDrawPrimDoSetupVertexBuffer) {
|
||||
HRESULT hr = _pScrn->pD3DDevice->DrawPrimitive(D3DPT_LINESTRIP, _curFVFflags, _pFvfBufBasePtr, nVerts, NULL);
|
||||
TestDrawPrimFailure(DrawPrim,hr,_pScrn->pDD,nVerts,0);
|
||||
} else {
|
||||
COPYVERTDATA_2_VERTEXBUFFER(D3DPT_LINESTRIP,nVerts);
|
||||
}
|
||||
|
||||
_pCurFvfBufPtr = NULL;
|
||||
}
|
||||
@ -2266,12 +2242,8 @@ draw_tri(GeomTri *geom, GeomContext *gc) {
|
||||
|
||||
nassertv((nVerts*vertex_size) == (_pCurFvfBufPtr-_pFvfBufBasePtr));
|
||||
|
||||
if(!_bDrawPrimDoSetupVertexBuffer) {
|
||||
hr = _pScrn->pD3DDevice->DrawPrimitive(D3DPT_TRIANGLELIST, _curFVFflags, _pFvfBufBasePtr, nVerts, NULL);
|
||||
TestDrawPrimFailure(DrawPrim,hr,_pScrn->pDD,nVerts,nPrims);
|
||||
} else {
|
||||
COPYVERTDATA_2_VERTEXBUFFER(D3DPT_TRIANGLELIST,nVerts);
|
||||
}
|
||||
|
||||
_pCurFvfBufPtr = NULL;
|
||||
}
|
||||
@ -2723,12 +2695,8 @@ draw_multitri(Geom *geom, D3DPRIMITIVETYPE trilisttype) {
|
||||
|
||||
assert((nVerts*vertex_size) == (_pCurFvfBufPtr-_pFvfBufBasePtr));
|
||||
|
||||
if(!_bDrawPrimDoSetupVertexBuffer) {
|
||||
hr = _pScrn->pD3DDevice->DrawPrimitive(trilisttype, _curFVFflags, _pFvfBufBasePtr, nVerts, NULL);
|
||||
TestDrawPrimFailure(DrawPrim,hr,_pScrn->pDD,nVerts,nVerts-2);
|
||||
} else {
|
||||
COPYVERTDATA_2_VERTEXBUFFER(trilisttype,nVerts);
|
||||
}
|
||||
|
||||
_pCurFvfBufPtr = NULL;
|
||||
}
|
||||
|
@ -588,7 +588,6 @@ dx_init(void) {
|
||||
#ifdef COUNT_DRAWPRIMS
|
||||
global_pD3DDevice = pDevice;
|
||||
#endif
|
||||
_pCurrentGeomContext = NULL;
|
||||
_bDrawPrimDoSetupVertexBuffer = false;
|
||||
|
||||
_last_testcooplevel_result = D3D_OK;
|
||||
@ -1293,16 +1292,6 @@ typedef enum {
|
||||
FlatVerts,IndexedVerts,MixedFmtVerts
|
||||
} GeomVertFormat;
|
||||
|
||||
#define COPYVERTDATA_2_VERTEXBUFFER(PrimType,NumVertices) { \
|
||||
DWORD numVertBytes=_pCurFvfBufPtr-_pFvfBufBasePtr; \
|
||||
memcpy(_pCurrentGeomContext->_pEndofVertData,_pFvfBufBasePtr,numVertBytes); \
|
||||
DPInfo dpInfo; \
|
||||
dpInfo.nVerts=NumVertices; \
|
||||
dpInfo.primtype=PrimType; \
|
||||
_pCurrentGeomContext->_PrimInfo.push_back(dpInfo); \
|
||||
_pCurrentGeomContext->_num_verts+=dpInfo.nVerts; \
|
||||
_pCurrentGeomContext->_pEndofVertData+=numVertBytes; }
|
||||
|
||||
|
||||
INLINE void DXGraphicsStateGuardian8::
|
||||
transform_color(Colorf &InColor,D3DCOLOR &OutRGBAColor) {
|
||||
@ -1622,12 +1611,8 @@ draw_point(GeomPoint *geom, GeomContext *gc) {
|
||||
// iterate through the point
|
||||
draw_prim_inner_loop(nPrims, geom, _perVertex | _perPrim);
|
||||
|
||||
if(!_bDrawPrimDoSetupVertexBuffer) {
|
||||
HRESULT hr = _pD3DDevice->DrawPrimitiveUP(D3DPT_POINTLIST, nPrims, _pFvfBufBasePtr, vertex_size);
|
||||
TestDrawPrimFailure(DrawPrim,hr,_pD3DDevice,nPrims,0);
|
||||
} else {
|
||||
COPYVERTDATA_2_VERTEXBUFFER(D3DPT_POINTLIST,nPrims);
|
||||
}
|
||||
|
||||
|
||||
_pCurFvfBufPtr = NULL;
|
||||
@ -1718,7 +1703,6 @@ draw_line(GeomLine* geom, GeomContext *gc) {
|
||||
|
||||
DWORD nVerts = nPrims<<1;
|
||||
|
||||
if(!_bDrawPrimDoSetupVertexBuffer) {
|
||||
if (_tmp_fvfOverrunBuf == NULL) {
|
||||
nassertv((nVerts*vertex_size) == (_pCurFvfBufPtr-_pFvfBufBasePtr));
|
||||
hr = _pD3DDevice->DrawPrimitiveUP(D3DPT_LINELIST, nPrims, _pFvfBufBasePtr, vertex_size);
|
||||
@ -1728,9 +1712,6 @@ draw_line(GeomLine* geom, GeomContext *gc) {
|
||||
delete [] _tmp_fvfOverrunBuf;
|
||||
}
|
||||
TestDrawPrimFailure(DrawPrim,hr,_pD3DDevice,nVerts,0);
|
||||
} else {
|
||||
COPYVERTDATA_2_VERTEXBUFFER(D3DPT_LINELIST,nVerts);
|
||||
}
|
||||
|
||||
_pCurFvfBufPtr = NULL;
|
||||
}
|
||||
@ -1841,12 +1822,8 @@ draw_linestrip_base(Geom* geom, GeomContext *gc, bool bConnectEnds) {
|
||||
|
||||
nassertv((nVerts*vertex_size) == (_pCurFvfBufPtr-_pFvfBufBasePtr));
|
||||
|
||||
if(!_bDrawPrimDoSetupVertexBuffer) {
|
||||
HRESULT hr = _pD3DDevice->DrawPrimitiveUP(D3DPT_LINESTRIP, nVerts-1, _pFvfBufBasePtr, vertex_size);
|
||||
TestDrawPrimFailure(DrawPrim,hr,_pD3DDevice,nVerts,0);
|
||||
} else {
|
||||
COPYVERTDATA_2_VERTEXBUFFER(D3DPT_LINESTRIP,nVerts);
|
||||
}
|
||||
|
||||
_pCurFvfBufPtr = NULL;
|
||||
}
|
||||
@ -2414,12 +2391,8 @@ draw_tri(GeomTri *geom, GeomContext *gc) {
|
||||
|
||||
nassertv((nVerts*vertex_size) == (_pCurFvfBufPtr-_pFvfBufBasePtr));
|
||||
|
||||
if(!_bDrawPrimDoSetupVertexBuffer) {
|
||||
hr = _pD3DDevice->DrawPrimitiveUP(D3DPT_TRIANGLELIST, nPrims, _pFvfBufBasePtr, vertex_size);
|
||||
TestDrawPrimFailure(DrawPrim,hr,_pD3DDevice,nVerts,nPrims);
|
||||
} else {
|
||||
COPYVERTDATA_2_VERTEXBUFFER(D3DPT_TRIANGLELIST,nVerts);
|
||||
}
|
||||
|
||||
_pCurFvfBufPtr = NULL;
|
||||
|
||||
@ -2650,12 +2623,8 @@ draw_multitri(Geom *geom, D3DPRIMITIVETYPE trilisttype) {
|
||||
assert((nVerts*vertex_size) == (_pCurFvfBufPtr-_pFvfBufBasePtr));
|
||||
DWORD numTris=nVerts-2;
|
||||
|
||||
if(!_bDrawPrimDoSetupVertexBuffer) {
|
||||
hr = _pD3DDevice->DrawPrimitiveUP(trilisttype, numTris, _pFvfBufBasePtr, vertex_size);
|
||||
TestDrawPrimFailure(DrawPrim,hr,_pD3DDevice,nVerts,numTris);
|
||||
} else {
|
||||
COPYVERTDATA_2_VERTEXBUFFER(trilisttype,nVerts);
|
||||
}
|
||||
|
||||
_pCurFvfBufPtr = NULL;
|
||||
}
|
||||
|
@ -589,7 +589,6 @@ dx_init(void) {
|
||||
#ifdef COUNT_DRAWPRIMS
|
||||
global_pD3DDevice = pDevice;
|
||||
#endif
|
||||
_pCurrentGeomContext = NULL;
|
||||
_bDrawPrimDoSetupVertexBuffer = false;
|
||||
|
||||
_last_testcooplevel_result = D3D_OK;
|
||||
@ -1298,16 +1297,6 @@ typedef enum {
|
||||
FlatVerts,IndexedVerts,MixedFmtVerts
|
||||
} GeomVertFormat;
|
||||
|
||||
#define COPYVERTDATA_2_VERTEXBUFFER(PrimType,NumVertices) { \
|
||||
DWORD numVertBytes=_pCurFvfBufPtr-_pFvfBufBasePtr; \
|
||||
memcpy(_pCurrentGeomContext->_pEndofVertData,_pFvfBufBasePtr,numVertBytes); \
|
||||
DPInfo dpInfo; \
|
||||
dpInfo.nVerts=NumVertices; \
|
||||
dpInfo.primtype=PrimType; \
|
||||
_pCurrentGeomContext->_PrimInfo.push_back(dpInfo); \
|
||||
_pCurrentGeomContext->_num_verts+=dpInfo.nVerts; \
|
||||
_pCurrentGeomContext->_pEndofVertData+=numVertBytes; }
|
||||
|
||||
|
||||
INLINE void DXGraphicsStateGuardian9::
|
||||
transform_color(Colorf &InColor,D3DCOLOR &OutRGBAColor) {
|
||||
@ -1626,13 +1615,8 @@ draw_point(GeomPoint *geom, GeomContext *gc) {
|
||||
// iterate through the point
|
||||
draw_prim_inner_loop(nPrims, geom, _perVertex | _perPrim);
|
||||
|
||||
if(!_bDrawPrimDoSetupVertexBuffer) {
|
||||
HRESULT hr = _pD3DDevice->DrawPrimitiveUP(D3DPT_POINTLIST, nPrims, _pFvfBufBasePtr, vertex_size);
|
||||
TestDrawPrimFailure(DrawPrim,hr,_pD3DDevice,nPrims,0);
|
||||
} else {
|
||||
COPYVERTDATA_2_VERTEXBUFFER(D3DPT_POINTLIST,nPrims);
|
||||
}
|
||||
|
||||
|
||||
_pCurFvfBufPtr = NULL;
|
||||
}
|
||||
@ -1722,7 +1706,6 @@ draw_line(GeomLine* geom, GeomContext *gc) {
|
||||
|
||||
DWORD nVerts = nPrims<<1;
|
||||
|
||||
if(!_bDrawPrimDoSetupVertexBuffer) {
|
||||
if (_tmp_fvfOverrunBuf == NULL) {
|
||||
nassertv((nVerts*vertex_size) == (_pCurFvfBufPtr-_pFvfBufBasePtr));
|
||||
hr = _pD3DDevice->DrawPrimitiveUP(D3DPT_LINELIST, nPrims, _pFvfBufBasePtr, vertex_size);
|
||||
@ -1732,9 +1715,6 @@ draw_line(GeomLine* geom, GeomContext *gc) {
|
||||
delete [] _tmp_fvfOverrunBuf;
|
||||
}
|
||||
TestDrawPrimFailure(DrawPrim,hr,_pD3DDevice,nVerts,0);
|
||||
} else {
|
||||
COPYVERTDATA_2_VERTEXBUFFER(D3DPT_LINELIST,nVerts);
|
||||
}
|
||||
|
||||
_pCurFvfBufPtr = NULL;
|
||||
}
|
||||
@ -1845,12 +1825,8 @@ draw_linestrip_base(Geom* geom, GeomContext *gc, bool bConnectEnds) {
|
||||
|
||||
nassertv((nVerts*vertex_size) == (_pCurFvfBufPtr-_pFvfBufBasePtr));
|
||||
|
||||
if(!_bDrawPrimDoSetupVertexBuffer) {
|
||||
HRESULT hr = _pD3DDevice->DrawPrimitiveUP(D3DPT_LINESTRIP, nVerts-1, _pFvfBufBasePtr, vertex_size);
|
||||
TestDrawPrimFailure(DrawPrim,hr,_pD3DDevice,nVerts,0);
|
||||
} else {
|
||||
COPYVERTDATA_2_VERTEXBUFFER(D3DPT_LINESTRIP,nVerts);
|
||||
}
|
||||
|
||||
_pCurFvfBufPtr = NULL;
|
||||
}
|
||||
@ -2418,12 +2394,8 @@ draw_tri(GeomTri *geom, GeomContext *gc) {
|
||||
|
||||
nassertv((nVerts*vertex_size) == (_pCurFvfBufPtr-_pFvfBufBasePtr));
|
||||
|
||||
if(!_bDrawPrimDoSetupVertexBuffer) {
|
||||
hr = _pD3DDevice->DrawPrimitiveUP(D3DPT_TRIANGLELIST, nPrims, _pFvfBufBasePtr, vertex_size);
|
||||
TestDrawPrimFailure(DrawPrim,hr,_pD3DDevice,nVerts,nPrims);
|
||||
} else {
|
||||
COPYVERTDATA_2_VERTEXBUFFER(D3DPT_TRIANGLELIST,nVerts);
|
||||
}
|
||||
|
||||
_pCurFvfBufPtr = NULL;
|
||||
|
||||
@ -2655,12 +2627,8 @@ draw_multitri(Geom *geom, D3DPRIMITIVETYPE trilisttype) {
|
||||
assert((nVerts*vertex_size) == (_pCurFvfBufPtr-_pFvfBufBasePtr));
|
||||
DWORD numTris=nVerts-2;
|
||||
|
||||
if(!_bDrawPrimDoSetupVertexBuffer) {
|
||||
hr = _pD3DDevice->DrawPrimitiveUP(trilisttype, numTris, _pFvfBufBasePtr, vertex_size);
|
||||
TestDrawPrimFailure(DrawPrim,hr,_pD3DDevice,nVerts,numTris);
|
||||
} else {
|
||||
COPYVERTDATA_2_VERTEXBUFFER(trilisttype,nVerts);
|
||||
}
|
||||
|
||||
_pCurFvfBufPtr = NULL;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user