TINYGL: Always pass the depth test if TGL_DEPTH_TEST is disabled.
This commit is contained in:
parent
09b062acdd
commit
c420196014
3 changed files with 11 additions and 0 deletions
|
@ -60,6 +60,7 @@ void glopEnableDisable(GLContext *c, GLParam *p) {
|
|||
break;
|
||||
case TGL_DEPTH_TEST:
|
||||
c->depth_test = v;
|
||||
c->fb->enableDepthTest(v);
|
||||
break;
|
||||
case TGL_ALPHA_TEST:
|
||||
c->_alphaTestEnabled = v;
|
||||
|
|
|
@ -87,6 +87,7 @@ FrameBuffer::FrameBuffer(int width, int height, const Graphics::PixelBuffer &fra
|
|||
this->buffer.zbuf = this->zbuf;
|
||||
_blendingEnabled = false;
|
||||
_alphaTestEnabled = false;
|
||||
_depthTestEnabled = false;
|
||||
_depthFunc = TGL_LESS;
|
||||
}
|
||||
|
||||
|
@ -182,6 +183,10 @@ void FrameBuffer::enableAlphaTest(bool enable) {
|
|||
_alphaTestEnabled = enable;
|
||||
}
|
||||
|
||||
void FrameBuffer::enableDepthTest(bool enable) {
|
||||
_depthTestEnabled = enable;
|
||||
}
|
||||
|
||||
void FrameBuffer::setDepthFunc(int func) {
|
||||
_depthFunc = func;
|
||||
}
|
||||
|
|
|
@ -67,6 +67,9 @@ struct FrameBuffer {
|
|||
}
|
||||
|
||||
FORCEINLINE bool compareDepth(unsigned int &zSrc, unsigned int &zDst) {
|
||||
if (!_depthTestEnabled)
|
||||
return true;
|
||||
|
||||
switch (_depthFunc) {
|
||||
case TGL_NEVER:
|
||||
break;
|
||||
|
@ -271,6 +274,7 @@ struct FrameBuffer {
|
|||
void enableBlending(bool enable);
|
||||
void setBlendingFactors(int sfactor, int dfactor);
|
||||
void enableAlphaTest(bool enable);
|
||||
void enableDepthTest(bool enable);
|
||||
void setAlphaTestFunc(int func, float ref);
|
||||
void setDepthFunc(int func);
|
||||
void enableDepthWrite(bool enable) {
|
||||
|
@ -338,6 +342,7 @@ private:
|
|||
int _sourceBlendingFactor;
|
||||
int _destinationBlendingFactor;
|
||||
bool _alphaTestEnabled;
|
||||
bool _depthTestEnabled;
|
||||
int _alphaTestFunc;
|
||||
int _alphaTestRefVal;
|
||||
int _depthFunc;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue