forked from 0ad/0ad
Replaces border color of sampler by enum.
This was SVN commit r27134.
This commit is contained in:
parent
ecab4595c3
commit
178850cb23
@ -39,7 +39,7 @@ Desc MakeDefaultSampler(Filter filter, AddressMode addressMode)
|
||||
desc.addressModeW = addressMode;
|
||||
desc.anisotropyEnabled = false;
|
||||
desc.mipLODBias = 0.0f;
|
||||
desc.borderColor = CColor(0.0f, 0.0f, 0.0f, 0.0f);
|
||||
desc.borderColor = BorderColor::TRANSPARENT_BLACK;
|
||||
desc.compareEnabled = false;
|
||||
return desc;
|
||||
}
|
||||
|
@ -46,6 +46,13 @@ enum class AddressMode
|
||||
CLAMP_TO_BORDER,
|
||||
};
|
||||
|
||||
enum class BorderColor
|
||||
{
|
||||
TRANSPARENT_BLACK,
|
||||
OPAQUE_BLACK,
|
||||
OPAQUE_WHITE
|
||||
};
|
||||
|
||||
struct Desc
|
||||
{
|
||||
Filter magFilter;
|
||||
@ -58,7 +65,7 @@ struct Desc
|
||||
bool anisotropyEnabled;
|
||||
float maxAnisotropy;
|
||||
// When some filter is CLAMP_TO_BORDER.
|
||||
CColor borderColor;
|
||||
BorderColor borderColor;
|
||||
bool compareEnabled;
|
||||
CompareOp compareOp;
|
||||
};
|
||||
|
@ -152,7 +152,19 @@ std::unique_ptr<CTexture> CTexture::Create(CDevice* device, const char* name,
|
||||
defaultSamplerDesc.addressModeV == Sampler::AddressMode::CLAMP_TO_BORDER ||
|
||||
defaultSamplerDesc.addressModeW == Sampler::AddressMode::CLAMP_TO_BORDER)
|
||||
{
|
||||
glTexParameterfv(target, GL_TEXTURE_BORDER_COLOR, defaultSamplerDesc.borderColor.AsFloatArray().data());
|
||||
CColor borderColor(0.0f, 0.0f, 0.0f, 0.0f);
|
||||
switch (defaultSamplerDesc.borderColor)
|
||||
{
|
||||
case Sampler::BorderColor::TRANSPARENT_BLACK:
|
||||
break;
|
||||
case Sampler::BorderColor::OPAQUE_BLACK:
|
||||
borderColor = CColor(0.0f, 0.0f, 0.0f, 1.0f);
|
||||
break;
|
||||
case Sampler::BorderColor::OPAQUE_WHITE:
|
||||
borderColor = CColor(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
break;
|
||||
}
|
||||
glTexParameterfv(target, GL_TEXTURE_BORDER_COLOR, borderColor.AsFloatArray().data());
|
||||
}
|
||||
|
||||
ogl_WarnIfError();
|
||||
|
Loading…
Reference in New Issue
Block a user