Commit 303d2407 by Nicolas Capens

Pass the internal format to the image data loading functions.

Bug 21635916 Change-Id: Ib6836cbc42fa4ceebf0af66b9891dde1491594c3 Reviewed-on: https://swiftshader-review.googlesource.com/3391Reviewed-by: 's avatarAlexis Hétu <sugoi@google.com> Reviewed-by: 's avatarNicolas Capens <capn@google.com> Tested-by: 's avatarNicolas Capens <capn@google.com>
parent fc02cfc3
...@@ -51,19 +51,19 @@ namespace ...@@ -51,19 +51,19 @@ namespace
}; };
template<DataType dataType> template<DataType dataType>
void LoadImageRow(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width) void LoadImageRow(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width, sw::Format internalFormat)
{ {
UNIMPLEMENTED(); UNIMPLEMENTED();
} }
template<> template<>
void LoadImageRow<Alpha>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width) void LoadImageRow<Alpha>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width, sw::Format internalFormat)
{ {
memcpy(dest + xoffset, source, width); memcpy(dest + xoffset, source, width);
} }
template<> template<>
void LoadImageRow<AlphaFloat>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width) void LoadImageRow<AlphaFloat>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width, sw::Format internalFormat)
{ {
const float *sourceF = reinterpret_cast<const float*>(source); const float *sourceF = reinterpret_cast<const float*>(source);
float *destF = reinterpret_cast<float*>(dest + (xoffset * 16)); float *destF = reinterpret_cast<float*>(dest + (xoffset * 16));
...@@ -78,7 +78,7 @@ namespace ...@@ -78,7 +78,7 @@ namespace
} }
template<> template<>
void LoadImageRow<AlphaHalfFloat>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width) void LoadImageRow<AlphaHalfFloat>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width, sw::Format internalFormat)
{ {
const unsigned short *sourceH = reinterpret_cast<const unsigned short*>(source); const unsigned short *sourceH = reinterpret_cast<const unsigned short*>(source);
unsigned short *destH = reinterpret_cast<unsigned short*>(dest + xoffset * 8); unsigned short *destH = reinterpret_cast<unsigned short*>(dest + xoffset * 8);
...@@ -93,13 +93,13 @@ namespace ...@@ -93,13 +93,13 @@ namespace
} }
template<> template<>
void LoadImageRow<Luminance>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width) void LoadImageRow<Luminance>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width, sw::Format internalFormat)
{ {
memcpy(dest + xoffset, source, width); memcpy(dest + xoffset, source, width);
} }
template<> template<>
void LoadImageRow<LuminanceFloat>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width) void LoadImageRow<LuminanceFloat>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width, sw::Format internalFormat)
{ {
const float *sourceF = reinterpret_cast<const float*>(source); const float *sourceF = reinterpret_cast<const float*>(source);
float *destF = reinterpret_cast<float*>(dest + xoffset * 16); float *destF = reinterpret_cast<float*>(dest + xoffset * 16);
...@@ -114,7 +114,7 @@ namespace ...@@ -114,7 +114,7 @@ namespace
} }
template<> template<>
void LoadImageRow<LuminanceHalfFloat>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width) void LoadImageRow<LuminanceHalfFloat>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width, sw::Format internalFormat)
{ {
const unsigned short *sourceH = reinterpret_cast<const unsigned short*>(source); const unsigned short *sourceH = reinterpret_cast<const unsigned short*>(source);
unsigned short *destH = reinterpret_cast<unsigned short*>(dest + xoffset * 8); unsigned short *destH = reinterpret_cast<unsigned short*>(dest + xoffset * 8);
...@@ -129,13 +129,13 @@ namespace ...@@ -129,13 +129,13 @@ namespace
} }
template<> template<>
void LoadImageRow<LuminanceAlpha>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width) void LoadImageRow<LuminanceAlpha>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width, sw::Format internalFormat)
{ {
memcpy(dest + xoffset * 2, source, width * 2); memcpy(dest + xoffset * 2, source, width * 2);
} }
template<> template<>
void LoadImageRow<LuminanceAlphaFloat>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width) void LoadImageRow<LuminanceAlphaFloat>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width, sw::Format internalFormat)
{ {
const float *sourceF = reinterpret_cast<const float*>(source); const float *sourceF = reinterpret_cast<const float*>(source);
float *destF = reinterpret_cast<float*>(dest + xoffset * 16); float *destF = reinterpret_cast<float*>(dest + xoffset * 16);
...@@ -150,7 +150,7 @@ namespace ...@@ -150,7 +150,7 @@ namespace
} }
template<> template<>
void LoadImageRow<LuminanceAlphaHalfFloat>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width) void LoadImageRow<LuminanceAlphaHalfFloat>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width, sw::Format internalFormat)
{ {
const unsigned short *sourceH = reinterpret_cast<const unsigned short*>(source); const unsigned short *sourceH = reinterpret_cast<const unsigned short*>(source);
unsigned short *destH = reinterpret_cast<unsigned short*>(dest + xoffset * 8); unsigned short *destH = reinterpret_cast<unsigned short*>(dest + xoffset * 8);
...@@ -165,7 +165,7 @@ namespace ...@@ -165,7 +165,7 @@ namespace
} }
template<> template<>
void LoadImageRow<UByteRGB>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width) void LoadImageRow<UByteRGB>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width, sw::Format internalFormat)
{ {
unsigned char *destB = dest + xoffset * 4; unsigned char *destB = dest + xoffset * 4;
...@@ -179,7 +179,7 @@ namespace ...@@ -179,7 +179,7 @@ namespace
} }
template<> template<>
void LoadImageRow<RGB565>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width) void LoadImageRow<RGB565>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width, sw::Format internalFormat)
{ {
const unsigned short *source565 = reinterpret_cast<const unsigned short*>(source); const unsigned short *source565 = reinterpret_cast<const unsigned short*>(source);
unsigned char *dest565 = dest + xoffset * 4; unsigned char *dest565 = dest + xoffset * 4;
...@@ -195,7 +195,7 @@ namespace ...@@ -195,7 +195,7 @@ namespace
} }
template<> template<>
void LoadImageRow<FloatRGB>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width) void LoadImageRow<FloatRGB>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width, sw::Format internalFormat)
{ {
const float *sourceF = reinterpret_cast<const float*>(source); const float *sourceF = reinterpret_cast<const float*>(source);
float *destF = reinterpret_cast<float*>(dest + xoffset * 16); float *destF = reinterpret_cast<float*>(dest + xoffset * 16);
...@@ -210,7 +210,7 @@ namespace ...@@ -210,7 +210,7 @@ namespace
} }
template<> template<>
void LoadImageRow<HalfFloatRGB>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width) void LoadImageRow<HalfFloatRGB>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width, sw::Format internalFormat)
{ {
const unsigned short *sourceH = reinterpret_cast<const unsigned short*>(source); const unsigned short *sourceH = reinterpret_cast<const unsigned short*>(source);
unsigned short *destH = reinterpret_cast<unsigned short*>(dest + xoffset * 8); unsigned short *destH = reinterpret_cast<unsigned short*>(dest + xoffset * 8);
...@@ -225,13 +225,13 @@ namespace ...@@ -225,13 +225,13 @@ namespace
} }
template<> template<>
void LoadImageRow<UByte4>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width) void LoadImageRow<UByte4>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width, sw::Format internalFormat)
{ {
memcpy(dest + xoffset * 4, source, width * 4); memcpy(dest + xoffset * 4, source, width * 4);
} }
template<> template<>
void LoadImageRow<RGBA4444>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width) void LoadImageRow<RGBA4444>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width, sw::Format internalFormat)
{ {
const unsigned short *source4444 = reinterpret_cast<const unsigned short*>(source); const unsigned short *source4444 = reinterpret_cast<const unsigned short*>(source);
unsigned char *dest4444 = dest + xoffset * 4; unsigned char *dest4444 = dest + xoffset * 4;
...@@ -247,7 +247,7 @@ namespace ...@@ -247,7 +247,7 @@ namespace
} }
template<> template<>
void LoadImageRow<RGBA5551>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width) void LoadImageRow<RGBA5551>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width, sw::Format internalFormat)
{ {
const unsigned short *source5551 = reinterpret_cast<const unsigned short*>(source); const unsigned short *source5551 = reinterpret_cast<const unsigned short*>(source);
unsigned char *dest5551 = dest + xoffset * 4; unsigned char *dest5551 = dest + xoffset * 4;
...@@ -263,19 +263,19 @@ namespace ...@@ -263,19 +263,19 @@ namespace
} }
template<> template<>
void LoadImageRow<Float4>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width) void LoadImageRow<Float4>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width, sw::Format internalFormat)
{ {
memcpy(dest + xoffset * 16, source, width * 16); memcpy(dest + xoffset * 16, source, width * 16);
} }
template<> template<>
void LoadImageRow<HalfFloat4>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width) void LoadImageRow<HalfFloat4>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width, sw::Format internalFormat)
{ {
memcpy(dest + xoffset * 8, source, width * 8); memcpy(dest + xoffset * 8, source, width * 8);
} }
template<> template<>
void LoadImageRow<D16>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width) void LoadImageRow<D16>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width, sw::Format internalFormat)
{ {
const unsigned short *sourceD16 = reinterpret_cast<const unsigned short*>(source); const unsigned short *sourceD16 = reinterpret_cast<const unsigned short*>(source);
float *destF = reinterpret_cast<float*>(dest + xoffset * 4); float *destF = reinterpret_cast<float*>(dest + xoffset * 4);
...@@ -287,7 +287,7 @@ namespace ...@@ -287,7 +287,7 @@ namespace
} }
template<> template<>
void LoadImageRow<D24>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width) void LoadImageRow<D24>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width, sw::Format internalFormat)
{ {
const unsigned int *sourceD24 = reinterpret_cast<const unsigned int*>(source); const unsigned int *sourceD24 = reinterpret_cast<const unsigned int*>(source);
float *destF = reinterpret_cast<float*>(dest + xoffset * 4); float *destF = reinterpret_cast<float*>(dest + xoffset * 4);
...@@ -299,7 +299,7 @@ namespace ...@@ -299,7 +299,7 @@ namespace
} }
template<> template<>
void LoadImageRow<D32>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width) void LoadImageRow<D32>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width, sw::Format internalFormat)
{ {
const unsigned int *sourceD32 = reinterpret_cast<const unsigned int*>(source); const unsigned int *sourceD32 = reinterpret_cast<const unsigned int*>(source);
float *destF = reinterpret_cast<float*>(dest + xoffset * 4); float *destF = reinterpret_cast<float*>(dest + xoffset * 4);
...@@ -311,7 +311,7 @@ namespace ...@@ -311,7 +311,7 @@ namespace
} }
template<> template<>
void LoadImageRow<S8>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width) void LoadImageRow<S8>(const unsigned char *source, unsigned char *dest, GLint xoffset, GLsizei width, sw::Format internalFormat)
{ {
const unsigned int *sourceI = reinterpret_cast<const unsigned int*>(source); const unsigned int *sourceI = reinterpret_cast<const unsigned int*>(source);
unsigned char *destI = dest + xoffset; unsigned char *destI = dest + xoffset;
...@@ -323,7 +323,7 @@ namespace ...@@ -323,7 +323,7 @@ namespace
} }
template<DataType dataType> template<DataType dataType>
void LoadImageData(GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, int inputPitch, int inputHeight, int destPitch, GLsizei destHeight, const void *input, void *buffer) void LoadImageData(GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, int inputPitch, int inputHeight, int destPitch, GLsizei destHeight, const void *input, void *buffer, sw::Format internalFormat)
{ {
for(int z = 0; z < depth; ++z) for(int z = 0; z < depth; ++z)
{ {
...@@ -334,7 +334,7 @@ namespace ...@@ -334,7 +334,7 @@ namespace
const unsigned char *source = inputStart + y * inputPitch; const unsigned char *source = inputStart + y * inputPitch;
unsigned char *dest = destStart + (y + yoffset) * destPitch; unsigned char *dest = destStart + (y + yoffset) * destPitch;
LoadImageRow<dataType>(source, dest, xoffset, width); LoadImageRow<dataType>(source, dest, xoffset, width, internalFormat);
} }
} }
} }
...@@ -584,20 +584,20 @@ namespace egl ...@@ -584,20 +584,20 @@ namespace egl
switch(format) switch(format)
{ {
case GL_ALPHA: case GL_ALPHA:
LoadImageData<Alpha>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer); LoadImageData<Alpha>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer, internalFormat);
break; break;
case GL_LUMINANCE: case GL_LUMINANCE:
LoadImageData<Luminance>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer); LoadImageData<Luminance>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer, internalFormat);
break; break;
case GL_LUMINANCE_ALPHA: case GL_LUMINANCE_ALPHA:
LoadImageData<LuminanceAlpha>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer); LoadImageData<LuminanceAlpha>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer, internalFormat);
break; break;
case GL_RGB: case GL_RGB:
LoadImageData<UByteRGB>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer); LoadImageData<UByteRGB>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer, internalFormat);
break; break;
case GL_RGBA: case GL_RGBA:
case GL_BGRA_EXT: case GL_BGRA_EXT:
LoadImageData<UByte4>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer); LoadImageData<UByte4>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer, internalFormat);
break; break;
default: UNREACHABLE(); default: UNREACHABLE();
} }
...@@ -606,7 +606,7 @@ namespace egl ...@@ -606,7 +606,7 @@ namespace egl
switch(format) switch(format)
{ {
case GL_RGB: case GL_RGB:
LoadImageData<RGB565>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer); LoadImageData<RGB565>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer, internalFormat);
break; break;
default: UNREACHABLE(); default: UNREACHABLE();
} }
...@@ -615,7 +615,7 @@ namespace egl ...@@ -615,7 +615,7 @@ namespace egl
switch(format) switch(format)
{ {
case GL_RGBA: case GL_RGBA:
LoadImageData<RGBA4444>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer); LoadImageData<RGBA4444>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer, internalFormat);
break; break;
default: UNREACHABLE(); default: UNREACHABLE();
} }
...@@ -624,7 +624,7 @@ namespace egl ...@@ -624,7 +624,7 @@ namespace egl
switch(format) switch(format)
{ {
case GL_RGBA: case GL_RGBA:
LoadImageData<RGBA5551>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer); LoadImageData<RGBA5551>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer, internalFormat);
break; break;
default: UNREACHABLE(); default: UNREACHABLE();
} }
...@@ -634,19 +634,19 @@ namespace egl ...@@ -634,19 +634,19 @@ namespace egl
{ {
// float textures are converted to RGBA, not BGRA // float textures are converted to RGBA, not BGRA
case GL_ALPHA: case GL_ALPHA:
LoadImageData<AlphaFloat>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer); LoadImageData<AlphaFloat>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer, internalFormat);
break; break;
case GL_LUMINANCE: case GL_LUMINANCE:
LoadImageData<LuminanceFloat>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer); LoadImageData<LuminanceFloat>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer, internalFormat);
break; break;
case GL_LUMINANCE_ALPHA: case GL_LUMINANCE_ALPHA:
LoadImageData<LuminanceAlphaFloat>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer); LoadImageData<LuminanceAlphaFloat>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer, internalFormat);
break; break;
case GL_RGB: case GL_RGB:
LoadImageData<FloatRGB>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer); LoadImageData<FloatRGB>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer, internalFormat);
break; break;
case GL_RGBA: case GL_RGBA:
LoadImageData<Float4>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer); LoadImageData<Float4>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer, internalFormat);
break; break;
default: UNREACHABLE(); default: UNREACHABLE();
} }
...@@ -656,28 +656,28 @@ namespace egl ...@@ -656,28 +656,28 @@ namespace egl
switch(format) switch(format)
{ {
case GL_ALPHA: case GL_ALPHA:
LoadImageData<AlphaHalfFloat>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer); LoadImageData<AlphaHalfFloat>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer, internalFormat);
break; break;
case GL_LUMINANCE: case GL_LUMINANCE:
LoadImageData<LuminanceHalfFloat>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer); LoadImageData<LuminanceHalfFloat>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer, internalFormat);
break; break;
case GL_LUMINANCE_ALPHA: case GL_LUMINANCE_ALPHA:
LoadImageData<LuminanceAlphaHalfFloat>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer); LoadImageData<LuminanceAlphaHalfFloat>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer, internalFormat);
break; break;
case GL_RGB: case GL_RGB:
LoadImageData<HalfFloatRGB>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer); LoadImageData<HalfFloatRGB>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer, internalFormat);
break; break;
case GL_RGBA: case GL_RGBA:
LoadImageData<HalfFloat4>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer); LoadImageData<HalfFloat4>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer, internalFormat);
break; break;
default: UNREACHABLE(); default: UNREACHABLE();
} }
break; break;
case GL_UNSIGNED_SHORT: case GL_UNSIGNED_SHORT:
LoadImageData<D16>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer); LoadImageData<D16>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer, internalFormat);
break; break;
case GL_UNSIGNED_INT: case GL_UNSIGNED_INT:
LoadImageData<D32>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer); LoadImageData<D32>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer, internalFormat);
break; break;
case GL_UNSIGNED_INT_24_8_OES: case GL_UNSIGNED_INT_24_8_OES:
loadD24S8ImageData(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, input, buffer); loadD24S8ImageData(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, input, buffer);
...@@ -691,13 +691,13 @@ namespace egl ...@@ -691,13 +691,13 @@ namespace egl
void Image::loadD24S8ImageData(GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, int inputPitch, int inputHeight, const void *input, void *buffer) void Image::loadD24S8ImageData(GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, int inputPitch, int inputHeight, const void *input, void *buffer)
{ {
LoadImageData<D24>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer); LoadImageData<D24>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getPitch(), getHeight(), input, buffer, internalFormat);
unsigned char *stencil = reinterpret_cast<unsigned char*>(lockStencil(0, sw::PUBLIC)); unsigned char *stencil = reinterpret_cast<unsigned char*>(lockStencil(0, sw::PUBLIC));
if(stencil) if(stencil)
{ {
LoadImageData<S8>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getStencilPitchB(), getHeight(), input, stencil); LoadImageData<S8>(xoffset, yoffset, zoffset, width, height, depth, inputPitch, inputHeight, getStencilPitchB(), getHeight(), input, stencil, internalFormat);
unlockStencil(); unlockStencil();
} }
......
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