/** @file JCConchRender.h @brief @author James @version 1.0 @date 2016_5_12 */ #ifndef __JCConchRender_H__ #define __JCConchRender_H__ #include #include #include #include #include #include #include #include "RenderEx/JCRegister.h" #include #ifdef __APPLE__ #include "IOSFreetype/JCIOSFreeType.h" #endif #include namespace laya { enum GL_CAPS { GLC_NONE = 0, GLC_TEXTURE_COMPRESSION_PVR = 1 << 1, GLC_TEXTURE_COMPRESSION_ETC1 = 1 << 2, GLC_TEXTURE_COMPRESSION_ETC2 = 1 << 3, GLC_NOPT = 1 << 4, GLC_TEXTURE_TPG = 1 << 5, GLC_INSTANCEING = 1 << 6, }; class JCFileSource; class JCConchRender : public JCIGLRender { public: JCConchRender(void* pFileResManager,JCArrayBufferManager* pArrayBufferManager, JCRegister* pRegister,JCWebGLPlus* pWebGLPlus); ~JCConchRender(); void initOpenGLES(); void onGLReady(); void setRenderData(JCArrayBufferManager* pJSArrayBufferManger, JCArrayBufferManager::ArrayBufferContent* pSyncBufferList,int nSyncCount, JCCommandEncoderBuffer*& pRenderCmd,double& fDelay,double& fFPS); void setInterruptFunc(std::function pFunc); void syncArrayBuffer(JCArrayBufferManager* pManager, JCArrayBufferManager::ArrayBufferContent* pSyncBufferList,int nSyncCount); void syncDeleteArrayBuffer(JCArrayBufferManager* pJSManager); int renderFrame(long nCurrentFrame, bool bStopRender); void clearAllData(); void willExit(); void setAssetRes(JCFileSource* pAssetRes); void onTouchStart(double fTime); private: void _clearAllData(); public: JCWorkerThread* m_pRenderThread; float m_fShowPerfScale; ///<是否显示性能测试 long m_nFrameCount; /// m_pInterruptFunc; float m_fMouseMoveTime; #ifndef __APPLE__ std::atomic m_bClearAllData{ false }; #endif }; } //------------------------------------------------------------------------------ #endif //__JCConchRender_H__ //-----------------------------END FILE--------------------------------