Commit a0131a32 authored by Stefan Dösinger's avatar Stefan Dösinger Committed by Alexandre Julliard

wined3d: Split up the format table.

parent 58080159
...@@ -576,7 +576,8 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateSurface(IWineD3DDevice *iface, U ...@@ -576,7 +576,8 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateSurface(IWineD3DDevice *iface, U
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface; IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
IWineD3DSurfaceImpl *object; /*NOTE: impl ref allowed since this is a create function */ IWineD3DSurfaceImpl *object; /*NOTE: impl ref allowed since this is a create function */
unsigned int Size = 1; unsigned int Size = 1;
const PixelFormatDesc *tableEntry = getFormatDescEntry(Format); const GlPixelFormatDesc *glDesc;
const StaticPixelFormatDesc *tableEntry = getFormatDescEntry(Format, &glDesc);
TRACE("(%p) Create surface\n",This); TRACE("(%p) Create surface\n",This);
/** FIXME: Check ranges on the inputs are valid /** FIXME: Check ranges on the inputs are valid
...@@ -645,9 +646,9 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateSurface(IWineD3DDevice *iface, U ...@@ -645,9 +646,9 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateSurface(IWineD3DDevice *iface, U
object->currentDesc.MultiSampleQuality = MultisampleQuality; object->currentDesc.MultiSampleQuality = MultisampleQuality;
/* Setup some glformat defaults */ /* Setup some glformat defaults */
object->glDescription.glFormat = tableEntry->glFormat; object->glDescription.glFormat = glDesc->glFormat;
object->glDescription.glFormatInternal = tableEntry->glInternal; object->glDescription.glFormatInternal = glDesc->glInternal;
object->glDescription.glType = tableEntry->glType; object->glDescription.glType = glDesc->glType;
object->glDescription.textureName = 0; object->glDescription.textureName = 0;
object->glDescription.level = Level; object->glDescription.level = Level;
...@@ -922,7 +923,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateVolume(IWineD3DDevice *iface, ...@@ -922,7 +923,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateVolume(IWineD3DDevice *iface,
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface; IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
IWineD3DVolumeImpl *object; /** NOTE: impl ref allowed since this is a create function **/ IWineD3DVolumeImpl *object; /** NOTE: impl ref allowed since this is a create function **/
const PixelFormatDesc *formatDesc = getFormatDescEntry(Format); const StaticPixelFormatDesc *formatDesc = getFormatDescEntry(Format, NULL);
D3DCREATERESOURCEOBJECTINSTANCE(object, Volume, WINED3DRTYPE_VOLUME, ((Width * formatDesc->bpp) * Height * Depth)) D3DCREATERESOURCEOBJECTINSTANCE(object, Volume, WINED3DRTYPE_VOLUME, ((Width * formatDesc->bpp) * Height * Depth))
...@@ -2028,7 +2029,6 @@ static void WINAPI IWineD3DDeviceImpl_SetFullscreen(IWineD3DDevice *iface, BOOL ...@@ -2028,7 +2029,6 @@ static void WINAPI IWineD3DDeviceImpl_SetFullscreen(IWineD3DDevice *iface, BOOL
*/ */
static void WINAPI IWineD3DDeviceImpl_SetMultithreaded(IWineD3DDevice *iface) { static void WINAPI IWineD3DDeviceImpl_SetMultithreaded(IWineD3DDevice *iface) {
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *) iface; IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *) iface;
FIXME("No thread safety in wined3d yet\n");
/*For now just store the flag(needed in case of ddraw) */ /*For now just store the flag(needed in case of ddraw) */
This->createParms.BehaviorFlags |= WINED3DCREATE_MULTITHREADED; This->createParms.BehaviorFlags |= WINED3DCREATE_MULTITHREADED;
...@@ -2040,7 +2040,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetDisplayMode(IWineD3DDevice *iface, U ...@@ -2040,7 +2040,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetDisplayMode(IWineD3DDevice *iface, U
DEVMODEW devmode; DEVMODEW devmode;
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface; IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
LONG ret; LONG ret;
const PixelFormatDesc *formatDesc = getFormatDescEntry(pMode->Format); const StaticPixelFormatDesc *formatDesc = getFormatDescEntry(pMode->Format, NULL);
RECT clip_rc; RECT clip_rc;
TRACE("(%p)->(%d,%p) Mode=%dx%dx@%d, %s\n", This, iSwapChain, pMode, pMode->Width, pMode->Height, pMode->RefreshRate, debug_d3dformat(pMode->Format)); TRACE("(%p)->(%d,%p) Mode=%dx%dx@%d, %s\n", This, iSwapChain, pMode, pMode->Width, pMode->Height, pMode->RefreshRate, debug_d3dformat(pMode->Format));
...@@ -5985,11 +5985,12 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetCursorProperties(IWineD3DDevice* i ...@@ -5985,11 +5985,12 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetCursorProperties(IWineD3DDevice* i
This->cursorHeight = pSur->currentDesc.Height; This->cursorHeight = pSur->currentDesc.Height;
if (SUCCEEDED(IWineD3DSurface_LockRect(pCursorBitmap, &rect, NULL, WINED3DLOCK_READONLY))) if (SUCCEEDED(IWineD3DSurface_LockRect(pCursorBitmap, &rect, NULL, WINED3DLOCK_READONLY)))
{ {
const PixelFormatDesc *tableEntry = getFormatDescEntry(WINED3DFMT_A8R8G8B8); const GlPixelFormatDesc *glDesc;
const StaticPixelFormatDesc *tableEntry = getFormatDescEntry(WINED3DFMT_A8R8G8B8, &glDesc);
char *mem, *bits = (char *)rect.pBits; char *mem, *bits = (char *)rect.pBits;
GLint intfmt = tableEntry->glInternal; GLint intfmt = glDesc->glInternal;
GLint format = tableEntry->glFormat; GLint format = glDesc->glFormat;
GLint type = tableEntry->glType; GLint type = glDesc->glType;
INT height = This->cursorHeight; INT height = This->cursorHeight;
INT width = This->cursorWidth; INT width = This->cursorWidth;
INT bpp = tableEntry->bpp; INT bpp = tableEntry->bpp;
...@@ -6455,7 +6456,6 @@ static void WINAPI IWineD3DDeviceImpl_ResourceReleased(IWineD3DDevice *iface, IW ...@@ -6455,7 +6456,6 @@ static void WINAPI IWineD3DDeviceImpl_ResourceReleased(IWineD3DDevice *iface, IW
break; break;
} }
case WINED3DRTYPE_TEXTURE: case WINED3DRTYPE_TEXTURE:
case WINED3DRTYPE_CUBETEXTURE: case WINED3DRTYPE_CUBETEXTURE:
case WINED3DRTYPE_VOLUMETEXTURE: case WINED3DRTYPE_VOLUMETEXTURE:
......
...@@ -347,7 +347,7 @@ static void state_alpha(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3D ...@@ -347,7 +347,7 @@ static void state_alpha(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3D
surf = (IWineD3DSurfaceImpl *) ((IWineD3DTextureImpl *)stateblock->textures[0])->surfaces[0]; surf = (IWineD3DSurfaceImpl *) ((IWineD3DTextureImpl *)stateblock->textures[0])->surfaces[0];
if(surf->CKeyFlags & WINEDDSD_CKSRCBLT) { if(surf->CKeyFlags & WINEDDSD_CKSRCBLT) {
const PixelFormatDesc *fmt = getFormatDescEntry(surf->resource.format); const StaticPixelFormatDesc *fmt = getFormatDescEntry(surf->resource.format, NULL);
/* The surface conversion does not do color keying conversion for surfaces that have an alpha /* The surface conversion does not do color keying conversion for surfaces that have an alpha
* channel on their own. Likewise, the alpha test shouldn't be set up for color keying if the * channel on their own. Likewise, the alpha test shouldn't be set up for color keying if the
* surface has alpha bits * surface has alpha bits
...@@ -1783,7 +1783,7 @@ static void tex_alphaop(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3D ...@@ -1783,7 +1783,7 @@ static void tex_alphaop(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3D
IWineD3DSurfaceImpl *surf = (IWineD3DSurfaceImpl *) ((IWineD3DTextureImpl *) stateblock->textures[0])->surfaces[0]; IWineD3DSurfaceImpl *surf = (IWineD3DSurfaceImpl *) ((IWineD3DTextureImpl *) stateblock->textures[0])->surfaces[0];
if(surf->CKeyFlags & WINEDDSD_CKSRCBLT && if(surf->CKeyFlags & WINEDDSD_CKSRCBLT &&
getFormatDescEntry(surf->resource.format)->alphaMask == 0x00000000) { getFormatDescEntry(surf->resource.format, NULL)->alphaMask == 0x00000000) {
/* Color keying needs to pass alpha values from the texture through to have the alpha test work properly. /* Color keying needs to pass alpha values from the texture through to have the alpha test work properly.
* On the other hand applications can still use texture combiners apparently. This code takes care that apps * On the other hand applications can still use texture combiners apparently. This code takes care that apps
......
...@@ -275,11 +275,12 @@ void surface_set_compatible_renderbuffer(IWineD3DSurface *iface, unsigned int wi ...@@ -275,11 +275,12 @@ void surface_set_compatible_renderbuffer(IWineD3DSurface *iface, unsigned int wi
} }
if (!renderbuffer) { if (!renderbuffer) {
const PixelFormatDesc *format_entry = getFormatDescEntry(This->resource.format); const GlPixelFormatDesc *glDesc;
getFormatDescEntry(This->resource.format, &glDesc);
GL_EXTCALL(glGenRenderbuffersEXT(1, &renderbuffer)); GL_EXTCALL(glGenRenderbuffersEXT(1, &renderbuffer));
GL_EXTCALL(glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, renderbuffer)); GL_EXTCALL(glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, renderbuffer));
GL_EXTCALL(glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, format_entry->glFormat, width, height)); GL_EXTCALL(glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, glDesc->glFormat, width, height));
entry = HeapAlloc(GetProcessHeap(), 0, sizeof(renderbuffer_entry_t)); entry = HeapAlloc(GetProcessHeap(), 0, sizeof(renderbuffer_entry_t));
entry->width = width; entry->width = width;
...@@ -1261,7 +1262,7 @@ HRESULT WINAPI IWineD3DSurfaceImpl_GetDC(IWineD3DSurface *iface, HDC *pHDC) { ...@@ -1261,7 +1262,7 @@ HRESULT WINAPI IWineD3DSurfaceImpl_GetDC(IWineD3DSurface *iface, HDC *pHDC) {
DWORD *masks; DWORD *masks;
HRESULT hr; HRESULT hr;
RGBQUAD col[256]; RGBQUAD col[256];
const PixelFormatDesc *formatEntry = getFormatDescEntry(This->resource.format); const StaticPixelFormatDesc *formatEntry = getFormatDescEntry(This->resource.format, NULL);
TRACE("(%p)->(%p)\n",This,pHDC); TRACE("(%p)->(%p)\n",This,pHDC);
...@@ -1482,12 +1483,13 @@ HRESULT WINAPI IWineD3DSurfaceImpl_ReleaseDC(IWineD3DSurface *iface, HDC hDC) { ...@@ -1482,12 +1483,13 @@ HRESULT WINAPI IWineD3DSurfaceImpl_ReleaseDC(IWineD3DSurface *iface, HDC hDC) {
static HRESULT d3dfmt_get_conv(IWineD3DSurfaceImpl *This, BOOL need_alpha_ck, BOOL use_texturing, GLenum *format, GLenum *internal, GLenum *type, CONVERT_TYPES *convert, int *target_bpp, BOOL srgb_mode) { static HRESULT d3dfmt_get_conv(IWineD3DSurfaceImpl *This, BOOL need_alpha_ck, BOOL use_texturing, GLenum *format, GLenum *internal, GLenum *type, CONVERT_TYPES *convert, int *target_bpp, BOOL srgb_mode) {
BOOL colorkey_active = need_alpha_ck && (This->CKeyFlags & WINEDDSD_CKSRCBLT); BOOL colorkey_active = need_alpha_ck && (This->CKeyFlags & WINEDDSD_CKSRCBLT);
const PixelFormatDesc *formatEntry = getFormatDescEntry(This->resource.format); const GlPixelFormatDesc *glDesc;
getFormatDescEntry(This->resource.format, &glDesc);
/* Default values: From the surface */ /* Default values: From the surface */
*format = formatEntry->glFormat; *format = glDesc->glFormat;
*internal = srgb_mode?formatEntry->glGammaInternal:formatEntry->glInternal; *internal = srgb_mode?glDesc->glGammaInternal:glDesc->glInternal;
*type = formatEntry->glType; *type = glDesc->glType;
*convert = NO_CONVERSION; *convert = NO_CONVERSION;
*target_bpp = This->bytesPerPixel; *target_bpp = This->bytesPerPixel;
...@@ -2248,7 +2250,8 @@ HRESULT WINAPI IWineD3DSurfaceImpl_SetContainer(IWineD3DSurface *iface, IWineD3D ...@@ -2248,7 +2250,8 @@ HRESULT WINAPI IWineD3DSurfaceImpl_SetContainer(IWineD3DSurface *iface, IWineD3D
HRESULT WINAPI IWineD3DSurfaceImpl_SetFormat(IWineD3DSurface *iface, WINED3DFORMAT format) { HRESULT WINAPI IWineD3DSurfaceImpl_SetFormat(IWineD3DSurface *iface, WINED3DFORMAT format) {
IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *)iface; IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *)iface;
const PixelFormatDesc *formatEntry = getFormatDescEntry(format); const GlPixelFormatDesc *glDesc;
const StaticPixelFormatDesc *formatEntry = getFormatDescEntry(format, &glDesc);
if (This->resource.format != WINED3DFMT_UNKNOWN) { if (This->resource.format != WINED3DFMT_UNKNOWN) {
FIXME("(%p) : The format of the surface must be WINED3DFORMAT_UNKNOWN\n", This); FIXME("(%p) : The format of the surface must be WINED3DFORMAT_UNKNOWN\n", This);
...@@ -2273,9 +2276,9 @@ HRESULT WINAPI IWineD3DSurfaceImpl_SetFormat(IWineD3DSurface *iface, WINED3DFORM ...@@ -2273,9 +2276,9 @@ HRESULT WINAPI IWineD3DSurfaceImpl_SetFormat(IWineD3DSurface *iface, WINED3DFORM
/* Setup some glformat defaults */ /* Setup some glformat defaults */
This->glDescription.glFormat = formatEntry->glFormat; This->glDescription.glFormat = glDesc->glFormat;
This->glDescription.glFormatInternal = formatEntry->glInternal; This->glDescription.glFormatInternal = glDesc->glInternal;
This->glDescription.glType = formatEntry->glType; This->glDescription.glType = glDesc->glType;
if (format != WINED3DFMT_UNKNOWN) { if (format != WINED3DFMT_UNKNOWN) {
This->bytesPerPixel = formatEntry->bpp; This->bytesPerPixel = formatEntry->bpp;
......
...@@ -498,7 +498,7 @@ IWineGDISurfaceImpl_Blt(IWineD3DSurface *iface, ...@@ -498,7 +498,7 @@ IWineGDISurfaceImpl_Blt(IWineD3DSurface *iface,
WINED3DFORMAT dfmt = WINED3DFMT_UNKNOWN, sfmt = WINED3DFMT_UNKNOWN; WINED3DFORMAT dfmt = WINED3DFMT_UNKNOWN, sfmt = WINED3DFMT_UNKNOWN;
int bpp, srcheight, srcwidth, dstheight, dstwidth, width; int bpp, srcheight, srcwidth, dstheight, dstwidth, width;
int x, y; int x, y;
const PixelFormatDesc *sEntry, *dEntry; const StaticPixelFormatDesc *sEntry, *dEntry;
LPBYTE dbuf, sbuf; LPBYTE dbuf, sbuf;
TRACE("(%p)->(%p,%p,%p,%x,%p)\n", This, DestRect, Src, SrcRect, Flags, DDBltFx); TRACE("(%p)->(%p,%p,%p,%x,%p)\n", This, DestRect, Src, SrcRect, Flags, DDBltFx);
...@@ -536,7 +536,7 @@ IWineGDISurfaceImpl_Blt(IWineD3DSurface *iface, ...@@ -536,7 +536,7 @@ IWineGDISurfaceImpl_Blt(IWineD3DSurface *iface,
dfmt = This->resource.format; dfmt = This->resource.format;
slock = dlock; slock = dlock;
sfmt = dfmt; sfmt = dfmt;
sEntry = getFormatDescEntry(sfmt); sEntry = getFormatDescEntry(sfmt, NULL);
dEntry = sEntry; dEntry = sEntry;
} }
else else
...@@ -546,9 +546,9 @@ IWineGDISurfaceImpl_Blt(IWineD3DSurface *iface, ...@@ -546,9 +546,9 @@ IWineGDISurfaceImpl_Blt(IWineD3DSurface *iface,
IWineD3DSurface_LockRect(SrcSurface, &slock, NULL, WINED3DLOCK_READONLY); IWineD3DSurface_LockRect(SrcSurface, &slock, NULL, WINED3DLOCK_READONLY);
sfmt = Src->resource.format; sfmt = Src->resource.format;
} }
sEntry = getFormatDescEntry(sfmt); sEntry = getFormatDescEntry(sfmt, NULL);
dfmt = This->resource.format; dfmt = This->resource.format;
dEntry = getFormatDescEntry(dfmt); dEntry = getFormatDescEntry(dfmt, NULL);
IWineD3DSurface_LockRect(iface, &dlock,NULL,0); IWineD3DSurface_LockRect(iface, &dlock,NULL,0);
} }
...@@ -1135,7 +1135,7 @@ IWineGDISurfaceImpl_BltFast(IWineD3DSurface *iface, ...@@ -1135,7 +1135,7 @@ IWineGDISurfaceImpl_BltFast(IWineD3DSurface *iface,
RECT rsrc2; RECT rsrc2;
RECT lock_src, lock_dst, lock_union; RECT lock_src, lock_dst, lock_union;
BYTE *sbuf, *dbuf; BYTE *sbuf, *dbuf;
const PixelFormatDesc *sEntry, *dEntry; const StaticPixelFormatDesc *sEntry, *dEntry;
if (TRACE_ON(d3d_surface)) if (TRACE_ON(d3d_surface))
{ {
...@@ -1221,7 +1221,7 @@ IWineGDISurfaceImpl_BltFast(IWineD3DSurface *iface, ...@@ -1221,7 +1221,7 @@ IWineGDISurfaceImpl_BltFast(IWineD3DSurface *iface,
assert(This->resource.allocatedMemory != NULL); assert(This->resource.allocatedMemory != NULL);
sbuf = (BYTE *)This->resource.allocatedMemory + lock_src.top * pitch + lock_src.left * bpp; sbuf = (BYTE *)This->resource.allocatedMemory + lock_src.top * pitch + lock_src.left * bpp;
dbuf = (BYTE *)This->resource.allocatedMemory + lock_dst.top * pitch + lock_dst.left * bpp; dbuf = (BYTE *)This->resource.allocatedMemory + lock_dst.top * pitch + lock_dst.left * bpp;
sEntry = getFormatDescEntry(Src->resource.format); sEntry = getFormatDescEntry(Src->resource.format, NULL);
dEntry = sEntry; dEntry = sEntry;
} }
else else
...@@ -1235,8 +1235,8 @@ IWineGDISurfaceImpl_BltFast(IWineD3DSurface *iface, ...@@ -1235,8 +1235,8 @@ IWineGDISurfaceImpl_BltFast(IWineD3DSurface *iface,
dbuf = dlock.pBits; dbuf = dlock.pBits;
TRACE("Dst is at %p, Src is at %p\n", dbuf, sbuf); TRACE("Dst is at %p, Src is at %p\n", dbuf, sbuf);
sEntry = getFormatDescEntry(Src->resource.format); sEntry = getFormatDescEntry(Src->resource.format, NULL);
dEntry = getFormatDescEntry(This->resource.format); dEntry = getFormatDescEntry(This->resource.format, NULL);
} }
/* Handle first the FOURCC surfaces... */ /* Handle first the FOURCC surfaces... */
...@@ -1414,7 +1414,7 @@ const char* filename) ...@@ -1414,7 +1414,7 @@ const char* filename)
IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *)iface; IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *)iface;
static char *output = NULL; static char *output = NULL;
static int size = 0; static int size = 0;
const PixelFormatDesc *formatEntry = getFormatDescEntry(This->resource.format); const StaticPixelFormatDesc *formatEntry = getFormatDescEntry(This->resource.format, NULL);
if (This->pow2Width > size) { if (This->pow2Width > size) {
output = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, This->pow2Width * 3); output = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, This->pow2Width * 3);
......
...@@ -265,7 +265,8 @@ static HRESULT WINAPI IWineD3DVolumeImpl_SetContainer(IWineD3DVolume *iface, IWi ...@@ -265,7 +265,8 @@ static HRESULT WINAPI IWineD3DVolumeImpl_SetContainer(IWineD3DVolume *iface, IWi
static HRESULT WINAPI IWineD3DVolumeImpl_LoadTexture(IWineD3DVolume *iface, int gl_level, BOOL srgb_mode) { static HRESULT WINAPI IWineD3DVolumeImpl_LoadTexture(IWineD3DVolume *iface, int gl_level, BOOL srgb_mode) {
IWineD3DVolumeImpl *This = (IWineD3DVolumeImpl *)iface; IWineD3DVolumeImpl *This = (IWineD3DVolumeImpl *)iface;
WINED3DFORMAT format = This->resource.format; WINED3DFORMAT format = This->resource.format;
const PixelFormatDesc *formatEntry = getFormatDescEntry(format); const GlPixelFormatDesc *glDesc;
getFormatDescEntry(format, &glDesc);
TRACE("(%p) : level %u, format %s (0x%08x)\n", This, gl_level, debug_d3dformat(format), format); TRACE("(%p) : level %u, format %s (0x%08x)\n", This, gl_level, debug_d3dformat(format), format);
...@@ -273,23 +274,23 @@ static HRESULT WINAPI IWineD3DVolumeImpl_LoadTexture(IWineD3DVolume *iface, int ...@@ -273,23 +274,23 @@ static HRESULT WINAPI IWineD3DVolumeImpl_LoadTexture(IWineD3DVolume *iface, int
TRACE("Calling glTexImage3D %x level=%d, intfmt=%x, w=%d, h=%d,d=%d, 0=%d, glFmt=%x, glType=%x, Mem=%p\n", TRACE("Calling glTexImage3D %x level=%d, intfmt=%x, w=%d, h=%d,d=%d, 0=%d, glFmt=%x, glType=%x, Mem=%p\n",
GL_TEXTURE_3D, GL_TEXTURE_3D,
gl_level, gl_level,
formatEntry->glInternal, glDesc->glInternal,
This->currentDesc.Width, This->currentDesc.Width,
This->currentDesc.Height, This->currentDesc.Height,
This->currentDesc.Depth, This->currentDesc.Depth,
0, 0,
formatEntry->glFormat, glDesc->glFormat,
formatEntry->glType, glDesc->glType,
This->resource.allocatedMemory); This->resource.allocatedMemory);
GL_EXTCALL(glTexImage3DEXT(GL_TEXTURE_3D, GL_EXTCALL(glTexImage3DEXT(GL_TEXTURE_3D,
gl_level, gl_level,
formatEntry->glInternal, glDesc->glInternal,
This->currentDesc.Width, This->currentDesc.Width,
This->currentDesc.Height, This->currentDesc.Height,
This->currentDesc.Depth, This->currentDesc.Depth,
0, 0,
formatEntry->glFormat, glDesc->glFormat,
formatEntry->glType, glDesc->glType,
This->resource.allocatedMemory)); This->resource.allocatedMemory));
checkGLcall("glTexImage3D"); checkGLcall("glTexImage3D");
} else } else
......
...@@ -2038,10 +2038,15 @@ typedef struct { ...@@ -2038,10 +2038,15 @@ typedef struct {
DWORD alphaMask, redMask, greenMask, blueMask; DWORD alphaMask, redMask, greenMask, blueMask;
UINT bpp; UINT bpp;
BOOL isFourcc; BOOL isFourcc;
} StaticPixelFormatDesc;
typedef struct {
/* Array uses the same indices as the static pixelformat */
GLint glInternal, glGammaInternal, glFormat, glType; GLint glInternal, glGammaInternal, glFormat, glType;
} PixelFormatDesc; } GlPixelFormatDesc;
const PixelFormatDesc *getFormatDescEntry(WINED3DFORMAT fmt); const StaticPixelFormatDesc *getFormatDescEntry(WINED3DFORMAT fmt,
const GlPixelFormatDesc **glDesc);
static inline BOOL use_vs(IWineD3DDeviceImpl *device) { static inline BOOL use_vs(IWineD3DDeviceImpl *device) {
return (device->vs_selected_mode != SHADER_NONE return (device->vs_selected_mode != SHADER_NONE
......
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