fix TransparencyAttrib::M_multisample

This commit is contained in:
David Rose 2005-01-28 23:01:27 +00:00
parent b248ae9f04
commit 517acbaccb
2 changed files with 9 additions and 8 deletions

View File

@ -117,20 +117,20 @@ enable_multisample_antialias(bool val) {
INLINE void CLP(GraphicsStateGuardian)::
enable_multisample_alpha_one(bool val) {
if (_supports_multisample) {
if ((_multisample_mode & MM_antialias) != 0 && !val) {
if ((_multisample_mode & MM_alpha_one) != 0 && !val) {
// Turn off sample_alpha_to_one multisample.
_multisample_mode &= ~MM_antialias;
_multisample_mode &= ~MM_alpha_one;
GLP(Disable)(GL_SAMPLE_ALPHA_TO_ONE);
if (_multisample_mode == 0) {
GLP(Disable)(GL_MULTISAMPLE);
}
} else if ((_multisample_mode & MM_antialias) == 0 && val) {
} else if ((_multisample_mode & MM_alpha_one) == 0 && val) {
// Turn on sample_alpha_to_one multisample.
if (_multisample_mode == 0) {
GLP(Enable)(GL_MULTISAMPLE);
}
GLP(Enable)(GL_SAMPLE_ALPHA_TO_ONE);
_multisample_mode |= MM_antialias;
_multisample_mode |= MM_alpha_one;
}
}
}
@ -145,20 +145,20 @@ enable_multisample_alpha_one(bool val) {
INLINE void CLP(GraphicsStateGuardian)::
enable_multisample_alpha_mask(bool val) {
if (_supports_multisample) {
if ((_multisample_mode & MM_antialias) != 0 && !val) {
if ((_multisample_mode & MM_alpha_mask) != 0 && !val) {
// Turn off sample_alpha_to_mask multisample.
_multisample_mode &= ~MM_antialias;
_multisample_mode &= ~MM_alpha_mask;
GLP(Disable)(GL_SAMPLE_ALPHA_TO_COVERAGE);
if (_multisample_mode == 0) {
GLP(Disable)(GL_MULTISAMPLE);
}
} else if ((_multisample_mode & MM_antialias) == 0 && val) {
} else if ((_multisample_mode & MM_alpha_mask) == 0 && val) {
// Turn on sample_alpha_to_mask multisample.
if (_multisample_mode == 0) {
GLP(Enable)(GL_MULTISAMPLE);
}
GLP(Enable)(GL_SAMPLE_ALPHA_TO_COVERAGE);
_multisample_mode |= MM_antialias;
_multisample_mode |= MM_alpha_mask;
}
}
}

View File

@ -4482,6 +4482,7 @@ set_blend_mode() {
return;
case TransparencyAttrib::M_multisample:
// We need to enable *both* of these in M_multisample case.
enable_multisample_alpha_one(true);
enable_multisample_alpha_mask(true);
enable_blend(false);