// Filename: bufferContextChain.h // Created by: drose (16Mar06) // //////////////////////////////////////////////////////////////////// // // PANDA 3D SOFTWARE // Copyright (c) Carnegie Mellon University. All rights reserved. // // All use of this software is subject to the terms of the revised BSD // license. You should have received a copy of this license along // with this source code in a file named "LICENSE." // //////////////////////////////////////////////////////////////////// #ifndef BUFFERCONTEXTCHAIN_H #define BUFFERCONTEXTCHAIN_H #include "pandabase.h" #include "linkedListNode.h" class BufferContext; //////////////////////////////////////////////////////////////////// // Class : BufferContextChain // Description : This class maintains a linked list of BufferContexts // that might be allocated on the graphics card in some // context. There is a different BufferContextChain for // resident textures, active textures, evicted textures, // etc. // // The primary purpose of this class is to facilitate // PStats reporting of graphics memory usage. //////////////////////////////////////////////////////////////////// class EXPCL_PANDA_GOBJ BufferContextChain : private LinkedListNode { public: INLINE BufferContextChain(); INLINE ~BufferContextChain(); INLINE size_t get_total_size() const; INLINE int get_count() const; BufferContext *get_first(); void take_from(BufferContextChain &other); void write(ostream &out, int indent_level) const; private: INLINE void adjust_bytes(int delta); size_t _total_size; int _count; friend class BufferContext; }; #include "bufferContextChain.I" #endif