Thread: [HPX-dev] spec prelim-1
Status: Pre-Alpha
Brought to you by:
aquila
From: Ian S. <ia...@st...> - 2000-07-27 08:24:24
|
Specification for Project HPX Preliminary Phase I ================================================= 1.1 Aim - start the project with some solid code - understand how to use OpenGL to do simple 2D graphics 1.2 Summary Display a background, then display an image according to a grid position on the screen. 1.3 Use case A sample run would proceed something like: - switch mode to 640x480 - clear screen - load RGB (24 bit) background image from file - load RGBA (32 bit) "sprite" image from file(s) - place background image into frame buffer - place sprite image into frame buffer according to given (x,y) position - swap frame buffer on to screen - quit when esc is pressed Note: RGB image == 1 byte for each of red, green, blue per pixel. RGBA image == 1 byte for each of red, green, blue, alpha per pixel, where alpha designates % transparency 2.1 Code structure Since we are moving towards a bomberman game, for this phase we want to start coding in such a way as to allow us to build on the code as we progress. What I propose is to seperate the code into grid, object, display and main. main.c - contains the main() function and executes the functions provided by the other files display.c + display.h - a simple display library which provides functions to load and display different image formats object.c + object.h - contains definition of an object structure as well as functions that manipulate objects. Each object need to have an associated image and current location in x, y grid.c + grid.h - contains definition of the background grid structure and functions that manipulate grids (or maps). Each map will need an associated background image, grid width, grid height, tile width, tile height. 2.2 Detailed specification 2.2.1 display.h Structures - image structure - image width - image height - image data - image type Functions - loadBMP - read a 24 bit .bmp or .dib file and returns an image structure of type RGB - loadBMPAlpha - read a 24 bit .bmp or .dib and an 8 bit grayscale .bmp file and create an image structure of type RGBA - displayImage - places an image according to given x, y co-ordinates into the frame buffer 2.2.2 object.h Structures - object structure - position x - position y - object RGBA image file(s?) Functions - displayObject - using the displayImage function displays the object at the correct position 2.2.3 grid.h Structures - grid structure - overall background image - background width - background height - grid column count - grid row count Functions - displayGrid - displays the grid 3 Task allocation Undecided. Everybody interested reply to this e-mail. 4 Unresolved problems - how to create RGBA image data? I haven't figured this out yet - how does the co-ordinate system work? OpenGL has a weird system whereby the center of the screen is (0,0) and the corners are (-1, -1), (-1, 1), (1, 1) and (1, -1). - is it probably better using a tiles system instead of 1 big background where each tile has associated images and each grid is an array of tiles? Maybe we'll change to this later. |