/** @file JCScrpitRuntimeWASM.h @brief @author James @version 1.0 @date 2017_9_25 */ #ifndef __JCScrpitRuntimeWASM_H__ #define __JCScrpitRuntimeWASM_H__ #include #include #include #include #include #include #include "JCCmdDispatchManager.h" #include #include #include namespace laya { class JCScriptRuntime { public: JCScriptRuntime(); ~JCScriptRuntime(); void init(JCFreeTypeFontRender* pFreeTypeRender); void onThInit(); bool onUpdate(); //每次需要渲染的时候触发js void onUpdateDraw(double vsyncTime); void onThExit(); void flushSharedCmdBuffer(); void dispatchScriptCmd(); void setJSCmdBuffer(char* pBuffer); void setRootNode(JCNode2D* pNode); private: void startScriptOnRenderThread(); public: static JCScriptRuntime* s_JSRT; JCHtml5Context* m_pRootHtml5Context; JCNode2D* m_pRootNode; std::vector m_vRenderCmds; JCCmdDispathManager* m_pCmdDispathManager; // JCMeasureTextManager* m_pMeasureTextManager; //MeasureTextManager JCMemClass* m_pJSCmdBuffer; //JS的buffer char* m_pCmdBufferSharedWithJS; //第一个int是当前指针。 int m_nCmdBufferSharedWithJSLen; int m_nUpdateCount; //update次数 JCTextManager* m_pTextManager; ///