summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineOpenGL
diff options
context:
space:
mode:
authorassiduous <assiduous@diligentgraphics.com>2020-04-09 04:18:30 +0000
committerassiduous <assiduous@diligentgraphics.com>2020-04-09 04:18:30 +0000
commit3de54383619299c592bd4ab0e85d48ae8c9bd95f (patch)
treef541125dff7a2bd050596124505060dc63db361e /Graphics/GraphicsEngineOpenGL
parentUpdated ITextureUploader to allow synchronous execution (diff)
downloadDiligentCore-3de54383619299c592bd4ab0e85d48ae8c9bd95f.tar.gz
DiligentCore-3de54383619299c592bd4ab0e85d48ae8c9bd95f.zip
Added Texture uploader test plus fixed a bunch of issues
Diffstat (limited to 'Graphics/GraphicsEngineOpenGL')
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/DeviceContextGLImpl.cpp2
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/TextureBaseGL.cpp7
2 files changed, 6 insertions, 3 deletions
diff --git a/Graphics/GraphicsEngineOpenGL/src/DeviceContextGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/DeviceContextGLImpl.cpp
index 02ab028c..c64c41cd 100644
--- a/Graphics/GraphicsEngineOpenGL/src/DeviceContextGLImpl.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/DeviceContextGLImpl.cpp
@@ -1265,6 +1265,8 @@ void DeviceContextGLImpl::CopyTexture(const CopyTextureAttribs& CopyAttribs)
SrcTexViewDesc.ViewType = TEXTURE_VIEW_RENDER_TARGET;
SrcTexViewDesc.MostDetailedMip = CopyAttribs.SrcMipLevel;
SrcTexViewDesc.FirstArraySlice = CopyAttribs.SrcSlice;
+ SrcTexViewDesc.NumArraySlices = 1;
+ SrcTexViewDesc.NumMipLevels = 1;
TextureViewGLImpl SrcTexView //
{
nullptr, // pRefCounters
diff --git a/Graphics/GraphicsEngineOpenGL/src/TextureBaseGL.cpp b/Graphics/GraphicsEngineOpenGL/src/TextureBaseGL.cpp
index e5914960..06c6a07c 100644
--- a/Graphics/GraphicsEngineOpenGL/src/TextureBaseGL.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/TextureBaseGL.cpp
@@ -35,6 +35,7 @@
#include "DeviceContextGLImpl.hpp"
#include "EngineMemory.h"
#include "GraphicsAccessories.hpp"
+#include "Align.hpp"
namespace Diligent
{
@@ -51,7 +52,7 @@ Uint32 TextureBaseGL::GetPBODataOffset(const TextureDesc& TexDesc, Uint32 ArrayS
for (Uint32 mip = 0; mip < TexDesc.MipLevels; ++mip)
{
auto MipInfo = GetMipLevelProperties(TexDesc, mip);
- ArraySliceSize += (MipInfo.MipSize + 3) & (~3);
+ ArraySliceSize += Align(MipInfo.MipSize, Uint32{4});
}
Offset = ArraySliceSize;
@@ -59,13 +60,13 @@ Uint32 TextureBaseGL::GetPBODataOffset(const TextureDesc& TexDesc, Uint32 ArrayS
TexDesc.Type == RESOURCE_DIM_TEX_2D_ARRAY ||
TexDesc.Type == RESOURCE_DIM_TEX_CUBE ||
TexDesc.Type == RESOURCE_DIM_TEX_CUBE_ARRAY)
- Offset *= TexDesc.ArraySize;
+ Offset *= ArraySlice;
}
for (Uint32 mip = 0; mip < MipLevel; ++mip)
{
auto MipInfo = GetMipLevelProperties(TexDesc, mip);
- Offset += (MipInfo.MipSize + 3) & (~3);
+ Offset += Align(MipInfo.MipSize, Uint32{4});
}
return Offset;