Ejemplo n.º 1
0
			void ARK::Core::GameContainer::setFullscreen(bool fullscreen) {
				
				EmscriptenFullscreenChangeEvent state;
				emscripten_get_fullscreen_status(&state);

				if (!state.isFullscreen && fullscreen) {
					ARK2D::getLog()->i("Go fullscreen mode.");
					emscripten_request_fullscreen(0, 1);
				} else if (state.isFullscreen && !fullscreen) {
					ARK2D::getLog()->i("Go windowed mode.");
					emscripten_exit_fullscreen();
				}

				/*if (!m_fullscreen && fullscreen) {
					// go fullscreen
					ARK2D::getLog()->i("Go fullscreen mode.");
					//setSize(m_screenWidth, m_screenHeight);
					
					//m_fullscreen = fullscreen;
					
				} else if (m_fullscreen && !fullscreen) {
					// go windowed.
					ARK2D::getLog()->i("Go windowed mode.");
					//setSize(m_originalWidth, m_originalHeight);
					emscripten_exit_fullscreen();
					
				}*/
				
				
			}
Ejemplo n.º 2
0
static void gfx_ctx_emscripten_get_canvas_size(int *width, int *height)
{
   EmscriptenFullscreenChangeEvent fullscreen_status;
   bool  is_fullscreen = false;
   EMSCRIPTEN_RESULT r = emscripten_get_fullscreen_status(&fullscreen_status);

   if (r == EMSCRIPTEN_RESULT_SUCCESS)
   {
      if (fullscreen_status.isFullscreen)
      {
         is_fullscreen = true;
         *width = fullscreen_status.screenWidth;
         *height = fullscreen_status.screenHeight;
      }
   }

   if (!is_fullscreen)
   {
      r = emscripten_get_canvas_element_size("#canvas", width, height);

      if (r != EMSCRIPTEN_RESULT_SUCCESS)
      {
         RARCH_ERR("[EMSCRIPTEN/EGL]: Could not get screen dimensions: %d\n",
            r);
         *width = 800;
         *height = 600;
      }
   }
}
Ejemplo n.º 3
0
			EM_BOOL fullscreenchange_callback(int eventType, const EmscriptenFullscreenChangeEvent *e, void *userData)
			{
				//printf("%s, isFullscreen: %d, fullscreenEnabled: %d, fs element nodeName: \"%s\", fs element id: \"%s\". New size: %dx%d pixels. Screen size: %dx%d pixels.",
      //Cast::toString<int>(eventType).c_str(), e->isFullscreen, e->fullscreenEnabled, e->nodeName, e->id, e->elementWidth, e->elementHeight, e->screenWidth, e->screenHeight);

				EmscriptenFullscreenChangeEvent state;
				emscripten_get_fullscreen_status(&state);

				GameContainer* container = ARK2D::getContainer();
				int newWidth = 100;
				int newHeight = 100;
				if (state.isFullscreen) {  
					newWidth = state.screenWidth;
					newHeight = state.screenHeight;
				} else {
					newWidth = container->getWidth();
					newHeight = container->getHeight();
				}
 
				container->setSize(newWidth, newHeight);
				container->getPlatformSpecific()->setFullscreenInternal(e->isFullscreen);
				//container->resizeBehaviour(newWidth, newHeight); 
				//container->resizeWindowToFitViewport(); 

				return 0;
			}	
void ofxAppEmscriptenWindow::toggleFullscreen(){
	EmscriptenFullscreenChangeEvent fullscreenStatus;
	emscripten_get_fullscreen_status(&fullscreenStatus);
	if(fullscreenStatus.isFullscreen){
		setFullscreen(false);
	}else if(fullscreenStatus.fullscreenEnabled){
		setFullscreen(true);
	}
}