diff options
| author | Xiaohong Bao <bao@lindenlab.com> | 2011-02-15 14:12:58 -0700 | 
|---|---|---|
| committer | Xiaohong Bao <bao@lindenlab.com> | 2011-02-15 14:12:58 -0700 | 
| commit | f13884e528c327dbbc638b72322e08b544d0f6c0 (patch) | |
| tree | 6d6405932d386b3f6b25ab9ae8347e3454758744 /indra/llrender/llvertexbuffer.h | |
| parent | b6571ee127f22316be8b9e32c771f8bfb35a0b00 (diff) | |
partial fix for SH-895/STORM-336: memory leaking. fixed vertex buffer caused leaking.
Diffstat (limited to 'indra/llrender/llvertexbuffer.h')
| -rw-r--r-- | indra/llrender/llvertexbuffer.h | 15 | 
1 files changed, 11 insertions, 4 deletions
| diff --git a/indra/llrender/llvertexbuffer.h b/indra/llrender/llvertexbuffer.h index 94fa790957..18d50c87bb 100644 --- a/indra/llrender/llvertexbuffer.h +++ b/indra/llrender/llvertexbuffer.h @@ -80,7 +80,7 @@ public:  	static BOOL	sUseStreamDraw; -	static void initClass(bool use_vbo); +	static void initClass(bool use_vbo, bool no_vbo_mapping);  	static void cleanupClass();  	static void setupClientArrays(U32 data_mask);   	static void clientCopy(F64 max_time = 0.005); //copy data from client to GL @@ -152,6 +152,11 @@ public:  	void	allocateBuffer(S32 nverts, S32 nindices, bool create);  	virtual void resizeBuffer(S32 newnverts, S32 newnindices); +	void preUpdate() ; +	void postUpdate() const ; +	void freeClientBuffer() ; +	void dirty() {mDirty = TRUE;} +  	// Only call each getVertexPointer, etc, once before calling unmapBuffer()  	// call unmapBuffer() after calls to getXXXStrider() before any cals to setBuffer()  	// example: @@ -216,6 +221,7 @@ protected:  	S32		mOffsets[TYPE_MAX];  	BOOL	mResized;		// if TRUE, client buffer has been resized and GL buffer has not  	BOOL	mDynamicSize;	// if TRUE, buffer has been resized at least once (and should be padded) +	mutable BOOL    mDirty ;  	class DirtyRegion  	{ @@ -240,13 +246,14 @@ public:  	static std::vector<U32> sDeleteList;  	typedef std::list<LLVertexBuffer*> buffer_list_t; +	static BOOL sDisableVBOMapping; //disable glMapBufferARB  	static BOOL sEnableVBOs; +	static BOOL sVBOActive; +	static BOOL sIBOActive;  	static S32 sTypeOffsets[TYPE_MAX];  	static U32 sGLMode[LLRender::NUM_MODES];  	static U32 sGLRenderBuffer; -	static U32 sGLRenderIndices; -	static BOOL sVBOActive; -	static BOOL sIBOActive; +	static U32 sGLRenderIndices;	  	static U32 sLastMask;  	static U32 sAllocatedBytes;  	static U32 sBindCount; | 
