Commit 50ebf268 authored by Henri Verbeet's avatar Henri Verbeet Committed by Alexandre Julliard

wined3d: Const correctness fixes for directx.c.

parent 942f8210
...@@ -154,8 +154,16 @@ static const shader_backend_t *select_shader_backend(UINT Adapter, WINED3DDEVTYP ...@@ -154,8 +154,16 @@ static const shader_backend_t *select_shader_backend(UINT Adapter, WINED3DDEVTYP
static const struct blit_shader *select_blit_implementation(UINT Adapter, WINED3DDEVTYPE DeviceType); static const struct blit_shader *select_blit_implementation(UINT Adapter, WINED3DDEVTYPE DeviceType);
/* lookup tables */ /* lookup tables */
int minLookup[MAX_LOOKUPS]; const int minLookup[MAX_LOOKUPS] =
int maxLookup[MAX_LOOKUPS]; {
WINED3DTADDRESS_WRAP, /* WINELOOKUP_WARPPARAM */
};
const int maxLookup[MAX_LOOKUPS] =
{
WINED3DTADDRESS_MIRRORONCE, /* WINELOOKUP_WARPPARAM */
};
DWORD *stateLookup[MAX_LOOKUPS]; DWORD *stateLookup[MAX_LOOKUPS];
struct min_lookup minMipLookup[WINED3DTEXF_ANISOTROPIC + 1]; struct min_lookup minMipLookup[WINED3DTEXF_ANISOTROPIC + 1];
...@@ -368,12 +376,8 @@ static ULONG WINAPI IWineD3DImpl_Release(IWineD3D *iface) { ...@@ -368,12 +376,8 @@ static ULONG WINAPI IWineD3DImpl_Release(IWineD3D *iface) {
/* Set the shader type for this device, depending on the given capabilities, /* Set the shader type for this device, depending on the given capabilities,
* the device type, and the user preferences in wined3d_settings */ * the device type, and the user preferences in wined3d_settings */
void select_shader_mode( void select_shader_mode(const WineD3D_GL_Info *gl_info, WINED3DDEVTYPE DeviceType, int *ps_selected, int *vs_selected)
WineD3D_GL_Info *gl_info, {
WINED3DDEVTYPE DeviceType,
int* ps_selected,
int* vs_selected) {
if (wined3d_settings.vs_mode == VS_NONE) { if (wined3d_settings.vs_mode == VS_NONE) {
*vs_selected = SHADER_NONE; *vs_selected = SHADER_NONE;
} else if (gl_info->supported[ARB_VERTEX_SHADER] && wined3d_settings.glslRequested) { } else if (gl_info->supported[ARB_VERTEX_SHADER] && wined3d_settings.glslRequested) {
...@@ -451,7 +455,8 @@ static void select_shader_max_constants( ...@@ -451,7 +455,8 @@ static void select_shader_max_constants(
**********************************************************/ **********************************************************/
#define GLINFO_LOCATION (*gl_info) #define GLINFO_LOCATION (*gl_info)
static inline BOOL test_arb_vs_offset_limit(WineD3D_GL_Info *gl_info) { static inline BOOL test_arb_vs_offset_limit(const WineD3D_GL_Info *gl_info)
{
GLuint prog; GLuint prog;
BOOL ret = FALSE; BOOL ret = FALSE;
const char *testcode = const char *testcode =
...@@ -1342,11 +1347,7 @@ BOOL IWineD3DImpl_FillGLCaps(WineD3D_GL_Info *gl_info) { ...@@ -1342,11 +1347,7 @@ BOOL IWineD3DImpl_FillGLCaps(WineD3D_GL_Info *gl_info) {
else else
gl_info->vidmem = WINE_DEFAULT_VIDMEM; gl_info->vidmem = WINE_DEFAULT_VIDMEM;
/* Load all the lookup tables /* Load all the lookup tables */
TODO: It may be a good idea to make minLookup and maxLookup const and populate them in wined3d_private.h where they are declared */
minLookup[WINELOOKUP_WARPPARAM] = WINED3DTADDRESS_WRAP;
maxLookup[WINELOOKUP_WARPPARAM] = WINED3DTADDRESS_MIRRORONCE;
for (i = 0; i < MAX_LOOKUPS; i++) { for (i = 0; i < MAX_LOOKUPS; i++) {
stateLookup[i] = HeapAlloc(GetProcessHeap(), 0, sizeof(*stateLookup[i]) * (1 + maxLookup[i] - minLookup[i]) ); stateLookup[i] = HeapAlloc(GetProcessHeap(), 0, sizeof(*stateLookup[i]) * (1 + maxLookup[i] - minLookup[i]) );
} }
...@@ -1775,7 +1776,7 @@ static HRESULT WINAPI IWineD3DImpl_CheckDepthStencilMatch(IWineD3D *iface, UINT ...@@ -1775,7 +1776,7 @@ static HRESULT WINAPI IWineD3DImpl_CheckDepthStencilMatch(IWineD3D *iface, UINT
WINED3DFORMAT DepthStencilFormat) { WINED3DFORMAT DepthStencilFormat) {
IWineD3DImpl *This = (IWineD3DImpl *)iface; IWineD3DImpl *This = (IWineD3DImpl *)iface;
int nCfgs; int nCfgs;
WineD3D_PixelFormat *cfgs; const WineD3D_PixelFormat *cfgs;
int it; int it;
WARN_(d3d_caps)("(%p)-> (STUB) (Adptr:%d, DevType:(%x,%s), AdptFmt:(%x,%s), RendrTgtFmt:(%x,%s), DepthStencilFmt:(%x,%s))\n", WARN_(d3d_caps)("(%p)-> (STUB) (Adptr:%d, DevType:(%x,%s), AdptFmt:(%x,%s), RendrTgtFmt:(%x,%s), DepthStencilFmt:(%x,%s))\n",
...@@ -1843,7 +1844,7 @@ static HRESULT WINAPI IWineD3DImpl_CheckDeviceMultiSampleType(IWineD3D *iface, U ...@@ -1843,7 +1844,7 @@ static HRESULT WINAPI IWineD3DImpl_CheckDeviceMultiSampleType(IWineD3D *iface, U
if(glDesc->Flags & (WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL)) { if(glDesc->Flags & (WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL)) {
int i, nCfgs; int i, nCfgs;
WineD3D_PixelFormat *cfgs; const WineD3D_PixelFormat *cfgs;
cfgs = Adapters[Adapter].cfgs; cfgs = Adapters[Adapter].cfgs;
nCfgs = Adapters[Adapter].nCfgs; nCfgs = Adapters[Adapter].nCfgs;
...@@ -1864,7 +1865,7 @@ static HRESULT WINAPI IWineD3DImpl_CheckDeviceMultiSampleType(IWineD3D *iface, U ...@@ -1864,7 +1865,7 @@ static HRESULT WINAPI IWineD3DImpl_CheckDeviceMultiSampleType(IWineD3D *iface, U
else if(glDesc->Flags & WINED3DFMT_FLAG_RENDERTARGET) { else if(glDesc->Flags & WINED3DFMT_FLAG_RENDERTARGET) {
short redSize, greenSize, blueSize, alphaSize, colorBits; short redSize, greenSize, blueSize, alphaSize, colorBits;
int i, nCfgs; int i, nCfgs;
WineD3D_PixelFormat *cfgs; const WineD3D_PixelFormat *cfgs;
if(!getColorBits(SurfaceFormat, &redSize, &greenSize, &blueSize, &alphaSize, &colorBits)) { if(!getColorBits(SurfaceFormat, &redSize, &greenSize, &blueSize, &alphaSize, &colorBits)) {
ERR("Unable to color bits for format %#x, can't check multisampling capability!\n", SurfaceFormat); ERR("Unable to color bits for format %#x, can't check multisampling capability!\n", SurfaceFormat);
...@@ -3746,7 +3747,8 @@ ULONG WINAPI D3DCB_DefaultDestroyVolume(IWineD3DVolume *pVolume) { ...@@ -3746,7 +3747,8 @@ ULONG WINAPI D3DCB_DefaultDestroyVolume(IWineD3DVolume *pVolume) {
return IUnknown_Release(volumeParent); return IUnknown_Release(volumeParent);
} }
static BOOL implementation_is_apple(WineD3D_GL_Info *gl_info) { static BOOL implementation_is_apple(const WineD3D_GL_Info *gl_info)
{
/* MacOS has various specialities in the extensions it advertises. Some have to be loaded from /* MacOS has various specialities in the extensions it advertises. Some have to be loaded from
* the opengl 1.2+ core, while other extensions are advertised, but software emulated. So try to * the opengl 1.2+ core, while other extensions are advertised, but software emulated. So try to
* detect the Apple OpenGL implementation to apply some extension fixups afterwards. * detect the Apple OpenGL implementation to apply some extension fixups afterwards.
...@@ -3985,12 +3987,14 @@ static void fixup_extensions(WineD3D_GL_Info *gl_info) { ...@@ -3985,12 +3987,14 @@ static void fixup_extensions(WineD3D_GL_Info *gl_info) {
} }
} }
static void WINE_GLAPI invalid_func(void *data) { static void WINE_GLAPI invalid_func(const void *data)
{
ERR("Invalid vertex attribute function called\n"); ERR("Invalid vertex attribute function called\n");
DebugBreak(); DebugBreak();
} }
static void WINE_GLAPI invalid_texcoord_func(GLenum unit, void * data) { static void WINE_GLAPI invalid_texcoord_func(GLenum unit, const void *data)
{
ERR("Invalid texcoord function called\n"); ERR("Invalid texcoord function called\n");
DebugBreak(); DebugBreak();
} }
...@@ -4000,8 +4004,9 @@ static void WINE_GLAPI invalid_texcoord_func(GLenum unit, void * data) { ...@@ -4000,8 +4004,9 @@ static void WINE_GLAPI invalid_texcoord_func(GLenum unit, void * data) {
/* Helper functions for providing vertex data to opengl. The arrays are initialized based on /* Helper functions for providing vertex data to opengl. The arrays are initialized based on
* the extension detection and are used in drawStridedSlow * the extension detection and are used in drawStridedSlow
*/ */
static void WINE_GLAPI position_d3dcolor(void *data) { static void WINE_GLAPI position_d3dcolor(const void *data)
DWORD pos = *((DWORD *) data); {
DWORD pos = *((const DWORD *)data);
FIXME("Add a test for fixed function position from d3dcolor type\n"); FIXME("Add a test for fixed function position from d3dcolor type\n");
glVertex4s(D3DCOLOR_B_R(pos), glVertex4s(D3DCOLOR_B_R(pos),
...@@ -4009,8 +4014,10 @@ static void WINE_GLAPI position_d3dcolor(void *data) { ...@@ -4009,8 +4014,10 @@ static void WINE_GLAPI position_d3dcolor(void *data) {
D3DCOLOR_B_B(pos), D3DCOLOR_B_B(pos),
D3DCOLOR_B_A(pos)); D3DCOLOR_B_A(pos));
} }
static void WINE_GLAPI position_float4(void *data) {
GLfloat *pos = (float *) data; static void WINE_GLAPI position_float4(const void *data)
{
const GLfloat *pos = data;
if (pos[3] < eps && pos[3] > -eps) if (pos[3] < eps && pos[3] > -eps)
glVertex3fv(pos); glVertex3fv(pos);
...@@ -4021,8 +4028,9 @@ static void WINE_GLAPI position_float4(void *data) { ...@@ -4021,8 +4028,9 @@ static void WINE_GLAPI position_float4(void *data) {
} }
} }
static void WINE_GLAPI diffuse_d3dcolor(void *data) { static void WINE_GLAPI diffuse_d3dcolor(const void *data)
DWORD diffuseColor = *((DWORD *) data); {
DWORD diffuseColor = *((const DWORD *)data);
glColor4ub(D3DCOLOR_B_R(diffuseColor), glColor4ub(D3DCOLOR_B_R(diffuseColor),
D3DCOLOR_B_G(diffuseColor), D3DCOLOR_B_G(diffuseColor),
...@@ -4030,18 +4038,22 @@ static void WINE_GLAPI diffuse_d3dcolor(void *data) { ...@@ -4030,18 +4038,22 @@ static void WINE_GLAPI diffuse_d3dcolor(void *data) {
D3DCOLOR_B_A(diffuseColor)); D3DCOLOR_B_A(diffuseColor));
} }
static void WINE_GLAPI specular_d3dcolor(void *data) { static void WINE_GLAPI specular_d3dcolor(const void *data)
DWORD specularColor = *((DWORD *) data); {
DWORD specularColor = *((const DWORD *)data);
GL_EXTCALL(glSecondaryColor3ubEXT)(D3DCOLOR_B_R(specularColor), GL_EXTCALL(glSecondaryColor3ubEXT)(D3DCOLOR_B_R(specularColor),
D3DCOLOR_B_G(specularColor), D3DCOLOR_B_G(specularColor),
D3DCOLOR_B_B(specularColor)); D3DCOLOR_B_B(specularColor));
} }
static void WINE_GLAPI warn_no_specular_func(void *data) {
static void WINE_GLAPI warn_no_specular_func(const void *data)
{
WARN("GL_EXT_secondary_color not supported\n"); WARN("GL_EXT_secondary_color not supported\n");
} }
void fillGLAttribFuncs(WineD3D_GL_Info *gl_info) { void fillGLAttribFuncs(const WineD3D_GL_Info *gl_info)
{
position_funcs[WINED3DDECLTYPE_FLOAT1] = invalid_func; position_funcs[WINED3DDECLTYPE_FLOAT1] = invalid_func;
position_funcs[WINED3DDECLTYPE_FLOAT2] = invalid_func; position_funcs[WINED3DDECLTYPE_FLOAT2] = invalid_func;
position_funcs[WINED3DDECLTYPE_FLOAT3] = (glAttribFunc)glVertex3fv; position_funcs[WINED3DDECLTYPE_FLOAT3] = (glAttribFunc)glVertex3fv;
......
...@@ -107,8 +107,8 @@ typedef enum _WINELOOKUP { ...@@ -107,8 +107,8 @@ typedef enum _WINELOOKUP {
MAX_LOOKUPS = 1 MAX_LOOKUPS = 1
} WINELOOKUP; } WINELOOKUP;
extern int minLookup[MAX_LOOKUPS]; extern const int minLookup[MAX_LOOKUPS];
extern int maxLookup[MAX_LOOKUPS]; extern const int maxLookup[MAX_LOOKUPS];
extern DWORD *stateLookup[MAX_LOOKUPS]; extern DWORD *stateLookup[MAX_LOOKUPS];
struct min_lookup struct min_lookup
...@@ -556,8 +556,8 @@ void primitiveDeclarationConvertToStridedData( ...@@ -556,8 +556,8 @@ void primitiveDeclarationConvertToStridedData(
DWORD get_flexible_vertex_size(DWORD d3dvtVertexType); DWORD get_flexible_vertex_size(DWORD d3dvtVertexType);
typedef void (WINE_GLAPI *glAttribFunc)(void *data); typedef void (WINE_GLAPI *glAttribFunc)(const void *data);
typedef void (WINE_GLAPI *glMultiTexCoordFunc)(GLenum unit, void *data); typedef void (WINE_GLAPI *glMultiTexCoordFunc)(GLenum unit, const void *data);
extern glAttribFunc position_funcs[WINED3DDECLTYPE_UNUSED]; extern glAttribFunc position_funcs[WINED3DDECLTYPE_UNUSED];
extern glAttribFunc diffuse_funcs[WINED3DDECLTYPE_UNUSED]; extern glAttribFunc diffuse_funcs[WINED3DDECLTYPE_UNUSED];
extern glAttribFunc specular_funcs[WINED3DDECLTYPE_UNUSED]; extern glAttribFunc specular_funcs[WINED3DDECLTYPE_UNUSED];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment