Пример #1
0
HWindow::HWindow(BRect rect, const char* name)
	:
	BWindow(rect, name, B_TITLED_WINDOW, B_AUTO_UPDATE_SIZE_LIMITS),
	fFilePanel(NULL),
	fPlayer(NULL)
{
	InitGUI();

	fFilePanel = new BFilePanel();
	fFilePanel->SetTarget(this);

	BPath path;
	BMessage msg;

	if (find_directory(B_USER_SETTINGS_DIRECTORY, &path) == B_OK) {
		path.Append(kSettingsFile);
		BFile file(path.Path(), B_READ_ONLY);

		if (file.InitCheck() == B_OK && msg.Unflatten(&file) == B_OK
			&& msg.FindRect("frame", &fFrame) == B_OK) {
			MoveTo(fFrame.LeftTop());
			ResizeTo(fFrame.Width(), fFrame.Height());
		}
	}
}
/***********************************************************
 * Constructor.
 ***********************************************************/
HAddTrackerWindow::HAddTrackerWindow(BRect rect,const char* name)
		:BWindow(rect,name,B_TITLED_WINDOW_LOOK,B_MODAL_APP_WINDOW_FEEL,B_NOT_RESIZABLE|B_NOT_ZOOMABLE|B_ASYNCHRONOUS_CONTROLS)
{
	InitGUI();
	BTextControl *control = cast_as(FindView("name"),BTextControl);
	control->MakeFocus(true);
}
Пример #3
0
bool
dlgFontEditShowModal(const TCHAR * FontDescription,
                     LOGFONT &log_font,
                     LOGFONT autoLogFont)
{
  bool bRetVal = false;

  wf = LoadDialog(CallBackTable,
                      XCSoarInterface::main_window, _T("IDR_XML_FONTEDIT"));
  if (wf == NULL)
    return false;

  NewLogFont = log_font;
  resetLogFont = autoLogFont;

  InitGUI(FontDescription);
  LoadGUI();

  if (wf->ShowModal() == mrOK) {
    log_font = NewLogFont;
    bRetVal = true;
  }

  delete wf;

  return bRetVal;
}
Пример #4
0
/***********************************************************
 * Constructor
 ***********************************************************/
HAddUrlDlg::HAddUrlDlg(BRect rect, const char* url)
	: BWindow(rect, _("Add URLs"), B_DOCUMENT_WINDOW_LOOK, B_MODAL_APP_WINDOW_FEEL, B_NOT_ZOOMABLE) {
	InitGUI();
	AddShortcut(B_RETURN, 0, new BMessage(M_OK_MESSAGE));
	AddShortcut('W', 0, new BMessage(B_QUIT_REQUESTED));
	if (url)
		fURLView->Insert(url);
	fURLView->MakeFocus(true);
}
Пример #5
0
int main(int argc, const char **argv)
{
	VariantMap settings;
	settings["appName"] = "Puzzle Moppet";
	settings["windowTitle"] = "Puzzle Moppet Configuration";
	settings["screenWidth"] = 250;
	settings["screenHeight"] = 330;
#ifndef __APPLE__
	// Software renderer doesn't seem to work on Mac...
	settings["softwareMode"] = true;
#endif
	
	IEngine *engine = CreateEngine(argc, argv, &settings);
	
	IrrlichtDevice *device = engine->GetIrrlichtDevice();
	
	// Filesystem...
	// Irrlicht needs this so it can load textures from same dir as font xml.
	engine->GetIrrlichtDevice()->getFileSystem()->addFileArchive("../projects/ConfigApp/");
	
	// Show the cursor
	device->getCursorControl()->setVisible(true);
	
	// Pause World, not needed for GUI app.
	// (pausing World also disables mouse centring)
	engine->GetWorld()->Pause();
	
	// Load GUI
	gui::IGUIEnvironment *guienv = device->getGUIEnvironment();
	ASSERT( guienv->loadGUI("gui.xml") );
	
	// Get pointers to important elements within the loaded GUI.
	// Ideally in the future we'll have a layout manager and won't need the GUI
	// defined in xml.
	FindGUIElementPointers();
	
	// Default font
	guienv->getSkin()->setFont( guienv->getFont("lucida.xml") );
	
	// Change background colour...
	engine->GetRenderSystem()->SetBackgroundCol(video::SColor(0, 200,200,200));
	
	// Receive GUI events.
	// This prevents Litha Engine from receiving GUI events, but that doesn't matter.
	IEventReceiver *eventReceiver = new EventReceiver(engine);
	guienv->setUserEventReceiver(eventReceiver);
	
	// Init
	InitSettings();
	InitGUI();
	
	engine->Run();
	engine->drop();
	delete eventReceiver;
	
	return 0;
}
Пример #6
0
Файл: main.cpp Проект: SL-RU/rpb
Core::Core()
{
  std::cout<<"Core: begin initialising\n";
  
  _core = this;
  InitHardware();
  InitGUI();

  std::cout<<"Core: core initialized\n";
}
Пример #7
0
int main()
{
	InitGUI();
	InitLOGO();
	
	while(1)
	{
		system("CLS");
		DispatchMessage();
	}

	return 0;
}
Пример #8
0
BOOL CNewFilterGroupDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	SetWindowText(m_szTitle);

	InitGUI();
	m_pLangRuleDlg->AddMsgReceiver(m_hWnd);

	InitComboBox();
	InitData();

	return TRUE;
}
Пример #9
0
Файл: main.c Проект: RFBGH/ugui
void main(void)
{
	InitHeapPool(INIT_HEAP_DEFAULT);

	InitGUI();

	AppCalcDlg();
    //Test2();
    //Test3();
    //Test4();
    //Test5();
    //Test7();
	TestBtn();
	//TestString();
}
//--------------------------------------------------------------------------------------
// Initialize everything and go into a render loop
//--------------------------------------------------------------------------------------
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow)
{
    HRESULT hr;
    V_RETURN(DXUTSetMediaSearchPath(MEDIA_PATH));

    // Enable run-time memory check for debug builds.
#if defined(DEBUG)
    _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
#endif

    // Set general DXUT callbacks
    DXUTSetCallbackFrameMove(OnFrameMove);
    DXUTSetCallbackKeyboard(OnKeyboard);
    DXUTSetCallbackMouse(OnMouse);
    DXUTSetCallbackMsgProc(MsgProc);
    DXUTSetCallbackDeviceChanging(ModifyDeviceSettings);
    DXUTSetCallbackDeviceRemoved(OnDeviceRemoved);

    // Set the D3D11 DXUT callbacks
    DXUTSetCallbackD3D11DeviceAcceptable  (IsD3D11DeviceAcceptable);
    DXUTSetCallbackD3D11DeviceCreated     (OnD3D11CreateDevice);
    DXUTSetCallbackD3D11SwapChainResized  (OnD3D11ResizedSwapChain);
    DXUTSetCallbackD3D11FrameRender       (OnD3D11FrameRender);
    DXUTSetCallbackD3D11SwapChainReleasing(OnD3D11ReleasingSwapChain);
    DXUTSetCallbackD3D11DeviceDestroyed   (OnD3D11DestroyDevice);

    // Perform any application-level initialization here
    InitAOParams(g_AOParams);
    InitGUI();

    UINT Width = 1920;
    UINT Height = 1200;

    DXUTInit(true, true, NULL); // Parse the command line, show msgboxes on error, no extra command line params
    DXUTSetCursorSettings(true, true); // Show the cursor and clip it when in full screen
    DXUTSetIsInGammaCorrectMode(false); // Do not use a SRGB back buffer for this sample
    DXUTCreateWindow(L"Deinterleaved Texturing");
    DXUTCreateDevice(D3D_FEATURE_LEVEL_11_0, true, Width, Height);
    //DXUTToggleFullScreen();

    DXUTMainLoop(); // Enter into the DXUT render loop

    // Perform any application-level cleanup here

    return DXUTGetExitCode();
}
Пример #11
0
bool dlgFontEditShowModal(const TCHAR * FontDescription, 
                          const TCHAR * FontRegKey, 
                          LOGFONT autoLogFont){

  bool bRetVal=false;
  char filename[MAX_PATH];
  IsInitialized=false;

  LocalPathS(filename, TEXT("dlgFontEdit.xml"));
  wf = dlgLoadFromXML(CallBackTable, 
                      filename, 
		      hWndMainWindow,
		      TEXT("IDR_XML_FONTEDIT"));


  int UseCustomFontsold = UseCustomFonts; 
  UseCustomFonts=1;// global var
  InitializeOneFont (&NewFont, 
                        FontRegKey, 
                        autoLogFont,
                        &OriginalLogFont);
  UseCustomFonts=UseCustomFontsold;


  OriginalFontRegKey=FontRegKey;
  NewLogFont=OriginalLogFont;
  resetLogFont = autoLogFont;


  if (wf) {

    InitGUI(FontDescription);
    LoadGUI();

    if (wf->ShowModal()==mrOK) {
      SaveValues(FontRegKey);  
      bRetVal=true;
    }
    delete wf;
  }
  wf = NULL;

  return bRetVal;
}
Пример #12
0
// Initialisierung des Rendering Kontextes
void SetupRC() {
	// Schwarzer Hintergrund
	glClearColor(0.1f, 0.1f, 0.1f, 1.0f);
	// In Uhrzeigerrichtung zeigende Polygone sind die Vorderseiten.
	// Dies ist umgekehrt als bei der Default-Einstellung weil wir Triangle_Fans benützen
	glFrontFace(GL_CW);

	//initialisiert die standard shader
	shaderManager.InitializeStockShaders();
	transformPipeline.SetMatrixStacks(modelViewMatrix, projectionMatrix);

	//erzeuge die geometrie
	CreateCone(0, 0, 0);
	CreateCube(0, 0, 0);
	CreateCylinder(0, 0, 0);
	CreateSphere(0, 0, 0);

	InitGUI();
}
Пример #13
0
C_Game::C_Game(sf::RenderWindow* sc)
    : C_Mod(sc)
{
    sf::Clock loadTimer;

    glewInit();

    InitFog();
    InitTexture();

    _cam->setPosition(Vector3D(CHUNK_SIZE/2, CHUNK_SIZE/2, CHUNK_ZVALUE/2 +1.6f));
    _cam->setSpeed(0.0006);
    _screen->ShowMouseCursor(false);

    glEnable(GL_TEXTURE_2D);
    InitCubes();

    _boolJumping = false;
    _frameJumping = 0;

    InitGUI();
    SetItemInHotkeys(CUBE_DIRT, 0);
    SetItemInHotkeys(CUBE_SAND, 1);
    SetItemInHotkeys(CUBE_SAND+1, 2);
    SetItemInHotkeys(CUBE_SAND+2, 3);
    SetItemInHotkeys(CUBE_SAND+3, 4);
    SetItemInHotkeys(CUBE_SAND+4, 5);
    SetItemInHotkeys(CUBE_SAND+5, 6);
    SetItemInHotkeys(CUBE_SAND+6, 7);
    SetItemInHotkeys(CUBE_SAND+7, 8);

    _actuelCubeInHand = _itemInHotkeys[0];

    C_Log::GetSingleton()->AddMessage( std::string("Scene loaded in " + FloatToString(loadTimer.GetElapsedTime()) + "sec.") );

    /*C_LineEdit *widg = new C_LineEdit();
    widg->move(10, sc->GetHeight()-40);
    widg->resize(350, 30);
    AddWidget(widg);*/

    Launch();
}
Пример #14
0
INT WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, INT nCmdShow )
{
	FILE *f=fopen("bass.dll","rb");
	if (f)
	{
		fclose(f);
		DebugStart=false;
		int MemUsage=0;
		if ((GetSystemMetrics(SM_CXSCREEN)>=1024 && GetSystemMetrics(SM_CYSCREEN)>=768) || strstr(GetCommandLine(),"-fullscreen") && !strstr(GetCommandLine(),"-windowed"))
		{
	#ifndef Public_Release
			LastClickedToolTip="ADVANCED DIGITAL DYNAMITE INTRO CREATION TOOL V1.97";
	#else
			LastClickedToolTip="ADVANCED DIGITAL DYNAMITE INTRO CREATION TOOL V1.97 PUBLIC RELEASE";
	#endif
			SetupEnvironment();
			if (strstr(GetCommandLine(),"-fullscreen") || (GetSystemMetrics(SM_CXSCREEN)==1024 && GetSystemMetrics(SM_CYSCREEN==768)) && !strstr(GetCommandLine(),"-windowed")) fullscreen=true;
	#ifndef Public_Release
			Intro_CreateWindow("a.D.D.i.c.t. V1.97 (Build Date: " __DATE__ " " __TIME__ ")\0", 1024, 768, 32, fullscreen, LoadIcon(hInstance, MAKEINTRESOURCE(101)));
	#else
			Intro_CreateWindow("a.D.D.i.c.t. V1.97 Public Release (Build Date: " __DATE__ " " __TIME__ ")\0", 1024, 768, 32, fullscreen, LoadIcon(hInstance, MAKEINTRESOURCE(101)));
	#endif
			InitRadiosityStuff();
			
			WGLSWAPINTERVALEXT wglSwapIntervalEXT = (WGLSWAPINTERVALEXT) wglGetProcAddress("wglSwapIntervalEXT");
			if (wglSwapIntervalEXT && fullscreen) wglSwapIntervalEXT(1); // enable vertical synchronisation
		
			//InitDemoSave();
			InitGUI();
			initVertexBlend();
			MainLoop();
			//DeinitDemoSave();
			ReleaseDC(hWnd,hDC);
			if (fullscreen)	ChangeDisplaySettings(NULL,0);
			return 0;
		}
		else
		MessageBox( 0, "Sorry a.D.D.i.c.t. 2 requires at least a screen resolution of 1024x768 pixels.", "Error!", MB_OK );
	}
	else MessageBox( 0, "bass.dll not found", "Error!", MB_OK );
	return 0;
}
Пример #15
0
int main (int args, const char* agr[])
#endif

{
    int iRet = 0;

    if (!InitGUI ()) {
#ifdef _INCORE_RES
        fprintf (stderr, "InitGUI failure when using incore resource.\n");
#else
        fprintf (stderr, "InitGUI failure when using %s as cfg file.\n",
                                ETCFILEPATH);
#endif /* _INCORE_RES */
        return 1;
    }

    iRet = MiniGUIMain (args, agr);

    TerminateGUI (iRet);

    return iRet;
}
Пример #16
0
bool OGLIndexedDraw::Init(int windowWidth, int windowHeight)
{
    bool res = gs::Stage::Init(windowWidth, windowHeight);
    
    if (res) {
        res &= InitGUI();
        
		/******************************* Shaders ********************************/
		
        auto vertexShader = std::make_unique<gs::Shader>(GL_VERTEX_SHADER);
        auto fragmentShader = std::make_unique<gs::Shader>(GL_FRAGMENT_SHADER);
        auto program = std::make_shared<gs::Program>();
        
        vertexShader->SetSource("heightmap.vert");
        res &= vertexShader->Compile();
        fragmentShader->SetSource("heightmap.frag");
        res &= fragmentShader->Compile();
        
        program->Attach(vertexShader->get());
        program->Attach(fragmentShader->get());
		res &= program->Link();
        program->Use();
        
        programs.push_back(program);
        
        glm::mat4 MVP = projection * glm::lookAt(glm::vec3(0, 40, -30), glm::vec3(0), glm::vec3(0, 1, 0));
        GLint mvpLocation = glGetUniformLocation(program->get(), "MVP");
		glUniformMatrix4fv(mvpLocation, 1, GL_FALSE, glm::value_ptr(MVP));	

		hDivLocation = glGetUniformLocation(program->get(), "heightDivider");
        
		/******************************* Geometry ********************************/
        auto vao = std::make_unique<gs::VertexArray>();
        vao->BindVAO();
        vaos.push_back(std::move(vao));

		auto vbo = std::make_unique<gs::VertexBuffer>(GL_ARRAY_BUFFER);
		vbo->BindVBO();
		vbos.push_back(std::move(vbo));

		heights = { 4.0f, 2.0f, 3.0f, 1.0f,
					3.0f, 5.0f, 8.0f, 2.0f,
					7.0f, 10.0f, 12.0f, 6.0f,
					4.0f, 6.0f, 8.0f, 3.0f };

		const float halfX = WORLD_SIZE_X * 0.5f;
		const float halfZ = WORLD_SIZE_Z * 0.5f;

		for (size_t i = 0; i < HM_SIZE_Z; i++) {
			for (size_t j = 0; j < HM_SIZE_X; j++)
			{
				short currentLineOffset = (short)j * HM_SIZE_Z;

				float xPos = j / (float)(HM_SIZE_X - 1) * WORLD_SIZE_X - halfX;
				float yPos = heights[i + currentLineOffset];
				float zPos = i / (float)(HM_SIZE_Z - 1) * WORLD_SIZE_Z - halfZ;
				vertices[i + currentLineOffset] = glm::vec3(xPos, yPos, zPos);
			}
		}
		glBufferData(GL_ARRAY_BUFFER, sizeof(glm::vec3) * vertices.size(), vertices.data(), GL_STATIC_DRAW);

		/******************************* Indices ********************************/
		auto ibo = std::make_unique<gs::VertexBuffer>(GL_ELEMENT_ARRAY_BUFFER);
		ibo->BindVBO();
		vbos.push_back(std::move(ibo));

		const GLushort restartIndex = HM_SIZE_X * HM_SIZE_Z;
		indices = { 0, 4, 1, 5, 2, 6, 3, 7, restartIndex,
					4, 8, 5, 9, 6, 10, 7, 11, restartIndex,
					8, 12, 9, 13, 10, 14, 11, 15};
		glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(GLushort) * indices.size(), indices.data(), GL_STATIC_DRAW);

		glEnableVertexAttribArray(0);
		glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, nullptr);

		glEnable(GL_PRIMITIVE_RESTART);
		glEnable(GL_DEPTH_TEST);
		glPrimitiveRestartIndex(restartIndex);
    }
    return res;
}
Пример #17
0
void EditorFrameHandler::Init()
{
	Ogre::SceneManager *scene_manager = CommonDeclarations::GetSceneManager();
	EditorCamera = scene_manager->createCamera("EditorCamera");
	EditorCamera->setNearClipDistance(5);		
	EditorCamera->setFarClipDistance(0);

	EditorCamera->setPosition(CommonDeclarations::GetCamera()->GetOgreCamera()->getWorldPosition());

	CommonDeclarations::GetApplication()->SetCurrentCamera(EditorCamera);

	/*CommonDeclarations::ObjectsPool *objects = CommonDeclarations::GetEditableObjects();
	for (CommonDeclarations::ObjectsPool::ListNode *pos = objects->GetBegin();pos!=NULL;pos=pos->Next)
	{		
		SEditableObject obj;
		obj.Object = pos->Value;
		IScenable *scen = pos->Value->GetScenable();
		if (scen)
		{
			obj.EditNode = NULL;
			obj.EditEntity = NULL;
			ICollidable *collid = pos->Value->GetCollidable();
			if (collid)
			{
				obj.CollisionModel = collid->GetCollisionModel();
			} else
			{				
				const char *modelname = scen->GetModelName();
				if (NULL == modelname)
					modelname = AAUtilities::StringCopy("cube.mesh");
				obj.CollisionModel = GetCollisionModel(modelname);
			}				
		} else
		{
			obj.EditNode = scene_manager->getRootSceneNode()->createChildSceneNode();	
			char *buffer = CommonDeclarations::GenGUID();			
			obj.EditEntity = scene_manager->createEntity(buffer, "cube.mesh");					
			delete [] buffer;

			obj.EditNode->attachObject(obj.EditEntity);

			obj.CollisionModel = GetCollisionModel("cube.mesh");
		}
		EditableObjects.PushBack(obj);		
	}
	delete objects;*/

	//
	CommonDeclarations::ObjectsPool *objects = CommonDeclarations::GetEditableObjects();
	const char *str;
	TiXmlElement *node = 0, *nodes, *env;
	env = SceneRootElement->FirstChildElement("environment");	
	if (env)
	{
		node = env->FirstChildElement("skyBox");	
		if (node)
		{			
			SEditableDescription descr;
				
			descr.EditNode = NULL;
			descr.EditElement = node;
			EditorNodes.insert(std::make_pair("SkyBox", descr));
		}
	}
	
	nodes = SceneRootElement->FirstChildElement("nodes");	
	if (nodes)
	{
		node = nodes->FirstChildElement("node");	
		
		Ogre::Node::ChildNodeIterator iFirst = scene_manager->getRootSceneNode()->getChildIterator(), iPos = iFirst;
		
		while (node)
		{
			str = node->Attribute("name");
			SEditableDescription descr;
			Ogre::Node *t = NULL;
			iPos = iFirst;
			while (iPos.hasMoreElements()) 
			{
				t = iPos.getNext();
				if (t->getName()==str)
				{
					descr.EditNode = t;
					break;
				}
			}
			
			descr.EditElement = node;
			EditorNodes.insert(std::make_pair(str, descr));
			
			node = node->NextSiblingElement("node");
		}
	}
	delete objects;
	//

	MyGUI::Gui *gui = GUISystem::GetInstance()->GetGui();
	OIS::Mouse *mouse = EditorFrameListener::GetInstance()->GetMouse();

	InitGUI();

	const OIS::MouseState &ms = mouse->getMouseState();
	int x=ms.width/2,
		y=ms.height/2;
	mouse->setMousePosition(x,y);
    gui->setPointerPosition(x, y);	
	gui->showPointer();
}
Пример #18
0
/***********************************************************
 * Constructor
 ***********************************************************/
HCriteriaView::HCriteriaView(BRect rect,const char* name)
	:BView(rect,name,B_FOLLOW_ALL,B_WILL_DRAW)
{
	SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
	InitGUI();
}
bool OGLFrustumCulling::Init(int windowWidth, int windowHeight)
{
    bool res = gs::Stage::Init(windowWidth, windowHeight);

    if (res) {
        res &= InitGUI();

        auto program = std::make_shared<gs::Program>();
        program->CreateShader(GL_VERTEX_SHADER, "sinDisplacement.vert");
        program->CreateShader(GL_GEOMETRY_SHADER, "frustumCulling.geom");
        program->CreateShader(GL_FRAGMENT_SHADER, "roundedPoints.frag");

        res &= program->Link();
        program->Use();
        programs.push_back(program);

        program->AddUniform("MVP");
        program->AddUniform("time");
        program->AddUniform("frustumPlanes");
        program->AddUniform("amplitude");

        auto programFrustum = std::make_shared<gs::Program>();
        programFrustum->CreateShader(GL_VERTEX_SHADER, "oglLight.vert");
        programFrustum->CreateShader(GL_FRAGMENT_SHADER, "firstPoint.frag");

        res &= programFrustum->Link();
        programFrustum->Use();
        programs.push_back(programFrustum);

        programFrustum->AddUniform("MVP");

        auto vao = std::make_unique<gs::VertexArray>();
        vao->BindVAO();

        auto vbo = std::make_unique<gs::VertexBuffer>(GL_ARRAY_BUFFER);
        std::vector<glm::vec3> positions;
        for (size_t z = 0; z <= NUM_VERTICESZ; z++) {
            for (size_t x = 0; x <= NUM_VERTICESX; x++) {
                auto xCoord = ((((float)x / ((NUM_VERTICESX - 1)) * 2) - 1)) * HALF_SIZEX;
                auto zCoord = ((((float)z / ((NUM_VERTICESZ - 1)) * 2) - 1)) * HALF_SIZEZ;
                positions.push_back(glm::vec3(xCoord, 0.0f, zCoord));
            }
        }
        vbo->BindVBO();
        glBufferData(vbo->GetTarget(), sizeof(glm::vec3) * positions.size(), positions.data(), GL_STATIC_DRAW);
        vbos.push_back(std::move(vbo));

        vao->AddAttribute(0, 3, GL_FLOAT, GL_FALSE, 0, nullptr);
        vaos.push_back(std::move(vao));

        totalVertices = (int)positions.size();

        ground.SetSize(1000);
        ground.SetProgram(programs[1]);
        ground.Load("");

        camera.SetSpeed(10);
        camera.SetPosition(glm::vec3(0,0,20));
        camera.SetupProjection(45.0f, windowWidth/(float)windowHeight, 0.01f);

        cameraExternal.SetSpeed(0);
        cameraExternal.SetPosition(glm::vec3(0,20,30));
        cameraExternal.SetTarget(camera.GetPosition());
        cameraExternal.SetupProjection(45.0f, windowWidth/(float)windowHeight);
        cameraExternal.Update();

        glPointSize(30.0f);
        //glCullFace(GL_FRONT_FACE);
    }
    return res;
}
bool OGLSimpleLighting::Init(int windowWidth, int windowHeight)
{
    bool res = gs::Stage::Init(windowWidth, windowHeight);
    
    if (res) {
        res &= InitGUI();

		// Program textured objects setup
        auto vertexShader = std::make_unique<gs::Shader>(GL_VERTEX_SHADER);
        auto programTex = std::make_shared<gs::Program>();
        
        vertexShader->SetSource("simpleLighting.vert");
        res &= vertexShader->Compile();
        programTex->Attach(vertexShader->get());
        
        auto fragmentShader = std::make_unique<gs::Shader>(GL_FRAGMENT_SHADER);
        fragmentShader->SetSource("simpleLighting.frag");
        res &= fragmentShader->Compile();
        programTex->Attach(fragmentShader->get());
        
		res &= programTex->Link();
		programTex->Use();
        programs.push_back(programTex);

		mvpLocation = glGetUniformLocation(programTex->get(), "MVP");
		normalMatrixLocation = glGetUniformLocation(programTex->get(), "NormalMatrix");
		light.direction = glm::vec3(-1.0f, 0.0f, 0.0f);
		light.ambientColor = glm::vec3(0.2f);
		light.diffuseColor = glm::vec3(1.0f);
		light.specularColor = light.diffuseColor;

		lightDirLoc = glGetUniformLocation(programTex->get(), "light.direction");
		diffuseLoc = glGetUniformLocation(programTex->get(), "light.diffuseColor");
		ambientLoc = glGetUniformLocation(programTex->get(), "light.ambientColor");
        
		//Texture setup
		auto textureFloor = std::make_unique<gs::Texture>(IMAGE_TYPE::GLI);
		res &= textureFloor->LoadTexture("Floor.dds");
		textureFloor->ChangeParameter(GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_LINEAR);
		textureFloor->ChangeParameter(GL_TEXTURE_MAG_FILTER, GL_LINEAR);
		textures.push_back(std::move(textureFloor));

		auto textureCamouflage = std::make_unique<gs::Texture>(IMAGE_TYPE::GLI);
		res &= textureCamouflage->LoadTexture("Hieroglyphes.dds");
		textures.push_back(std::move(textureCamouflage));

		// Geometry setup
        auto vao = std::make_unique<gs::VertexArray>();
        vao->BindVAO();
        vaos.push_back(std::move(vao));
        
		auto vbo = std::make_unique<gs::VertexBuffer>(GL_ARRAY_BUFFER);
		vbo->BindVBO();

		std::vector<gs::Vertex> vertices;
		OGLCube cube;
		cube.InitVertices(glm::vec3(0));
		vertices.insert(vertices.end(), cube.GetVertices().begin(), cube.GetVertices().end());		

		OGLQuad quad;
		quad.SetSize(1000);
		quad.InitVertices(glm::vec3(0));
		vertices.insert(vertices.end(), quad.GetVertices().begin(), quad.GetVertices().end());

		glBufferData(GL_ARRAY_BUFFER, sizeof(gs::Vertex) * vertices.size(), vertices.data(), GL_STATIC_DRAW);

		vbos.push_back(std::move(vbo));

		glEnableVertexAttribArray(0);
		glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(gs::Vertex), (void*)offsetof(gs::Vertex, position));
		glEnableVertexAttribArray(1);
		glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, sizeof(gs::Vertex), (void*)offsetof(gs::Vertex, texCoords));
		glEnableVertexAttribArray(2);
		glVertexAttribPointer(2, 3, GL_FLOAT, GL_FALSE, sizeof(gs::Vertex), (void*)offsetof(gs::Vertex, normal));

		// Camera setup
        camera.SetPosition(glm::vec3(0.0f, 0.0f, 3.0f));
        camera.SetSpeed(8.0f);
        camera.SetupProjection(45.0f, windowWidth/(float)windowHeight);

		lightObj.Load("");

		// OpenGL setup
		glEnable(GL_DEPTH_TEST);
    }
    return res;
}
Пример #21
0
Файл: main.c Проект: RFBGH/ugui
void TestBtn(void)
{
	PWindow pWinSon0 = NULL;
	PButton pBtnSon0 = NULL;
	PEditView pEditSon0 = NULL;
	PCheckBox pBkBoxSon0 = NULL;
	PWindow pWinParent = NULL;
	int iRnd;
	int i;
	int iParent;
	CRect rect;
	CFont font;
	CBrush brush;
	INT iID;

	iID = 1;

	InitHeapPool(INIT_HEAP_DEFAULT);

	InitGUI();
	Log("start...\n");

	pWinParent = CreateWindowE(0, pWinRoot, iID++);

	rect.m_iLeft = 10;
	rect.m_iTop = 10;
	rect.m_iHeigh = 200;
	rect.m_iWidth = 300;

	pWinParent->m_pfSelWinRect(P2H(pWinParent), &rect, NULL);
	SetWinBKColor(pWinParent, 0xFF000000);

	pBtnSon0 = CreateButton(pWinParent, iID++, "btn1", 0, WIN_MSG_BUTTON, WinOnUsrProc);
	rect.m_iLeft = 80;
	rect.m_iTop = 10;
	rect.m_iHeigh = 50;
	rect.m_iWidth = 50;
	pBtnSon0->m_pfSelWinRect(P2H(pBtnSon0), &rect, NULL);
	SetWinBKColor(&pBtnSon0->m_baseWin, 0xFF00FF00);
	font.m_color = 0xFF000000;

	pBtnSon0->m_pfSelWinFont(P2H(pBtnSon0), &font, NULL);

	pWinSon0 = CreateWindowE(0, pWinParent, iID++);
	rect.m_iLeft = 50;
	rect.m_iTop = 10;
	rect.m_iHeigh = 50;
	rect.m_iWidth = 50;
	pWinSon0->m_pfSelWinRect(P2H(pWinSon0), &rect, NULL);
	SetWinBKColor(pWinSon0, 0xFFFF0000);

	pEditSon0 = CreateEditView(pWinParent, iID++, "you are pig stupid, fool is your nick name kill youyou are pig stupid, fool is your nick name kill you", 0/*EDIT_VIEW_MULTI_LINE*/);
	rect.m_iLeft = 30;
	rect.m_iTop = 90;
	rect.m_iHeigh = 50;
	rect.m_iWidth = 100;
	pEditSon0->m_pfSelWinRect(P2H(pEditSon0), &rect, NULL);
	pEditSon0->m_pfSelWinFont(P2H(pEditSon0), &font, NULL);
	brush.m_color = 0xFFFFFFFF;
	pEditSon0->m_pfSelWinBrush(P2H(pEditSon0), &brush, NULL);
	pEditSon0->m_iCurEdit =  10;

	pBkBoxSon0 = CreateCheckBox(pWinParent, iID++, "CheckMe", TRUE, 0);
	rect.m_iLeft = 146;
	rect.m_iTop = 80;
	rect.m_iHeigh = 24;
	rect.m_iWidth = 100;
	pBkBoxSon0->m_pfSelWinRect(P2H(pBkBoxSon0), &rect, NULL);
	pBkBoxSon0->m_pfSelWinFont(P2H(pBkBoxSon0), &font, NULL);
	brush.m_color = 0xFFFF00FF;
	pBkBoxSon0->m_pfSelWinBrush(P2H(pBkBoxSon0), &brush, NULL);

	Log("window flow...\n");
	FlowWindow0(pWinRoot, WindowFlow);

	//pWinTmp = FindWindowByID(25);
	//Log("find...");
	//WindowFlow(pWinTmp);

	PrintScreen();

#if 0
	pWinTmp = FindWindowByID(2);

	if(pWinTmp == NULL)
	{
		Log("NULL pointer\r\n");
	}

	Log("OK\r\n");

	ReorderWindow(pWinTmp);
	FlowWindow0(pWinRoot, WindowFlow);
#endif


	while(TRUE)
	{
		int x;
		int y;
		int iRet;
		PPoint pPoint;
		scanf("%d %d", &x, &y);
		pPoint = (PPoint)Malloc(sizeof(CPoint));
		pPoint->m_iX = x;
		pPoint->m_iY = y;

		iRet = pWinRoot->m_pfPostMessage(P2H(pWinRoot), WIN_MSG_ID_CLICK_SCREEN_DOWN, 0, pPoint);
		Log("iRet[%d]\r\n", iRet);
		WinFlowMain();

		FlowWindow0(pWinRoot, WindowFlow);
		PrintScreen();
	}

	DeleteEditView(pEditSon0);
	DeleteButton(pBtnSon0);
}
Пример #22
0
void BaseApp::Init()
{
	m_wireframe = false;
	lockMouse = true;
	m_freezeFrustum = false;

	blurOffset = 0.01;

	LoadOpenGLExt();

	//importer3DS.Import3DS(&model, "data\\models\\3ds__tree2.3ds");

	m_pFont = new Font("data\\textures\\fonts\\tahoma_10.tga");

	glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);	
	m_pFont->Enable(m_width, m_height);
	m_pFont->SetAlignment(FONT_HORIZ_ALIGN_LEFT, FONT_VERT_ALIGN_TOP);
	m_pFont->Print(10, 10, "Loading...");
	m_pFont->Disable();
	SwapBuffers(m_hDC);

	ShowCursor(false);

	InitGUI();

	InitSkyDome();

	Vec2 *lixo, *lixo3;
	Vec3 *lixo2;

	g_heightMap = new HeightMap();
	g_heightMap->SetWidthRatio(15.0f);
	g_heightMap->SetHeightRatio(5.0f);
	g_heightMap->SetYOffset(-150.0f);
	g_heightMap->LoadFromFile("data\\heightmap.png");

	int numVerts = 0;
	numVerts = g_heightMap->BuildArray(&lixo2, &lixo, &lixo3);

	g_quadtree = new Quadtree();
	g_quadtree->Build(g_heightMap, g_heightMap->vertices, lixo, numVerts);


	m_shdWater			= new Shader("data\\shaders\\water");
	m_shdWaterSpecular	= new Shader("data\\shaders\\water_specular");
	m_shdBlur			= new Shader("data\\shaders\\blur");
	m_shdHDR			= new Shader("data\\shaders\\hdr");
	m_shdSky			= new Shader("data\\shaders\\sky");
	m_shdUnderwater		= new Shader("data\\shaders\\underwater");
	m_shdSimpleColor	= new Shader("data\\shaders\\simple_color");

	m_sunPos.Set(0.0f, 1.0f, 0.0f);
		m_sunPos.x = cosf(0.35f);
		m_sunPos.y = 1.0 - sinf(0.35f);

	m_camera.PositionCamera(	-527.03f,		13.39f,		-606.4f,
								-526.3f,		13.4f,		-605.75f, 
								0.0f,		1.0f,		0.0f	);


	glViewport(0, 0, m_width, m_height);
	glClearColor(0.5f, 0.8f, 1.0f, 1.0f);
	glEnable(GL_CULL_FACE);
	glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);

	glMatrixMode(GL_PROJECTION);
	projMat.BuildProjection(50.0f, (float)m_width / (float)m_height, 0.1f, 50000.0f);
	glLoadMatrixf(projMat);
	glMatrixMode(GL_MODELVIEW);


	glGenRenderbuffersEXT(1, &g_renderBuffer[0]);
	glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, g_renderBuffer[0]);
	glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT24, m_width, m_height);

	glGenRenderbuffersEXT(1, &g_renderBuffer[1]);
	glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, g_renderBuffer[1]);
	glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT24, m_width, m_height);



	glGenFramebuffersEXT(1, &g_frameBuffer);
	glGenRenderbuffersEXT(1, &g_depthRenderBuffer);
	glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, g_depthRenderBuffer);
	glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT24, m_width, m_height);

	//glGenFramebuffersEXT(1, &g_frameBuffer2);//
	glGenRenderbuffersEXT(1, &g_depthRenderBuffer2);//
	glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, g_depthRenderBuffer2);//
	glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT24, 512, 512);//

	//glGenFramebuffersEXT(1, &g_frameBufferHDR);//
	glGenRenderbuffersEXT(1, &g_depthRenderBufferHDR);//
	glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, g_depthRenderBufferHDR);//
	glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT24, m_width / 1, m_height / 1);//

	glGenRenderbuffersEXT(1, &g_renderBufferBlurdHDR);
	glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, g_renderBufferBlurdHDR);
	glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT24, m_width / 4, m_height / 4);

	GLenum status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);

	switch(status)
	{
		case GL_FRAMEBUFFER_COMPLETE_EXT:
			//MessageBox(NULL,"GL_FRAMEBUFFER_COMPLETE_EXT!","SUCCESS",MB_OK|MB_ICONEXCLAMATION);
			break;

		case GL_FRAMEBUFFER_UNSUPPORTED_EXT:
			MessageBox(NULL,"GL_FRAMEBUFFER_UNSUPPORTED_EXT!","ERROR",MB_OK|MB_ICONEXCLAMATION);
			exit(0);
			break;

		default:
			exit(0);
	}

	g_texFP16.CreateRenderTarget(m_width, m_height, 3, GL_RGB16F_ARB, true);
	g_texFP162.CreateRenderTarget(m_width, m_height, 3, GL_RGB16F_ARB, true);

	g_texHDR.CreateRenderTarget(m_width / 1, m_height / 1, 3, GL_RGB16F_ARB, true);
	g_texHBluredHDR.CreateRenderTarget(m_width / 4, m_height / 4, 3, GL_RGB16F_ARB, true);
	g_texVBluredHDR.CreateRenderTarget(m_width / 4, m_height / 4, 3, GL_RGB16F_ARB, true);

	g_texWaterReflect.CreateRenderTarget(512, 512, 3, GL_RGB16F_ARB, true);


	Image image;

	image.Load("data\\textures\\water_nmap.png");
	image.ToNormalMap(2);
	water.Load2D(image, GL_REPEAT, GL_REPEAT, GL_LINEAR_MIPMAP_LINEAR, GL_LINEAR_MIPMAP_LINEAR, true);

	image.Load("data\\textures\\teste.bmp");
	m_skyGradient.Load1D(image, GL_CLAMP, GL_LINEAR, GL_LINEAR);

	image.Load("data\\textures\\sun.png");
	m_texSun.Load2D(image, GL_REPEAT, GL_REPEAT, GL_LINEAR_MIPMAP_LINEAR, GL_LINEAR_MIPMAP_LINEAR, true);

	CubeMapFilePath cubeMapFilePath;
	strcpy(cubeMapFilePath.posX, "data\\textures\\underwater_nmap.png");
	strcpy(cubeMapFilePath.negX, "data\\textures\\underwater_nmap.png");
	strcpy(cubeMapFilePath.posY, "data\\textures\\underwater_nmap.png");
	strcpy(cubeMapFilePath.negY, "data\\textures\\underwater_nmap.png");
	strcpy(cubeMapFilePath.posZ, "data\\textures\\underwater_nmap.png");
	strcpy(cubeMapFilePath.negZ, "data\\textures\\underwater_nmap.png");

	m_texCubeUnderwaterNormMap.LoadCubeMap(cubeMapFilePath, GL_REPEAT, GL_REPEAT, GL_LINEAR_MIPMAP_LINEAR, GL_LINEAR_MIPMAP_LINEAR, 0);


	m_texViewPort.CreateRenderTarget(m_width, m_height, 3, GL_RGB, true);

	m_mouseLockedX = m_width * 0.5;
	m_mouseLockedY = m_height * 0.5;
	CenterMouse();
}
Пример #23
0
bool OGLSpotLight::Init(int windowWidth, int windowHeight)
{
    bool res = gs::Stage::Init(windowWidth, windowHeight);
    if (!res) {
        return false;
    }

    cubePositions.resize(10);

    res &= InitGUI();

    // Init Camera
    camera.SetPosition(glm::vec3(0, 0, 50));
    camera.SetSpeed(15.0f);
    camera.SetupProjection(45.0f, windowWidth / (float)windowHeight);

    // Init light
    InitLight();

    // Init materials
    InitCubePosition();

    // Init program
    res &= AddProgram("mesh.vert", "spotLight.frag");
    auto program = programs[0];

    // Get uniform locations
    res &= AddLightUniform(program.get());
    res &= AddMatricesUniform(program.get());
    res &= program->AddUniform("material.shininess");
    res &= program->AddUniform("samplerDiffuse1");
    program->AddUniform("samplerDiffuse2");
    program->AddUniform("samplerDiffuse3");
    program->AddUniform("samplerSpecular1");
    program->AddUniform("samplerSpecular2");

    glUniform1i(program->GetUniform("samplerDiffuse1"), 0);
    glUniform1i(program->GetUniform("samplerDiffuse2"), 1);
    glUniform1i(program->GetUniform("samplerDiffuse3"), 2);
    glUniform1i(program->GetUniform("samplerSpecular1"), 3);
    glUniform1i(program->GetUniform("samplerSpecular2"), 4);

    // Init geometry
    auto vao = std::make_unique<gs::VertexArray>();
    vao->BindVAO();

    auto vbo = std::make_unique<gs::VertexBuffer>(GL_ARRAY_BUFFER);
    vbo->BindVBO();
    OGLCube cube;
    auto& vertices = cube.GetVertices();
    cube.InitVertices(glm::vec3(0));
    glBufferData(vbo->GetTarget(), sizeof(gs::Vertex) * vertices.size(), vertices.data(), GL_STATIC_DRAW);
    vbos.push_back(std::move(vbo));

    vao->AddAttribute(0, 3, GL_FLOAT, GL_FALSE, sizeof(gs::Vertex), 0);
    vao->AddAttribute(1, 2, GL_FLOAT, GL_FALSE, sizeof(gs::Vertex), (void*)offsetof(gs::Vertex, texCoords));
    vao->AddAttribute(2, 3, GL_FLOAT, GL_FALSE, sizeof(gs::Vertex), (void*)offsetof(gs::Vertex, normal));
    vaos.push_back(std::move(vao));

    auto diffuse = std::make_unique<gs::Texture>(IMAGE_TYPE::GLI);
    diffuse->SetContribution(LIGHT_CONTRIBUTION::DIFFUSE);
    res &= diffuse->LoadTexture("containerDiffuse.dds");
    diffuse->BindTexture(GL_TEXTURE0);
    textures.push_back(std::move(diffuse));

    auto specular = std::make_unique<gs::Texture>(IMAGE_TYPE::GLI);
    specular->SetContribution(LIGHT_CONTRIBUTION::DIFFUSE);
    res &= specular->LoadTexture("containerSpecular.dds");
    specular->BindTexture(GL_TEXTURE3);
    textures.push_back(std::move(specular));

    glEnable(GL_DEPTH_TEST);
    res = true;
    return res;
}
Пример #24
0
/*notice the default arguments for main.  SDL expects main to look like that, so don't change it*/
int main(int argc, char *argv[])
{

 // SDL_Surface *temp = NULL;

  
  int done;// the player
  const Uint8 *keys;// the player

  /* This section starts by loading the BG as a surface and converting it to a texture This will have to change 
  if I can manage to scroll the trexture arond the player*/
 
SDL_CreateWindowAndRenderer(800, 600, SDL_WINDOW_RESIZABLE, &mainWindow, &renderer);
SDL_SetWindowTitle(mainWindow, "Nitro Hotness");
 if( TTF_Init() == -1 )
    {
        return false;    
    }

  if( Mix_OpenAudio( 22050, MIX_DEFAULT_FORMAT, 2, 4096 ) == -1 )
    {
        return false;    
    }

InitSpriteSystem();
InitEntitySystem(entityMax);


map mymap = setWorld();
ObstacleList ol = newObstacleList();
mew = newPlayer();
Obstacle Doh = newObstacle(0);
Road_M Path = initRoad();
AI rival = new_AI();
GUI HUD = InitGUI();
mew.position=0;
done = 0;

//The music that will be played
   Mix_Music *music = NULL;


   Mix_Chunk *buzz = NULL;
    buzz = Mix_LoadWAV( "sfx/buzz.wav" );
	readSave(&mew);
	showTitle();
	showMain();
  oldTime = 0;
  currentTime = 0;
  mytime = 0;

do
 	{
		
  oldTime = 0;
  currentTime = 0;
  mytime = 0;
	  if( Mix_PlayingMusic() == 0 )
                    {
                        //Play the music
                        if( Mix_PlayMusic( level_music, -1 ) == -1 )
                        {
                            return 1;
                        } 
					}
	 SDL_Event e;
	 SDL_PollEvent( &e ); 
		if(&e)
					{
					//User requests quit
					if( e.type == SDL_QUIT )
					{
						done = 1;
					}
					//user presses enter to go to next menu
					
					//User presses a key
					else if( e.type == SDL_KEYDOWN )
					{
						//Select surfaces based on key press
						switch( e.key.keysym.sym )
						{
						
						case SDLK_LEFT:
				//		slog("left is down");	
						mew.playerX += 3;
						mew.accel = (mew.accel - .000001);
						break;

						case SDLK_RIGHT:
					//	slog("right is down");
						mew.playerX -= 3;
						mew.accel = (mew.accel - .000001);
						break;

						case SDLK_UP:
					//	slog("up is down");
						 mew.accel = (mew.accel + .00007);
						 Mix_PlayChannel( 1, buzz, 0 );
						 break;
						
						case SDLK_DOWN:
					//	slog("down is down");
						mew.accel = (mew.accel - .00008);
						break;
						}
					}

					else if( e.type == SDL_KEYUP )
					{
						//Select surfaces based on key press
						switch( e.key.keysym.sym )
						{	
						
						case SDLK_RETURN :
						if(mew.done ==1)
						{
							Mix_HaltMusic();
							if(GP == 1)
							{
							mew.done=0;
							lvl++;
							//slog("new level is %i",lvl);
							mew.position = 0;
							rival.position =0;
							setWorld();
							Results(mew.rank,lvl);
							}
						else if (GP == 0)
							{
							mew.done=0;
							mew.position = 0;
							rival.position =0;
							levelSelect();
							}
						
						}
						else
						{
						slog("too soon");
						}
						
						case SDLK_LEFT:
					//	slog("left is up");	
						e.type = SDLK_CLEAR;
						break;

						case SDLK_RIGHT:
					//	slog("right is up");
						e.type = SDLK_CLEAR;
						break;

						case SDLK_UP:
					//	slog("up is up");
						mew.accel = (mew.accel - .001);
						Mix_HaltChannel(1);
						e.type = SDLK_CLEAR;
						break;

						case SDLK_DOWN:
					//	slog("down is up");
						mew.accel = 0;
						e.type = SDLK_CLEAR;
						break;

						default:
					//slog("simple decel");	
						mew.accel = (mew.accel-0.00001);
						break;

						}
					}

		if(mew.position > rival.position)
		{
			mew.rank = 1 ;
		}
		else if( rival.position > mew.position )
		{
			mew.rank = 2 ;
		}
		SDL_RenderClear(renderer);
		DrawBG(BG1,BG2);
		roadUpdate(Path,mymap,mew);
		roadDraw(Path,mymap,&mew);
		roadFetch(Path,mymap,&mew);
		checkForObstacles(ol , &mew, Doh);
		update_AI(&rival, &mew);
		UpdatePlayer(&mew);
		DrawGui(HUD,mew);
		NextFrame();
		keys = SDL_GetKeyboardState(NULL);

	if(keys[SDL_SCANCODE_ESCAPE])
    {
        done = 1;
    }
	
}
  }while(!done);
      //Free the sound effects
   //Free the music
  Mix_FreeMusic( music );
  CloseEntitySystem();
  CloseSpriteSystem();
  exit(0);		/*technically this will end the program, but the compiler likes all functions that can return a value TO return a value*/ 
 return 0;
}
Пример #25
0
void Application::Initialize()
{
    m_ElapsedTime = m_LastElapsedTime = 0.0f;

    g_Application = this;
    m_Log = new LogManager(this);
    m_Log->AddLogType("Info"   );
    m_Log->AddLogType("Warning");
    m_Log->AddLogType("Error"  );
    m_Log->SetTypeConsoleOutput(HW_INFORMATION,true);
    m_Log->SetTypeConsoleOutput(HW_WARNING    ,true);
    m_Log->SetTypeConsoleOutput(HW_ERROR      ,true);
    m_Log->SetOutputsTime	 (true );
    m_Log->SetOutputsType	 (true );
    m_Log->SetOutputsFile	 (false);
    m_Log->SetOutputsLine	 (false);
    m_Log->SetOutputsFunction(false);

    HW_INFO("Initializing...\n");

    m_Window = new Window();
    if(m_Window->Create(Vec2(800,600),"HelloWorld",true))
    {
        FreeImage_Initialise();

        m_Rasterizer = m_Window->GetRasterizer();
        ((OpenGLRasterizer*)m_Rasterizer)->SetClearBuffers(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

        m_Window->PollEvents();

        m_TaskManager = new TaskManager();
        m_Renderer = new DeferredRenderer(m_Rasterizer,m_TaskManager);
        m_Rasterizer->SetRenderer(m_Renderer);
        m_Renderer->Init();

        m_AssetAllocator = new HWAssetAllocator(m_Renderer);
        m_AssetManager = new AssetManager(m_AssetAllocator);
        m_AssetAllocator->SetAssetManager(m_AssetManager);
        HWInitializeAssetManager(m_AssetManager);

        InitRenderer();

        m_InputManager = new InputManager(m_Renderer);
        m_InputManager->Initialize(BTN_COUNT);
        m_InputManager->SetMouseButtonIDs(BTN_LEFT_MOUSE,BTN_RIGHT_MOUSE);

        m_ShaderGenerator = m_Renderer->GetShaderGenerator();

        Scalar Aspect = m_Rasterizer->GetContext()->GetResolution().y / m_Rasterizer->GetContext()->GetResolution().x;

        m_Camera = new Camera(Vec2(60.0f,60.0f * Aspect),0.001f,2000.0f);
        m_Renderer->GetScene()->SetActiveCamera(m_Camera);
        m_Renderer->GetScene()->SetCullingAlgorithm(new BruteForceCullingAlgorithm(m_Renderer->GetScene(),m_TaskManager));

        m_ElapsedTime = m_LastElapsedTime = m_Window->GetElapsedTime();

        m_DeltaTime = 1.0f / 60.0f;
        m_Rasterizer->SetClearColor(Vec4(0.1f,0.1f,0.1f,1.0f));

        m_Window->PollEvents();
        m_Rasterizer->ClearActiveFramebuffer();

        m_DoShutdown = false;

        m_UIManager = 0;
        m_Cursor = 0;
        InitGUI();

        m_SSAO = 0;
        //InitSSAO();

        m_DebugDraw = 0;
        InitDebugDisplay();

        m_Game = new GameManager(this);
        m_Game->Initialize();
    }
    else
    {
        m_DoShutdown      = true;
        m_Rasterizer      = 0;
        m_Renderer        = 0;
        m_ShaderGenerator = 0;
        delete m_Window;
        delete m_TaskManager;
        m_Window          = 0;
    }
}
Пример #26
0
int WINAPI WinMain(HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow)
{
	startup_time = GetTickCount();
	previous_time = 0;
	frames = 0;
	fps = 1;
#ifdef _DEBUG_TIMINGS
	drawtime = 0;
	drawtime_prv = 0;
	drawtime_med = 1;
	cleartime = 0;
	cleartime_prv = 0;
	cleartime_med = 1;
	mainlooptime = 0;
	mainlooptime_prv = 0;
	mainlooptime_med = 1;
	fliptime = 0;
	fliptime_prv = 0;
	fliptime_med = 1;
#endif
	current_state = GAME_MAINMENU;
	difficulty_pick = 0;
	size_pick = 0;
	race_pick = 0;
	opponents_pick = 0;
	mouseX = 0;
	mouseY = 0;
	mouse[0] = false;
	mouse[1] = false;
	mouse[2] = false;
	tex_count = 0;
	font_count = 0;
	srand((unsigned)time(NULL));

	LogToFile("Log started");
	InitWindow(hInstance);
	InitPaths();
	InitTextures();
	InitFonts();
	InitStorages();
	InitDefinitions();
	InitGUI();
	InitOGLSettings();
	ResizeScene(cfg.scr_width, cfg.scr_height);
	LogPaths();

	//Load_v_03("test.txt");
	Load_v_04("test.txt");
	while(current_state != GAME_EXITING)
	{
		MainLoop();
		ClearScene();
		DrawScene();
		Flip(&hDC);
	}

	// Now terminating all
	KillWindow(hInstance);

	LogToFile("Finished logging");




}
Пример #27
0
int WINAPI WinMain(HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow)
{
	LogToFile(DEFAULT_LOG_NAME, "Log started");

	InitWindow(hInstance);
	startup_time = GetTickCount();
	previous_time = 0;
	frames = 0;
	fps = 1;

#ifdef _DEBUG_TIMINGS

	drawtime = 0;
	drawtime_prv = 0;
	drawtime_med = 1;
	cleartime = 0;
	cleartime_prv = 0;
	cleartime_med = 1;
	mainlooptime = 0;
	mainlooptime_prv = 0;
	mainlooptime_med = 1;
	fliptime = 0;
	fliptime_prv = 0;
	fliptime_med = 1;

#endif

	current_state = GAME_MAINMENU;
	mouseX = 0;
	mouseY = 0;
	mouse[0] = false;
	mouse[1] = false;
	mouse[2] = false;
	tex_count = 0;
	font_count = 0;

	InitPaths();
	LogPaths();

	
	LoadTexturesFromFolder(path_textures, textures);

	InitFonts();
	InitGUI();

	

	

	InitOGLSettings();
	ResizeScene(cfg.scr_width, cfg.scr_height);
		
	while(current_state != GAME_EXITING)
	{
		MainLoop();
		ClearScene();
		DrawScene();
		Flip(hDC);
	}

	// Now terminating all
	KillWindow(hInstance);

	LogToFile(DEFAULT_LOG_NAME, "Finished logging");




}