mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-03-09 07:20:40 +00:00
Add OpenGL support.
This commit is contained in:
parent
c354f59b72
commit
dd08fd2e7d
55 changed files with 2957 additions and 802 deletions
53
Engine/source/gfx/gl/util/glFrameAllocatorLockableHelper.h
Normal file
53
Engine/source/gfx/gl/util/glFrameAllocatorLockableHelper.h
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
#ifndef GL_FRAMEALLOCATOR_LOCKABLE_HELPER_H
|
||||
#define GL_FRAMEALLOCATOR_LOCKABLE_HELPER_H
|
||||
|
||||
#include "core/frameAllocator.h"
|
||||
|
||||
/// Helper class for simulate lock/unlock on gfx buffers using FrameAllocator
|
||||
class FrameAllocatorLockableHelper
|
||||
{
|
||||
public:
|
||||
FrameAllocatorLockableHelper()
|
||||
: mFrameAllocatorMark(0),
|
||||
mFrameAllocatorPtr(NULL)
|
||||
#if TORQUE_DEBUG
|
||||
, mFrameAllocatorMarkGuard(0)
|
||||
#endif
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
U8* lock(const U32 size)
|
||||
{
|
||||
AssertFatal(!mFrameAllocatorMark && !mFrameAllocatorPtr, "");
|
||||
mFrameAllocatorMark = FrameAllocator::getWaterMark();
|
||||
mFrameAllocatorPtr = (U8*)FrameAllocator::alloc( size );
|
||||
#if TORQUE_DEBUG
|
||||
mFrameAllocatorMarkGuard = FrameAllocator::getWaterMark();
|
||||
#endif
|
||||
|
||||
return mFrameAllocatorPtr;
|
||||
}
|
||||
|
||||
void unlock()
|
||||
{
|
||||
#if TORQUE_DEBUG
|
||||
AssertFatal(mFrameAllocatorMarkGuard == FrameAllocator::getWaterMark(), "");
|
||||
#endif
|
||||
FrameAllocator::setWaterMark(mFrameAllocatorMark);
|
||||
mFrameAllocatorMark = 0;
|
||||
mFrameAllocatorPtr = NULL;
|
||||
}
|
||||
|
||||
U8* getlockedPtr() const { return mFrameAllocatorPtr; }
|
||||
|
||||
protected:
|
||||
U32 mFrameAllocatorMark;
|
||||
U8 *mFrameAllocatorPtr;
|
||||
|
||||
#if TORQUE_DEBUG
|
||||
U32 mFrameAllocatorMarkGuard;
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif //GL_FRAMEALLOCATOR_LOCKABLE_HELPER_H
|
||||
Loading…
Add table
Add a link
Reference in a new issue