set border color not depending on the wrap mode
only enable color mask for the first framebuffer id independent blending is disabled
This commit is contained in:
parent
6a2aa6dbdb
commit
1d60bb6544
@ -777,15 +777,13 @@ void RasterizerOpenGL::SamplerInfo::SyncWithConfig(const Tegra::Texture::FullTex
|
|||||||
MaxwellToGL::DepthCompareFunc(depth_compare_func));
|
MaxwellToGL::DepthCompareFunc(depth_compare_func));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wrap_u == Tegra::Texture::WrapMode::Border || wrap_v == Tegra::Texture::WrapMode::Border ||
|
const GLvec4 new_border_color = {{config.border_color_r, config.border_color_g,
|
||||||
wrap_p == Tegra::Texture::WrapMode::Border) {
|
config.border_color_b, config.border_color_a}};
|
||||||
const GLvec4 new_border_color = {{config.border_color_r, config.border_color_g,
|
if (border_color != new_border_color) {
|
||||||
config.border_color_b, config.border_color_a}};
|
border_color = new_border_color;
|
||||||
if (border_color != new_border_color) {
|
glSamplerParameterfv(s, GL_TEXTURE_BORDER_COLOR, border_color.data());
|
||||||
border_color = new_border_color;
|
|
||||||
glSamplerParameterfv(s, GL_TEXTURE_BORDER_COLOR, border_color.data());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (info.tic.use_header_opt_control == 0) {
|
if (info.tic.use_header_opt_control == 0) {
|
||||||
if (GLAD_GL_ARB_texture_filter_anisotropic) {
|
if (GLAD_GL_ARB_texture_filter_anisotropic) {
|
||||||
glSamplerParameterf(s, GL_TEXTURE_MAX_ANISOTROPY,
|
glSamplerParameterf(s, GL_TEXTURE_MAX_ANISOTROPY,
|
||||||
@ -1022,7 +1020,9 @@ void RasterizerOpenGL::SyncStencilTestState() {
|
|||||||
|
|
||||||
void RasterizerOpenGL::SyncColorMask() {
|
void RasterizerOpenGL::SyncColorMask() {
|
||||||
const auto& regs = Core::System::GetInstance().GPU().Maxwell3D().regs;
|
const auto& regs = Core::System::GetInstance().GPU().Maxwell3D().regs;
|
||||||
for (size_t i = 0; i < Tegra::Engines::Maxwell3D::Regs::NumRenderTargets; i++) {
|
size_t count =
|
||||||
|
regs.independent_blend_enable ? Tegra::Engines::Maxwell3D::Regs::NumRenderTargets : 1;
|
||||||
|
for (size_t i = 0; i < count; i++) {
|
||||||
const auto& source = regs.color_mask[regs.color_mask_common ? 0 : i];
|
const auto& source = regs.color_mask[regs.color_mask_common ? 0 : i];
|
||||||
auto& dest = state.color_mask[i];
|
auto& dest = state.color_mask[i];
|
||||||
dest.red_enabled = (source.R == 0) ? GL_FALSE : GL_TRUE;
|
dest.red_enabled = (source.R == 0) ? GL_FALSE : GL_TRUE;
|
||||||
|
Loading…
Reference in New Issue
Block a user