mirror of
https://github.com/blawar/GLideN64.git
synced 2024-07-07 03:13:49 +00:00
Correct depth buffer removal:
if depth buffer removed, clear pointers on it for all frame buffers.
This commit is contained in:
parent
fbbbe147c6
commit
c504b9b216
|
@ -282,6 +282,7 @@ void DepthBufferList::removeBuffer(u32 _address )
|
||||||
{
|
{
|
||||||
for (DepthBuffers::iterator iter = m_list.begin(); iter != m_list.end(); ++iter)
|
for (DepthBuffers::iterator iter = m_list.begin(); iter != m_list.end(); ++iter)
|
||||||
if (iter->m_address == _address) {
|
if (iter->m_address == _address) {
|
||||||
|
frameBufferList().clearDepthBuffer(&(*iter));
|
||||||
m_list.erase(iter);
|
m_list.erase(iter);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -716,6 +716,15 @@ void FrameBufferList::attachDepthBuffer()
|
||||||
assert(checkFBO());
|
assert(checkFBO());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FrameBufferList::clearDepthBuffer(DepthBuffer * _pDepthBuffer)
|
||||||
|
{
|
||||||
|
for (FrameBuffers::iterator iter = m_list.begin(); iter != m_list.end(); ++iter) {
|
||||||
|
if (iter->m_pDepthBuffer == _pDepthBuffer) {
|
||||||
|
iter->m_pDepthBuffer = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void FrameBuffer_Init()
|
void FrameBuffer_Init()
|
||||||
{
|
{
|
||||||
frameBufferList().init();
|
frameBufferList().init();
|
||||||
|
|
|
@ -66,6 +66,7 @@ public:
|
||||||
void removeBuffer(u32 _address);
|
void removeBuffer(u32 _address);
|
||||||
void removeBuffers(u32 _width);
|
void removeBuffers(u32 _width);
|
||||||
void attachDepthBuffer();
|
void attachDepthBuffer();
|
||||||
|
void clearDepthBuffer(DepthBuffer * _pDepthBuffer);
|
||||||
FrameBuffer * findBuffer(u32 _startAddress);
|
FrameBuffer * findBuffer(u32 _startAddress);
|
||||||
FrameBuffer * findTmpBuffer(u32 _address);
|
FrameBuffer * findTmpBuffer(u32 _address);
|
||||||
FrameBuffer * getCurrent() const {return m_pCurrent;}
|
FrameBuffer * getCurrent() const {return m_pCurrent;}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user