WINED3D: Don't hardcode type sizes for shader constants

H. Verbeet hverbeet at gmail.com
Tue Jun 6 16:17:35 CDT 2006


We shouldn't hardcode type sizes. Also, the size of a BOOL is 4, not 1.

Changelog:
  - Don't hardcode type sizes for shader constants, use sizeof() instead.
-------------- next part --------------
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index ed3f6bc..27c9dc9 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -4372,7 +4372,7 @@ HRESULT WINAPI IWineD3DDeviceImpl_SetVer
     if (srcData == NULL || cnt < 0)
         return WINED3DERR_INVALIDCALL;
 
-    memcpy(&This->updateStateBlock->vertexShaderConstantB[start], srcData, cnt);
+    memcpy(&This->updateStateBlock->vertexShaderConstantB[start], srcData, cnt * sizeof(BOOL));
 
     for (i = start; i < cnt + start; ++i) {
         This->updateStateBlock->changed.vertexShaderConstantsB[i] = TRUE;
@@ -4397,7 +4397,7 @@ HRESULT WINAPI IWineD3DDeviceImpl_GetVer
     if (dstData == NULL || cnt < 0)
         return WINED3DERR_INVALIDCALL;
 
-    memcpy(dstData, &This->updateStateBlock->vertexShaderConstantB[start], cnt);
+    memcpy(dstData, &This->updateStateBlock->vertexShaderConstantB[start], cnt * sizeof(BOOL));
     return WINED3D_OK;
 }
 
@@ -4416,7 +4416,7 @@ HRESULT WINAPI IWineD3DDeviceImpl_SetVer
     if (srcData == NULL || cnt < 0)
         return WINED3DERR_INVALIDCALL;
 
-    memcpy(&This->updateStateBlock->vertexShaderConstantI[start * 4], srcData, cnt * 16);
+    memcpy(&This->updateStateBlock->vertexShaderConstantI[start * 4], srcData, cnt * sizeof(int) * 4);
 
     for (i = start; i < cnt + start; ++i) {
         This->updateStateBlock->changed.vertexShaderConstantsI[i] = TRUE;
@@ -4441,7 +4441,7 @@ HRESULT WINAPI IWineD3DDeviceImpl_GetVer
     if (dstData == NULL || cnt < 0)
         return WINED3DERR_INVALIDCALL;
 
-    memcpy(dstData, &This->updateStateBlock->vertexShaderConstantI[start * 4], cnt * 16);
+    memcpy(dstData, &This->updateStateBlock->vertexShaderConstantI[start * 4], cnt * sizeof(int) * 4);
     return WINED3D_OK;
 }
 
@@ -4460,7 +4460,7 @@ HRESULT WINAPI IWineD3DDeviceImpl_SetVer
     if (srcData == NULL || cnt < 0)
         return WINED3DERR_INVALIDCALL;
 
-    memcpy(&This->updateStateBlock->vertexShaderConstantF[start * 4], srcData, cnt * 16);
+    memcpy(&This->updateStateBlock->vertexShaderConstantF[start * 4], srcData, cnt * sizeof(float) * 4);
 
     for (i = start; i < cnt + start; ++i) {
         This->updateStateBlock->changed.vertexShaderConstantsF[i] = TRUE;
@@ -4485,7 +4485,7 @@ HRESULT WINAPI IWineD3DDeviceImpl_GetVer
     if (dstData == NULL || cnt < 0)
         return WINED3DERR_INVALIDCALL;
 
-    memcpy(dstData, &This->updateStateBlock->vertexShaderConstantF[start * 4], cnt * 16);
+    memcpy(dstData, &This->updateStateBlock->vertexShaderConstantF[start * 4], cnt * sizeof(float) * 4);
     return WINED3D_OK;
 }
 
@@ -4546,7 +4546,7 @@ HRESULT WINAPI IWineD3DDeviceImpl_SetPix
     if (srcData == NULL || cnt < 0)
         return WINED3DERR_INVALIDCALL;
 
-    memcpy(&This->updateStateBlock->pixelShaderConstantB[start], srcData, cnt);
+    memcpy(&This->updateStateBlock->pixelShaderConstantB[start], srcData, cnt * sizeof(BOOL));
 
     for (i = start; i < cnt + start; ++i) {
         This->updateStateBlock->changed.pixelShaderConstantsB[i] = TRUE;
@@ -4571,7 +4571,7 @@ HRESULT WINAPI IWineD3DDeviceImpl_GetPix
     if (dstData == NULL || cnt < 0)
         return WINED3DERR_INVALIDCALL;
 
-    memcpy(dstData, &This->updateStateBlock->pixelShaderConstantB[start], cnt);
+    memcpy(dstData, &This->updateStateBlock->pixelShaderConstantB[start], cnt * sizeof(BOOL));
     return WINED3D_OK;
 }
 
@@ -4590,7 +4590,7 @@ HRESULT WINAPI IWineD3DDeviceImpl_SetPix
     if (srcData == NULL || cnt < 0)
         return WINED3DERR_INVALIDCALL;
 
-    memcpy(&This->updateStateBlock->pixelShaderConstantI[start * 4], srcData, cnt * 16);
+    memcpy(&This->updateStateBlock->pixelShaderConstantI[start * 4], srcData, cnt * sizeof(int) * 4);
 
     for (i = start; i < cnt + start; ++i) {
         This->updateStateBlock->changed.pixelShaderConstantsI[i] = TRUE;
@@ -4615,7 +4615,7 @@ HRESULT WINAPI IWineD3DDeviceImpl_GetPix
     if (dstData == NULL || cnt < 0)
         return WINED3DERR_INVALIDCALL;
 
-    memcpy(dstData, &This->updateStateBlock->pixelShaderConstantI[start * 4], cnt * 16);
+    memcpy(dstData, &This->updateStateBlock->pixelShaderConstantI[start * 4], cnt * sizeof(int) * 4);
     return WINED3D_OK;
 }
 
@@ -4634,7 +4634,7 @@ HRESULT WINAPI IWineD3DDeviceImpl_SetPix
     if (srcData == NULL || cnt < 0)
         return WINED3DERR_INVALIDCALL;
 
-    memcpy(&This->updateStateBlock->pixelShaderConstantF[start * 4], srcData, cnt * 16);
+    memcpy(&This->updateStateBlock->pixelShaderConstantF[start * 4], srcData, cnt * sizeof(float) * 4);
 
     for (i = start; i < cnt + start; ++i) {
         This->updateStateBlock->changed.pixelShaderConstantsF[i] = TRUE;
@@ -4659,7 +4659,7 @@ HRESULT WINAPI IWineD3DDeviceImpl_GetPix
     if (dstData == NULL || cnt < 0)
         return WINED3DERR_INVALIDCALL;
 
-    memcpy(dstData, &This->updateStateBlock->pixelShaderConstantF[start * 4], cnt * 16);
+    memcpy(dstData, &This->updateStateBlock->pixelShaderConstantF[start * 4], cnt * sizeof(float) * 4);
     return WINED3D_OK;
 }
 


More information about the wine-patches mailing list