Exemplo n.º 1
0
void widgetSDLQuit()
{
	// Get the window vector
	vector *windowVector = windowGetWindowVector();

	// Release all active windows
	vectorMapAndDestroy(windowVector, (mapCallback) widgetDestroy);
	
	// Release any cached SVG images
	svgManagerQuit();
	
	// Release all patterns
	patternManagerQuit();
}
Exemplo n.º 2
0
int main(int argc, char *argv[])
{
	SDL_Surface *screen;
	SDL_Event sdlEvent;
	bool quit = false;
	lua_State* L;

	// Make sure everything is cleaned up on quit
	atexit(SDL_Quit);

	// Init SDL
	if (SDL_Init(SDL_INIT_VIDEO) < -1)
	{
		fprintf(stderr, "SDL_init: %s\n", SDL_GetError());
		exit(1);
	}

	// Enable UNICODE support (for key events)
	SDL_EnableUNICODE(true);

	// Enable double-buffering
	SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);

	// Enable sync-to-vblank
	SDL_GL_SetAttribute(SDL_GL_SWAP_CONTROL, 1);

	// 800x600 true colour
	screen = SDL_SetVideoMode(800, 600, 32, SDL_OPENGL);
	if (screen == NULL)
	{
		fprintf(stderr, "SDL_SetVideoMode: %s\n", SDL_GetError());
		exit(1);
	}

	SDL_WM_SetCaption("Warzone UI Simulator", NULL);

	// Init OpenGL
	glClearColor(0.3f, 0.3f, 0.3f, 0.0f);
	glCullFace(GL_BACK);
	glEnable(GL_BLEND);
	glBlendFunc(GL_CONSTANT_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
	glBlendColor(1.0f, 1.0f, 1.0f, 1.0f);
	glEnable(GL_TEXTURE_RECTANGLE_ARB);

	glViewport(0, 0, 800, 600);

	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	glOrtho(0.0, 800, 600, 0.0, -1.0, 1.0);

	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();

	/*
	 * Create the GUI
	 */
	widgetSDLInit();
	L = lua_open_betawidget();
	createGUI(L);

	// Main event loop
	while (!quit)
	{
		int i;

		while (SDL_PollEvent(&sdlEvent))
		{
			if (sdlEvent.type == SDL_QUIT)
			{
				quit = true;
			}
			else
			{
				widgetHandleSDLEvent(&sdlEvent);
			}
		}

		// Fire timer events
		widgetFireTimers();

		glClear(GL_COLOR_BUFFER_BIT);

		for (i = 0; i < vectorSize(windowGetWindowVector()); i++)
		{
			window *wnd = vectorAt(windowGetWindowVector(), i);

			widgetDraw(WIDGET(wnd));
			widgetComposite(WIDGET(wnd));
		}


		SDL_GL_SwapBuffers();
	}

	lua_close(L);
	widgetSDLQuit();

	return EXIT_SUCCESS;
}