mirror of https://github.com/AxioDL/boo.git
early return case for setClampMode
This commit is contained in:
parent
b6d40fde97
commit
54676aff91
|
@ -73,6 +73,7 @@ enum class TextureFormat
|
|||
/** Supported texture clamp modes */
|
||||
enum class TextureClampMode
|
||||
{
|
||||
Invalid = -1,
|
||||
Repeat,
|
||||
ClampToWhite,
|
||||
ClampToBlack,
|
||||
|
|
|
@ -295,6 +295,8 @@ static void SetClampMode(GLenum target, TextureClampMode clampMode)
|
|||
glTexParameteri(target, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -302,6 +304,7 @@ class GLTextureS : public GraphicsDataNode<ITextureS>
|
|||
{
|
||||
friend class GLDataFactory;
|
||||
GLuint m_tex;
|
||||
TextureClampMode m_clampMode = TextureClampMode::Invalid;
|
||||
GLTextureS(const ObjToken<BaseGraphicsData>& parent, size_t width, size_t height, size_t mips,
|
||||
TextureFormat fmt, TextureClampMode clampMode, GLint aniso, const void* data, size_t sz)
|
||||
: GraphicsDataNode<ITextureS>(parent)
|
||||
|
@ -383,6 +386,9 @@ public:
|
|||
|
||||
void setClampMode(TextureClampMode mode)
|
||||
{
|
||||
if (m_clampMode == mode)
|
||||
return;
|
||||
m_clampMode = mode;
|
||||
glBindTexture(GL_TEXTURE_2D, m_tex);
|
||||
SetClampMode(GL_TEXTURE_2D, mode);
|
||||
}
|
||||
|
@ -398,6 +404,7 @@ class GLTextureSA : public GraphicsDataNode<ITextureSA>
|
|||
{
|
||||
friend class GLDataFactory;
|
||||
GLuint m_tex;
|
||||
TextureClampMode m_clampMode = TextureClampMode::Invalid;
|
||||
GLTextureSA(const ObjToken<BaseGraphicsData>& parent, size_t width, size_t height, size_t layers, size_t mips,
|
||||
TextureFormat fmt, TextureClampMode clampMode, GLint aniso, const void* data, size_t sz)
|
||||
: GraphicsDataNode<ITextureSA>(parent)
|
||||
|
@ -458,6 +465,9 @@ public:
|
|||
|
||||
void setClampMode(TextureClampMode mode)
|
||||
{
|
||||
if (m_clampMode == mode)
|
||||
return;
|
||||
m_clampMode = mode;
|
||||
glBindTexture(GL_TEXTURE_2D_ARRAY, m_tex);
|
||||
SetClampMode(GL_TEXTURE_2D_ARRAY, mode);
|
||||
}
|
||||
|
@ -480,6 +490,7 @@ class GLTextureD : public GraphicsDataNode<ITextureD>
|
|||
size_t m_width = 0;
|
||||
size_t m_height = 0;
|
||||
int m_validMask = 0;
|
||||
TextureClampMode m_clampMode = TextureClampMode::Invalid;
|
||||
GLTextureD(const ObjToken<BaseGraphicsData>& parent, size_t width, size_t height,
|
||||
TextureFormat fmt, TextureClampMode clampMode)
|
||||
: GraphicsDataNode<ITextureD>(parent), m_width(width), m_height(height)
|
||||
|
@ -554,6 +565,9 @@ public:
|
|||
|
||||
void setClampMode(TextureClampMode mode)
|
||||
{
|
||||
if (m_clampMode == mode)
|
||||
return;
|
||||
m_clampMode = mode;
|
||||
for (int i=0 ; i<3 ; ++i)
|
||||
{
|
||||
glBindTexture(GL_TEXTURE_2D, m_texs[i]);
|
||||
|
|
|
@ -1476,13 +1476,20 @@ public:
|
|||
m_cpuBuf.destroy(m_ctx);
|
||||
}
|
||||
|
||||
void setClampMode(TextureClampMode mode)
|
||||
void _setClampMode(TextureClampMode mode)
|
||||
{
|
||||
m_clampMode = mode;
|
||||
MakeSampler(m_ctx, m_sampler, mode, m_mips);
|
||||
m_descInfo.sampler = m_sampler;
|
||||
}
|
||||
|
||||
void setClampMode(TextureClampMode mode)
|
||||
{
|
||||
if (m_clampMode == mode)
|
||||
return;
|
||||
m_clampMode = mode;
|
||||
_setClampMode(mode);
|
||||
}
|
||||
|
||||
void deleteUploadObjects()
|
||||
{
|
||||
m_cpuBuf.destroy(m_ctx);
|
||||
|
@ -1506,7 +1513,7 @@ public:
|
|||
texCreateInfo.usage = VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT;
|
||||
m_gpuTex.create(m_ctx, &texCreateInfo);
|
||||
|
||||
setClampMode(m_clampMode);
|
||||
_setClampMode(m_clampMode);
|
||||
m_descInfo.imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
|
||||
|
||||
/* create image view */
|
||||
|
@ -1585,7 +1592,7 @@ class VulkanTextureSA : public GraphicsDataNode<ITextureSA>
|
|||
TextureFormat m_fmt;
|
||||
size_t m_sz;
|
||||
size_t m_width, m_height, m_layers, m_mips;
|
||||
TextureClampMode m_clampMode;
|
||||
TextureClampMode m_clampMode = TextureClampMode::Invalid;
|
||||
VkFormat m_vkFmt;
|
||||
int m_pixelPitchNum = 1;
|
||||
int m_pixelPitchDenom = 1;
|
||||
|
@ -1639,13 +1646,20 @@ public:
|
|||
m_cpuBuf.destroy(m_ctx);
|
||||
}
|
||||
|
||||
void setClampMode(TextureClampMode mode)
|
||||
void _setClampMode(TextureClampMode mode)
|
||||
{
|
||||
m_clampMode = mode;
|
||||
MakeSampler(m_ctx, m_sampler, mode, m_mips);
|
||||
m_descInfo.sampler = m_sampler;
|
||||
}
|
||||
|
||||
void setClampMode(TextureClampMode mode)
|
||||
{
|
||||
if (m_clampMode == mode)
|
||||
return;
|
||||
m_clampMode = mode;
|
||||
_setClampMode(mode);
|
||||
}
|
||||
|
||||
void deleteUploadObjects()
|
||||
{
|
||||
m_cpuBuf.destroy(m_ctx);
|
||||
|
@ -1669,7 +1683,7 @@ public:
|
|||
texCreateInfo.usage = VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT;
|
||||
m_gpuTex.create(m_ctx, &texCreateInfo);
|
||||
|
||||
setClampMode(m_clampMode);
|
||||
_setClampMode(m_clampMode);
|
||||
m_descInfo.imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
|
||||
|
||||
/* create image view */
|
||||
|
@ -1791,6 +1805,7 @@ public:
|
|||
VkDescriptorImageInfo m_descInfo[2];
|
||||
~VulkanTextureD();
|
||||
|
||||
void _setClampMode(TextureClampMode mode);
|
||||
void setClampMode(TextureClampMode mode);
|
||||
void load(const void* data, size_t sz);
|
||||
void* map(size_t sz);
|
||||
|
@ -1833,7 +1848,7 @@ public:
|
|||
texCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
|
||||
texCreateInfo.flags = 0;
|
||||
|
||||
setClampMode(m_clampMode);
|
||||
_setClampMode(m_clampMode);
|
||||
for (int i=0 ; i<2 ; ++i)
|
||||
{
|
||||
/* create gpu image */
|
||||
|
@ -3550,13 +3565,19 @@ void VulkanTextureD::update(int b)
|
|||
m_validSlots |= slot;
|
||||
}
|
||||
}
|
||||
void VulkanTextureD::setClampMode(TextureClampMode mode)
|
||||
void VulkanTextureD::_setClampMode(TextureClampMode mode)
|
||||
{
|
||||
m_clampMode = mode;
|
||||
MakeSampler(m_q->m_ctx, m_sampler, mode, 1);
|
||||
for (int i=0 ; i<2 ; ++i)
|
||||
m_descInfo[i].sampler = m_sampler;
|
||||
}
|
||||
void VulkanTextureD::setClampMode(TextureClampMode mode)
|
||||
{
|
||||
if (m_clampMode == mode)
|
||||
return;
|
||||
m_clampMode = mode;
|
||||
_setClampMode(mode);
|
||||
}
|
||||
void VulkanTextureD::load(const void* data, size_t sz)
|
||||
{
|
||||
size_t bufSz = std::min(sz, m_cpuSz);
|
||||
|
|
Loading…
Reference in New Issue