Stefan Dösinger : wined3d: Clean up drawprim a bit.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Jan 8 14:44:21 CST 2007
Module: wine
Branch: master
Commit: b310e98693d827d457402d82a33f01afa111b06f
URL: http://source.winehq.org/git/wine.git/?a=commit;h=b310e98693d827d457402d82a33f01afa111b06f
Author: Stefan Dösinger <stefan at codeweavers.com>
Date: Sat Jan 6 18:28:42 2007 +0100
wined3d: Clean up drawprim a bit.
---
dlls/wined3d/drawprim.c | 44 ++++++--------------------------------------
1 files changed, 6 insertions(+), 38 deletions(-)
diff --git a/dlls/wined3d/drawprim.c b/dlls/wined3d/drawprim.c
index b913448..3b14c4a 100644
--- a/dlls/wined3d/drawprim.c
+++ b/dlls/wined3d/drawprim.c
@@ -1092,29 +1092,6 @@ void drawStridedSoftwareVS(IWineD3DDevic
#endif
-inline static void drawPrimitiveDrawStrided(
- IWineD3DDevice *iface,
- BOOL useVertexShaderFunction,
- BOOL usePixelShaderFunction,
- WineDirect3DVertexStridedData *dataLocations,
- ULONG baseVIndex,
- UINT numberOfvertices,
- UINT numberOfIndicies,
- GLenum glPrimType,
- const void *idxData,
- short idxSize,
- int minIndex,
- long StartIdx) {
-
- IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
-
- /* Draw vertex-by-vertex */
- if (This->useDrawStridedSlow)
- drawStridedSlow(iface, dataLocations, numberOfIndicies, glPrimType, idxData, idxSize, minIndex, StartIdx, baseVIndex);
- else
- drawStridedFast(iface, numberOfIndicies, glPrimType, idxData, idxSize, minIndex, StartIdx, baseVIndex);
-}
-
static void check_fbo_status(IWineD3DDevice *iface) {
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
@@ -1230,23 +1207,11 @@ void drawPrimitive(IWineD3DDevice *iface
int minIndex) {
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
- BOOL useVertexShaderFunction = FALSE;
- BOOL usePixelShaderFunction = FALSE;
IWineD3DSwapChainImpl *swapchain;
int i;
DWORD dirtyState, idx;
BYTE shift;
- /* Shaders can be implemented using ARB_PROGRAM, GLSL, or software -
- * here simply check whether a shader was set, or the user disabled shaders */
- if (This->vs_selected_mode != SHADER_NONE && This->stateBlock->vertexShader &&
- ((IWineD3DVertexShaderImpl *)This->stateBlock->vertexShader)->baseShader.function != NULL)
- useVertexShaderFunction = TRUE;
-
- if (This->ps_selected_mode != SHADER_NONE && This->stateBlock->pixelShader &&
- ((IWineD3DPixelShaderImpl *)This->stateBlock->pixelShader)->baseShader.function)
- usePixelShaderFunction = TRUE;
-
/* Invalidate the back buffer memory so LockRect will read it the next time */
for(i = 0; i < IWineD3DDevice_GetNumberOfSwapChains(iface); i++) {
IWineD3DDevice_GetSwapChain(iface, i, (IWineD3DSwapChain **) &swapchain);
@@ -1289,9 +1254,12 @@ void drawPrimitive(IWineD3DDevice *iface
if (numberOfVertices == 0 )
numberOfVertices = calculatedNumberOfindices;
- drawPrimitiveDrawStrided(iface, useVertexShaderFunction, usePixelShaderFunction,
- &This->strided_streams, StartVertexIndex, numberOfVertices, calculatedNumberOfindices, glPrimType,
- idxData, idxSize, minIndex, StartIdx);
+ if (This->useDrawStridedSlow)
+ drawStridedSlow(iface, &This->strided_streams, calculatedNumberOfindices,
+ glPrimType, idxData, idxSize, minIndex, StartIdx, StartVertexIndex);
+ else
+ drawStridedFast(iface, calculatedNumberOfindices, glPrimType,
+ idxData, idxSize, minIndex, StartIdx, StartVertexIndex);
}
/* Finshed updating the screen, restore lock */
More information about the wine-cvs
mailing list