Menu::Menu(const char* url) : mWebView(0) , mPosX(0) , mPosY(0) , mWidth(0) , mHeight(0) , mViewLoaded(false) , mURL(url) , mVertexBuffer(0) , mStateBlock(0) , mFrameCount(0) { static bool sbWebCoreInitilized = false; // Initialize once the Awesomium web core if ( !sbWebCoreInitilized ) { // TODO: Move Awesomium to a separate core awe_webcore_initialize( true, true, false, awe_string_empty(), awe_string_empty(), awe_string_empty(), awe_string_empty(), awe_string_empty(), AWE_LL_NORMAL, false, awe_string_empty(), true, awe_string_empty(), awe_string_empty(), awe_string_empty(), awe_string_empty(), awe_string_empty(), awe_string_empty(), false, 0, false, false, awe_string_empty() ); awe_webcore_set_base_directory( AweString("Menus/") ); sbWebCoreInitilized = true; } // Get the screen dimension const VCNPoint& screenRes = VCNRenderCore::GetInstance()->GetResolution(); mWidth = screenRes.x; mHeight = screenRes.y; VCN_ASSERT(mWidth != 0 && mHeight != 0); // Create the web view mWebView = awe_webcore_create_webview(mWidth, mHeight, false); ASSERT(mWebView && "Failed to create web view"); // Map this view to recover in callbacks. sViewMap[mWebView] = this; // Load initial view awe_webview_load_file( mWebView, AweString(mURL.c_str()), awe_string_empty() ); awe_webview_set_callback_js_callback( mWebView, OnCallbackHandler ); awe_webview_set_callback_finish_loading( mWebView, OnFinishLoadingHandler ); // Preserve transparency (for the HUD) awe_webview_set_transparent(mWebView, true); // Always create a Native object to call native functions from javascript. awe_webview_create_object( mWebView, AweString("Native") ); CreateTexture(); CreateStateBlock(); CreateVertexBuffer(); }
void Awesomium::loadFile(char* path) { awe_string* file_str = awe_string_create_from_ascii(path, strlen(path)); awe_webview_load_file(webView,file_str, awe_string_empty()); awe_string_destroy(file_str); while(awe_webview_is_loading_page(webView)) { Sleep(200); awe_webcore_update(); add_logA("Awesomium: awe_webcore_update() executed"); } add_logA("Awesomium: File loaded"); }