wined3d: Const correctness fixes for directx.c.

This commit is contained in:
Henri Verbeet 2008-11-28 15:30:11 +01:00 committed by Alexandre Julliard
parent 942f82100a
commit 50ebf26894
2 changed files with 46 additions and 34 deletions

View File

@ -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);
/* lookup tables */
int minLookup[MAX_LOOKUPS];
int maxLookup[MAX_LOOKUPS];
const int minLookup[MAX_LOOKUPS] =
{
WINED3DTADDRESS_WRAP, /* WINELOOKUP_WARPPARAM */
};
const int maxLookup[MAX_LOOKUPS] =
{
WINED3DTADDRESS_MIRRORONCE, /* WINELOOKUP_WARPPARAM */
};
DWORD *stateLookup[MAX_LOOKUPS];
struct min_lookup minMipLookup[WINED3DTEXF_ANISOTROPIC + 1];
@ -368,12 +376,8 @@ static ULONG WINAPI IWineD3DImpl_Release(IWineD3D *iface) {
/* Set the shader type for this device, depending on the given capabilities,
* the device type, and the user preferences in wined3d_settings */
void select_shader_mode(
WineD3D_GL_Info *gl_info,
WINED3DDEVTYPE DeviceType,
int* ps_selected,
int* vs_selected) {
void select_shader_mode(const WineD3D_GL_Info *gl_info, WINED3DDEVTYPE DeviceType, int *ps_selected, int *vs_selected)
{
if (wined3d_settings.vs_mode == VS_NONE) {
*vs_selected = SHADER_NONE;
} else if (gl_info->supported[ARB_VERTEX_SHADER] && wined3d_settings.glslRequested) {
@ -451,7 +455,8 @@ static void select_shader_max_constants(
**********************************************************/
#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;
BOOL ret = FALSE;
const char *testcode =
@ -1342,11 +1347,7 @@ BOOL IWineD3DImpl_FillGLCaps(WineD3D_GL_Info *gl_info) {
else
gl_info->vidmem = WINE_DEFAULT_VIDMEM;
/* 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;
/* Load all the lookup tables */
for (i = 0; i < MAX_LOOKUPS; 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
WINED3DFORMAT DepthStencilFormat) {
IWineD3DImpl *This = (IWineD3DImpl *)iface;
int nCfgs;
WineD3D_PixelFormat *cfgs;
const WineD3D_PixelFormat *cfgs;
int it;
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
if(glDesc->Flags & (WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL)) {
int i, nCfgs;
WineD3D_PixelFormat *cfgs;
const WineD3D_PixelFormat *cfgs;
cfgs = Adapters[Adapter].cfgs;
nCfgs = Adapters[Adapter].nCfgs;
@ -1864,7 +1865,7 @@ static HRESULT WINAPI IWineD3DImpl_CheckDeviceMultiSampleType(IWineD3D *iface, U
else if(glDesc->Flags & WINED3DFMT_FLAG_RENDERTARGET) {
short redSize, greenSize, blueSize, alphaSize, colorBits;
int i, nCfgs;
WineD3D_PixelFormat *cfgs;
const WineD3D_PixelFormat *cfgs;
if(!getColorBits(SurfaceFormat, &redSize, &greenSize, &blueSize, &alphaSize, &colorBits)) {
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) {
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
* 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.
@ -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");
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");
DebugBreak();
}
@ -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
* the extension detection and are used in drawStridedSlow
*/
static void WINE_GLAPI position_d3dcolor(void *data) {
DWORD pos = *((DWORD *) data);
static void WINE_GLAPI position_d3dcolor(const void *data)
{
DWORD pos = *((const DWORD *)data);
FIXME("Add a test for fixed function position from d3dcolor type\n");
glVertex4s(D3DCOLOR_B_R(pos),
@ -4009,8 +4014,10 @@ static void WINE_GLAPI position_d3dcolor(void *data) {
D3DCOLOR_B_B(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)
glVertex3fv(pos);
@ -4021,8 +4028,9 @@ static void WINE_GLAPI position_float4(void *data) {
}
}
static void WINE_GLAPI diffuse_d3dcolor(void *data) {
DWORD diffuseColor = *((DWORD *) data);
static void WINE_GLAPI diffuse_d3dcolor(const void *data)
{
DWORD diffuseColor = *((const DWORD *)data);
glColor4ub(D3DCOLOR_B_R(diffuseColor),
D3DCOLOR_B_G(diffuseColor),
@ -4030,18 +4038,22 @@ static void WINE_GLAPI diffuse_d3dcolor(void *data) {
D3DCOLOR_B_A(diffuseColor));
}
static void WINE_GLAPI specular_d3dcolor(void *data) {
DWORD specularColor = *((DWORD *) data);
static void WINE_GLAPI specular_d3dcolor(const void *data)
{
DWORD specularColor = *((const DWORD *)data);
GL_EXTCALL(glSecondaryColor3ubEXT)(D3DCOLOR_B_R(specularColor),
D3DCOLOR_B_G(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");
}
void fillGLAttribFuncs(WineD3D_GL_Info *gl_info) {
void fillGLAttribFuncs(const WineD3D_GL_Info *gl_info)
{
position_funcs[WINED3DDECLTYPE_FLOAT1] = invalid_func;
position_funcs[WINED3DDECLTYPE_FLOAT2] = invalid_func;
position_funcs[WINED3DDECLTYPE_FLOAT3] = (glAttribFunc)glVertex3fv;

View File

@ -107,8 +107,8 @@ typedef enum _WINELOOKUP {
MAX_LOOKUPS = 1
} WINELOOKUP;
extern int minLookup[MAX_LOOKUPS];
extern int maxLookup[MAX_LOOKUPS];
extern const int minLookup[MAX_LOOKUPS];
extern const int maxLookup[MAX_LOOKUPS];
extern DWORD *stateLookup[MAX_LOOKUPS];
struct min_lookup
@ -556,8 +556,8 @@ void primitiveDeclarationConvertToStridedData(
DWORD get_flexible_vertex_size(DWORD d3dvtVertexType);
typedef void (WINE_GLAPI *glAttribFunc)(void *data);
typedef void (WINE_GLAPI *glMultiTexCoordFunc)(GLenum unit, void *data);
typedef void (WINE_GLAPI *glAttribFunc)(const void *data);
typedef void (WINE_GLAPI *glMultiTexCoordFunc)(GLenum unit, const void *data);
extern glAttribFunc position_funcs[WINED3DDECLTYPE_UNUSED];
extern glAttribFunc diffuse_funcs[WINED3DDECLTYPE_UNUSED];
extern glAttribFunc specular_funcs[WINED3DDECLTYPE_UNUSED];