00001 00002 // SPARK particle engine // 00003 // Copyright (C) 2008-2009 - Julien Fryer - julienfryer@gmail.com // 00004 // // 00005 // This software is provided 'as-is', without any express or implied // 00006 // warranty. In no event will the authors be held liable for any damages // 00007 // arising from the use of this software. // 00008 // // 00009 // Permission is granted to anyone to use this software for any purpose, // 00010 // including commercial applications, and to alter it and redistribute it // 00011 // freely, subject to the following restrictions: // 00012 // // 00013 // 1. The origin of this software must not be misrepresented; you must not // 00014 // claim that you wrote the original software. If you use this software // 00015 // in a product, an acknowledgment in the product documentation would be // 00016 // appreciated but is not required. // 00017 // 2. Altered source versions must be plainly marked as such, and must not be // 00018 // misrepresented as being the original software. // 00019 // 3. This notice may not be removed or altered from any source distribution. // 00021 00022 00023 #ifndef H_SPK_BUFFERHANDLER 00024 #define H_SPK_BUFFERHANDLER 00025 00026 #include "Core/SPK_DEF.h" 00027 00028 00029 namespace SPK 00030 { 00031 class Group; 00032 00038 class SPK_PREFIX BufferHandler 00039 { 00040 public : 00041 00043 // Destructor // 00045 00047 virtual ~BufferHandler() {} 00048 00050 // Setters // 00052 00060 static void enableBuffersCreation(bool creation); 00061 00063 // Getters // 00065 00070 static bool isBuffersCreationEnabled(); 00071 00073 // Interface // 00075 00086 virtual void createBuffers(const Group& group) {}; 00087 00097 virtual void destroyBuffers(const Group& group) {}; 00098 00099 00100 protected : 00101 00102 // The constructor is private so that the class is not instanciable 00103 BufferHandler() {} 00104 00121 bool prepareBuffers(const Group& group); 00122 00132 virtual bool checkBuffers(const Group& group); 00133 00134 private : 00135 00136 static bool bufferCreation; 00137 }; 00138 00139 00140 inline bool BufferHandler::checkBuffers(const Group& group) 00141 { 00142 return true; 00143 } 00144 } 00145 00146 #endif