Support all the crazy different pixel store unpack parameters

* If the pixel store parameters are relatively simple we go through a
  fast path that's about the same as it was before, otherwise we manually
  unpack to a tightly packed buffer for serialising. Hopefully this should
  rarely happen.
* glPixelStore parameters are only serialised when capturing a frame, and
  the pixel store parameters at frame start form part of the initial state
  vector.
This commit is contained in:
baldurk committed 2014-12-27 01:07:03 +00:00
1 parent f73a7a4a0c
commit efdffaef6e
9 files changed
+479 -120

No files matched your search

+2 -2
View File
@@ -758,7 +758,7 @@ bool GLResourceManager::Serialise_InitialState(GLResource res)
GLenum fmt = GetBaseFormat(details.internalFormat);
GLenum type = GetDataType(details.internalFormat);
size_t size = GetByteSize(details.width, details.height, details.depth, fmt, type, 0);
size_t size = GetByteSize(details.width, details.height, details.depth, fmt, type);
byte *buf = new byte[size];
@@ -780,7 +780,7 @@ bool GLResourceManager::Serialise_InitialState(GLResource res)
t == eGL_TEXTURE_2D_ARRAY)
d = details.depth;
size = GetByteSize(w, h, d, fmt, type, 0);
size = GetByteSize(w, h, d, fmt, type);
GLenum targets[] = {
eGL_TEXTURE_CUBE_MAP_POSITIVE_X,