diff --git a/src/game/intro.cpp b/src/game/intro.cpp index ffd2a116e..e22c019ee 100644 --- a/src/game/intro.cpp +++ b/src/game/intro.cpp @@ -421,9 +421,6 @@ global void ShowIntro(const Intro* intro) background = LoadGraphic(intro->Background); ResizeGraphic(background, VideoWidth, VideoHeight); -#ifdef USE_OPENGL - MakeTexture(background, background->Width, background->Height); -#endif LibraryFileName(intro->TextFile, buf); if (!(file = CLopen(buf, CL_OPEN_READ))) { @@ -610,9 +607,6 @@ global void ShowCredits(Credits* credits) if (credits->Background) { background = LoadGraphic(credits->Background); ResizeGraphic(background, VideoWidth, VideoHeight); -#ifdef USE_OPENGL - MakeTexture(background, background->Width, background->Height); -#endif } // play different music? @@ -763,9 +757,6 @@ global void ShowPicture(CampaignChapter* chapter) background = LoadGraphic(chapter->Data.Picture.Image); ResizeGraphic(background, VideoWidth, VideoHeight); -#ifdef USE_OPENGL - MakeTexture(background, background->Width, background->Height); -#endif IntroNoEvent = 1; text = chapter->Data.Picture.Text; diff --git a/src/include/video.h b/src/include/video.h index b54028872..5c9daaf97 100644 --- a/src/include/video.h +++ b/src/include/video.h @@ -69,10 +69,10 @@ extern unsigned AllocatedGraphicMemory; /// Allocated memory for objects #endif /** -** Event call back. +** Event call back. ** -** This is placed in the video part, because it depends on the video -** hardware driver. +** This is placed in the video part, because it depends on the video +** hardware driver. */ typedef struct _event_callback_ { @@ -99,22 +99,22 @@ typedef struct _event_callback_ { } EventCallback; - /// Graphic reference used during config/setup + /// Graphic reference used during config/setup typedef struct _graphic_config_ { char* File; /// config graphic name or file Graphic* Graphic; /// graphic pointer to use to run time } GraphicConfig; - /// Creates a shared hardware palette from an independent Palette struct. + /// Creates a shared hardware palette from an independent Palette struct. extern SDL_Palette* VideoCreateSharedPalette(const SDL_Palette* palette); - /// Free a shared hardware palette. + /// Free a shared hardware palette. extern void VideoFreeSharedPalette(SDL_Palette* palette); extern int ColorCycleAll; /// Flag color cycle palettes /** -** Typedef for palette links. +** Typedef for palette links. */ typedef struct _palette_link_ PaletteLink; @@ -132,48 +132,48 @@ extern void VideoPaletteListAdd(SDL_Surface* surface); extern void VideoPaletteListRemove(SDL_Surface* surface); /** - ** Video synchronization speed. Synchronization time in percent. - ** If =0, video framerate is not synchronized. 100 is exact - ** CYCLES_PER_SECOND (30). Game will try to redraw screen within - ** intervals of VideoSyncSpeed, not more, not less. - ** @see CYCLES_PER_SECOND @see VideoInterrupts + ** Video synchronization speed. Synchronization time in percent. + ** If =0, video framerate is not synchronized. 100 is exact + ** CYCLES_PER_SECOND (30). Game will try to redraw screen within + ** intervals of VideoSyncSpeed, not more, not less. + ** @see CYCLES_PER_SECOND @see VideoInterrupts */ extern int VideoSyncSpeed; extern volatile int VideoInterrupts; - /// Wanted videomode, fullscreen or windowed. + /// Wanted videomode, fullscreen or windowed. extern char VideoFullScreen; - /// Fullscreen or windowed set from commandline. + /// Fullscreen or windowed set from commandline. extern char VideoForceFullScreen; - /// Initialize Pixels[] for all players. - /// (bring Players[] in sync with Pixels[]) + /// Initialize Pixels[] for all players. + /// (bring Players[] in sync with Pixels[]) extern void SetPlayersPalette(void); - /// Lock the screen for display + /// Lock the screen for display extern void VideoLockScreen(void); - /// Unlock the screen for display + /// Unlock the screen for display extern void VideoUnlockScreen(void); - /// Wanted videomode, fullscreen or windowed. + /// Wanted videomode, fullscreen or windowed. extern char VideoFullScreen; /** - ** Architecture-dependant video depth. Set by InitVideoXXX, if 0. - ** (8,15,16,24,32) - ** @see InitVideo @see InitVideoSdl - ** @see main + ** Architecture-dependent video depth. Set by InitVideoXXX, if 0. + ** (8,15,16,24,32) + ** @see InitVideo @see InitVideoSdl + ** @see main */ extern int VideoDepth; /** - ** Architecture-dependant videomemory. Set by InitVideoXXX. - ** FIXME: need a new function to set it, see #ifdef SDL code - ** @see InitVideo @see InitVideoSdl - ** @see VMemType + ** Architecture-dependant videomemory. Set by InitVideoXXX. + ** FIXME: need a new function to set it, see #ifdef SDL code + ** @see InitVideo @see InitVideoSdl + ** @see VMemType */ extern SDL_Surface* TheScreen; @@ -195,7 +195,7 @@ extern void InitVideo(void); /// Resize a graphic extern void ResizeGraphic(Graphic* g, int w, int h); - /// Load graphic from PNG file + /// Load graphic from PNG file extern Graphic* LoadGraphicPNG(const char* name); #ifdef USE_OPENGL @@ -212,20 +212,17 @@ extern Graphic* LoadGraphic(const char* file); /// Flip graphic and store in graphic->SurfaceFlip extern void FlipGraphic(Graphic* graphic); - /// New graphic -extern Graphic* NewGraphic(unsigned d, int w, int h); - - /// Initializes video synchronization. + /// Initializes video synchronization. extern void SetVideoSync(void); - /// Clear video screen + /// Clear video screen extern void VideoClearScreen(void); /// Make graphic extern Graphic* MakeGraphic(unsigned, int, int, void*, unsigned); - /// Load a picture and display it on the screen (full screen), - /// changing the colormap and so on.. + /// Load a picture and display it on the screen (full screen), + /// changing the colormap and so on.. extern void DisplayPicture(const char *name); /// Init graphic @@ -240,15 +237,15 @@ extern void InitLineDraw(void); /// Simply invalidates whole window or screen. extern void Invalidate(void); - /// Invalidates selected area on window or screen. Use for accurate - /// redrawing. in so + /// Invalidates selected area on window or screen. Use for accurate + /// redrawing. in so extern void InvalidateArea(int x, int y, int w, int h); - /// Set clipping for nearly all vector primitives. Functions which support - /// clipping will be marked Clip. Set the system-wide clipping rectangle. + /// Set clipping for nearly all vector primitives. Functions which support + /// clipping will be marked Clip. Set the system-wide clipping rectangle. extern void SetClipping(int left, int top, int right, int bottom); - /// Realize video memory. + /// Realize video memory. extern void RealizeVideoMemory(void); /// Load sprite @@ -257,33 +254,33 @@ extern Graphic* LoadSprite(const char* file, int w, int h); /// Make shadow sprite extern void MakeShadowSprite(Graphic* graphic); - /// Draw a graphic clipped and with alpha. + /// Draw a graphic clipped and with alpha. extern void VideoDrawSubTrans(const Graphic* graphic, int gx, int gy, int w, int h, int x, int y, unsigned char alpha); - /// Draw part of a graphic clipped and with alpha. + /// Draw part of a graphic clipped and with alpha. extern void VideoDrawSubClipTrans(const Graphic* graphic, int gx, int gy, int w, int h, int x, int y, unsigned char alpha); - /// Save a screenshot to a PNG file + /// Save a screenshot to a PNG file extern void SaveScreenshotPNG(const char* name); - /// Creates a hardware palette from an independent Palette struct. + /// Creates a hardware palette from an independent Palette struct. extern SDL_Palette* VideoCreateNewPalette(const SDL_Palette* palette); /// Prints warning if video is too slow.. extern void CheckVideoInterrupts(void); - /// Process all system events. Returns if the time for a frame is over + /// Process all system events. Returns if the time for a frame is over extern void WaitEventsOneFrame(const EventCallback* callbacks); /// Toggle full screen mode extern void ToggleFullScreen(void); - /// Push current clipping. + /// Push current clipping. extern void PushClipping(void); - /// Pop current clipping. + /// Pop current clipping. extern void PopClipping(void); /// Returns the ticks in ms since start @@ -320,191 +317,191 @@ extern int ColorBuildingCycleEnd; /// color # end for color cycling #endif #ifndef USE_OPENGL - /// Draw pixel unclipped. + /// Draw pixel unclipped. extern void (*VideoDrawPixel)(Uint32 color, int x, int y); - /// Draw translucent pixel unclipped. + /// Draw translucent pixel unclipped. extern void (*VideoDrawTransPixel)(Uint32 color, int x, int y, unsigned char alpha); #else - /// Draw pixel unclipped. + /// Draw pixel unclipped. extern void VideoDrawPixel(Uint32 color, int x, int y); - /// Draw translucent pixel unclipped. + /// Draw translucent pixel unclipped. extern void VideoDrawTransPixel(Uint32 color, int x, int y, unsigned char alpha); #endif - /// Draw pixel clipped to current clip setting. + /// Draw pixel clipped to current clip setting. extern void VideoDrawPixelClip(Uint32 color, int x, int y); - /// Draw translucent pixel clipped to current clip setting. + /// Draw translucent pixel clipped to current clip setting. extern void VideoDrawTransPixelClip(Uint32 color, int x, int y, unsigned char alpha); - /// Draw vertical line unclipped. + /// Draw vertical line unclipped. extern void VideoDrawVLine(Uint32 color, int x, int y, int height); - /// Draw translucent vertical line unclipped. + /// Draw translucent vertical line unclipped. extern void VideoDrawTransVLine(Uint32 color, int x, int y, int height, unsigned char alpha); - /// Draw vertical line clipped to current clip setting + /// Draw vertical line clipped to current clip setting extern void VideoDrawVLineClip(Uint32 color, int x, int y, int height); - /// Draw translucent vertical line clipped to current clip setting + /// Draw translucent vertical line clipped to current clip setting extern void VideoDrawTransVLineClip(Uint32 color, int x, int y, int height, unsigned char alpha); - /// Draw horizontal line unclipped. + /// Draw horizontal line unclipped. extern void VideoDrawHLine(Uint32 color, int x, int y, int width); - /// Draw translucent horizontal line unclipped. + /// Draw translucent horizontal line unclipped. extern void VideoDrawTransHLine(Uint32 color, int x, int y, int width, unsigned char alpha); - /// Draw horizontal line clipped to current clip setting + /// Draw horizontal line clipped to current clip setting extern void VideoDrawHLineClip(Uint32 color, int x, int y, int width); - /// Draw translucent horizontal line clipped to current clip setting + /// Draw translucent horizontal line clipped to current clip setting extern void VideoDrawTransHLineClip(Uint32 color, int x, int y, int width, unsigned char alpha); - /// Draw line unclipped. + /// Draw line unclipped. extern void VideoDrawLine(Uint32 color, int sx, int sy, int dx, int dy); - /// Draw translucent line unclipped. + /// Draw translucent line unclipped. extern void VideoDrawTransLine(Uint32 color, int sx, int sy, int dx, int dy, unsigned char alpha); - /// Draw line clipped to current clip setting + /// Draw line clipped to current clip setting extern void VideoDrawLineClip(Uint32 color, int sx, int sy, int dx, int dy); - /// Draw translucent line clipped to current clip setting + /// Draw translucent line clipped to current clip setting extern void VideoDrawTransLineClip(Uint32 color, int sx, int sy, int dx, int dy, unsigned char alpha); - /// Draw rectangle. + /// Draw rectangle. extern void VideoDrawRectangle(Uint32 color, int x, int y, int w, int h); - /// Draw translucent rectangle. + /// Draw translucent rectangle. extern void VideoDrawTransRectangle(Uint32 color, int x, int y, int w, int h, unsigned char alpha); - /// Draw rectangle clipped. + /// Draw rectangle clipped. extern void VideoDrawRectangleClip(Uint32 color, int x, int y, int w, int h); - /// Draw translucent rectangle clipped. + /// Draw translucent rectangle clipped. extern void VideoDrawTransRectangleClip(Uint32 color, int x, int y, int w, int h, unsigned char alpha); - /// Draw 8bit raw graphic data clipped, using given pixel pallette + /// Draw 8bit raw graphic data clipped, using given pixel pallette extern void VideoDrawRawClip(SDL_Surface *surface, int x, int y, int w, int h); /// Does ColorCycling.. extern void ColorCycle(void); - /// Draw circle. + /// Draw circle. extern void VideoDrawCircle(Uint32 color, int x, int y, int r); - /// Draw translucent circle. + /// Draw translucent circle. extern void VideoDrawTransCircle(Uint32 color, int x, int y, int r, unsigned char alpha); - /// Draw circle clipped. + /// Draw circle clipped. extern void VideoDrawCircleClip(Uint32 color, int x, int y, int r); - /// Draw translucent circle clipped. + /// Draw translucent circle clipped. extern void VideoDrawTransCircleClip(Uint32 color, int x, int y, int r, unsigned char alpha); - /// Fill rectangle. + /// Fill rectangle. extern void VideoFillRectangle(Uint32 color, int x, int y, int w, int h); - /// Fill translucent rectangle. + /// Fill translucent rectangle. extern void VideoFillTransRectangle(Uint32 color, int x, int y, int w, int h, unsigned char alpha); - /// Fill rectangle clipped. + /// Fill rectangle clipped. extern void VideoFillRectangleClip(Uint32 color, int x, int y, int w, int h); - /// Fill translucent rectangle clipped. + /// Fill translucent rectangle clipped. extern void VideoFillTransRectangleClip(Uint32 color, int x, int y, int w, int h, unsigned char alpha); - /// Fill circle. + /// Fill circle. extern void VideoFillCircle(Uint32 color, int x, int y, int r); - /// Fill translucent circle. + /// Fill translucent circle. extern void VideoFillTransCircle(Uint32 color, int x, int y, int r, unsigned char alpha); - /// Fill circle clipped. + /// Fill circle clipped. extern void VideoFillCircleClip(Uint32 color, int x, int y, int r); - /// Fill translucent circle clipped. + /// Fill translucent circle clipped. extern void VideoFillTransCircleClip(Uint32 color, int x, int y, int r, unsigned char alpha); - /// Draw a graphic object unclipped. + /// Draw a graphic object unclipped. extern void VideoDraw(const Graphic*, unsigned, int, int); - /// Draw a graphic object clipped to the current clipping. + /// Draw a graphic object clipped to the current clipping. extern void VideoDrawSub(const Graphic*, int, int, int, int, int, int); - /// Draw a graphic object clipped to the current clipping. + /// Draw a graphic object clipped to the current clipping. extern void VideoDrawClip(const Graphic*, unsigned frame, int x, int y); - /// Draw a graphic object clipped to the current clipping. + /// Draw a graphic object clipped to the current clipping. extern void VideoDrawSubClip(const Graphic*, int ix, int iy, int w, int h, int x, int y); - /// Draw a graphic object unclipped and flipped in X direction. + /// Draw a graphic object unclipped and flipped in X direction. extern void VideoDrawX(const Graphic*, unsigned frame, int x, int y); - /// Draw a graphic object clipped and flipped in X direction. + /// Draw a graphic object clipped and flipped in X direction. extern void VideoDrawClipX(const Graphic*, unsigned frame, int x, int y); /// Translucent Functions - /// Draw a graphic object unclipped. + /// Draw a graphic object unclipped. extern void VideoDrawTrans(const Graphic*, unsigned, int, int, int); - /// Draw a graphic object clipped to the current clipping. + /// Draw a graphic object clipped to the current clipping. extern void VideoDrawClipTrans(const Graphic*, unsigned frame, int x, int y, int); - /// Draw a graphic object unclipped and flipped in X direction. + /// Draw a graphic object unclipped and flipped in X direction. extern void VideoDrawTransX(const Graphic*, unsigned frame, int x, int y, int alpha); - /// Draw a graphic object clipped and flipped in X direction. + /// Draw a graphic object clipped and flipped in X direction. extern void VideoDrawClipTransX(const Graphic*, unsigned frame, int x, int y, int alpha); - /// Draw a graphic object unclipped. -#define VideoDrawTrans50(o, f, x, y) VideoDrawTrans((o), (f), (x), (y), 128) - /// Draw a graphic object unclipped and flipped in X direction. -#define VideoDrawXTrans50(o, f, x, y) VideoDrawTransX((o), (f), (x), (y), 128) - /// Draw a graphic object clipped to the current clipping. -#define VideoDrawClipTrans50(o, f, x, y) VideoDrawClipTrans((o), (f), (x), (y), 128) - /// Draw a graphic object clipped and flipped in X direction. -#define VideoDrawClipXTrans50(o, f, x, y) VideoDrawClipTransX((o), (f), (x), (y), 128) + /// Draw a graphic object unclipped. +#define VideoDrawTrans50(o, f, x, y) VideoDrawTrans((o), (f), (x), (y), 128) + /// Draw a graphic object unclipped and flipped in X direction. +#define VideoDrawXTrans50(o, f, x, y) VideoDrawTransX((o), (f), (x), (y), 128) + /// Draw a graphic object clipped to the current clipping. +#define VideoDrawClipTrans50(o, f, x, y) VideoDrawClipTrans((o), (f), (x), (y), 128) + /// Draw a graphic object clipped and flipped in X direction. +#define VideoDrawClipXTrans50(o, f, x, y) VideoDrawClipTransX((o), (f), (x), (y), 128) - /// Free a graphic object. + /// Free a graphic object. extern void VideoFree(Graphic* o); - /// Safely (NULL) frees a graphic object. + /// Safely (NULL) frees a graphic object. #define VideoSafeFree(o) do { if ((o)) { VideoFree((o)); } } while (0) /// Get the width of a single frame of a graphic object -#define VideoGraphicWidth(o) ((o)->Width) +#define VideoGraphicWidth(o) ((o)->Width) /// Get the height of a single frame of a graphic object -#define VideoGraphicHeight(o) ((o)->Height) -#define VideoGraphicFrames(o) ((o)->NumFrames) +#define VideoGraphicHeight(o) ((o)->Height) +#define VideoGraphicFrames(o) ((o)->NumFrames) /// MACRO defines speed of colorcycling FIXME: should be made configurable -#define COLOR_CYCLE_SPEED (CYCLES_PER_SECOND/4) +#define COLOR_CYCLE_SPEED (CYCLES_PER_SECOND / 4) //@} diff --git a/src/map/tileset.cpp b/src/map/tileset.cpp index aaf3fdea0..b86a086e9 100644 --- a/src/map/tileset.cpp +++ b/src/map/tileset.cpp @@ -126,9 +126,6 @@ global void LoadTileset(void) strcat(strcpy(buf, "graphics/"), Tilesets[i]->ImageFile); ShowLoadProgress("Tileset `%s'", Tilesets[i]->ImageFile); TheMap.TileGraphic = LoadGraphic(buf); -#ifdef USE_OPENGL - MakeTexture(TheMap.TileGraphic, TheMap.TileGraphic->Width, TheMap.TileGraphic->Height); -#endif TileSizeX = Tilesets[i]->TileSizeX; TileSizeY = Tilesets[i]->TileSizeY; diff --git a/src/ui/menu_proc.cpp b/src/ui/menu_proc.cpp index fd0144cb2..cefff81a2 100644 --- a/src/ui/menu_proc.cpp +++ b/src/ui/menu_proc.cpp @@ -188,9 +188,6 @@ global void MenusSetBackground(void) if (!Menusbgnd) { Menusbgnd = LoadGraphic(MenuBackground); ResizeGraphic(Menusbgnd, VideoWidth, VideoHeight); -#ifdef USE_OPENGL - MakeTexture(Menusbgnd, Menusbgnd->Width, Menusbgnd->Height); -#endif } VideoDrawSubClip(Menusbgnd, 0, 0, diff --git a/src/ui/ui.cpp b/src/ui/ui.cpp index 6c7cf42cb..1c4daa3db 100644 --- a/src/ui/ui.cpp +++ b/src/ui/ui.cpp @@ -208,18 +208,10 @@ global void LoadUserInterface(void) for (i = 0; i < TheUI.NumFillers; ++i) { if (TheUI.Filler[i].File) { TheUI.Filler[i].Graphic = LoadGraphic(TheUI.Filler[i].File); -#ifdef USE_OPENGL - MakeTexture(TheUI.Filler[i].Graphic, TheUI.Filler[i].Graphic->Width, - TheUI.Filler[i].Graphic->Height); -#endif } } if (TheUI.Resource.File && *TheUI.Resource.File) { TheUI.Resource.Graphic = LoadGraphic(TheUI.Resource.File); -#ifdef USE_OPENGL - MakeTexture(TheUI.Resource.Graphic, TheUI.Resource.Graphic->Width, - TheUI.Resource.Graphic->Height); -#endif } for (i = 0; i < MaxCosts; ++i) { @@ -227,76 +219,36 @@ global void LoadUserInterface(void) if (TheUI.Resources[i].Icon.File) { TheUI.Resources[i].Icon.Graphic = LoadGraphic(TheUI.Resources[i].Icon.File); -#ifdef USE_OPENGL - MakeTexture(TheUI.Resources[i].Icon.Graphic, - TheUI.Resources[i].Icon.Graphic->Width, - TheUI.Resources[i].Icon.Graphic->Height); -#endif } } // FIXME: reuse same graphics? if (TheUI.Resources[FoodCost].Icon.File) { TheUI.Resources[FoodCost].Icon.Graphic = LoadGraphic(TheUI.Resources[FoodCost].Icon.File); -#ifdef USE_OPENGL - MakeTexture(TheUI.Resources[FoodCost].Icon.Graphic, - TheUI.Resources[FoodCost].Icon.Graphic->Width, - TheUI.Resources[FoodCost].Icon.Graphic->Height); -#endif } // FIXME: reuse same graphics? if (TheUI.Resources[ScoreCost].Icon.File) { TheUI.Resources[ScoreCost].Icon.Graphic = LoadGraphic(TheUI.Resources[ScoreCost].Icon.File); -#ifdef USE_OPENGL - MakeTexture(TheUI.Resources[ScoreCost].Icon.Graphic, - TheUI.Resources[ScoreCost].Icon.Graphic->Width, - TheUI.Resources[ScoreCost].Icon.Graphic->Height); -#endif } if (TheUI.InfoPanel.File) { TheUI.InfoPanel.Graphic = LoadGraphic(TheUI.InfoPanel.File); -#ifdef USE_OPENGL - MakeTexture(TheUI.InfoPanel.Graphic, - TheUI.InfoPanel.Graphic->Width, - TheUI.InfoPanel.Graphic->Height); -#endif } if (TheUI.ButtonPanel.File) { TheUI.ButtonPanel.Graphic = LoadGraphic(TheUI.ButtonPanel.File); -#ifdef USE_OPENGL - MakeTexture(TheUI.ButtonPanel.Graphic, - TheUI.ButtonPanel.Graphic->Width, - TheUI.ButtonPanel.Graphic->Height); -#endif } if (TheUI.MenuPanel.File) { TheUI.MenuPanel.Graphic = LoadGraphic(TheUI.MenuPanel.File); -#ifdef USE_OPENGL - MakeTexture(TheUI.MenuPanel.Graphic, - TheUI.MenuPanel.Graphic->Width, - TheUI.MenuPanel.Graphic->Height); -#endif } if (TheUI.MinimapPanel.File) { TheUI.MinimapPanel.Graphic = LoadGraphic(TheUI.MinimapPanel.File); -#ifdef USE_OPENGL - MakeTexture(TheUI.MinimapPanel.Graphic, - TheUI.MinimapPanel.Graphic->Width, - TheUI.MinimapPanel.Graphic->Height); -#endif } if (TheUI.StatusLine.File) { TheUI.StatusLine.Graphic = LoadGraphic(TheUI.StatusLine.File); -#ifdef USE_OPENGL - MakeTexture(TheUI.StatusLine.Graphic, - TheUI.StatusLine.Graphic->Width, - TheUI.StatusLine.Graphic->Height); -#endif } // - // Resolve cursors + // Resolve cursors // TheUI.Point.Cursor = CursorTypeByIdent(TheUI.Point.Name); TheUI.Glass.Cursor = CursorTypeByIdent(TheUI.Glass.Name); @@ -319,11 +271,6 @@ global void LoadUserInterface(void) while (menupanel) { if (menupanel->Panel.File) { menupanel->Panel.Graphic = LoadGraphic(menupanel->Panel.File); -#ifdef USE_OPENGL - MakeTexture(menupanel->Panel.Graphic, - menupanel->Panel.Graphic->Width, - menupanel->Panel.Graphic->Height); -#endif } menupanel = menupanel->Next; } diff --git a/src/video/graphic.cpp b/src/video/graphic.cpp index 79ff8a2d2..1324fb6ff 100644 --- a/src/video/graphic.cpp +++ b/src/video/graphic.cpp @@ -41,8 +41,6 @@ #include "stratagus.h" #include "video.h" #include "map.h" -#include "iolib.h" -#include "iocompat.h" #include "intern_video.h" /*---------------------------------------------------------------------------- @@ -317,27 +315,6 @@ global void FlipGraphic(Graphic* graphic) #endif } -/** -** Make a new graphic object. -** -** @param depth Pixel depth of the object (8,16,32) -** @param width Pixel width. -** @param height Pixel height. -*/ -global Graphic* NewGraphic(unsigned depth, int width, int height) -{ - void* data; - int size; - - size = width * height * (depth + 7) / 8; - data = malloc(size); -#ifdef DEBUG - AllocatedGraphicMemory += size; -#endif - - return MakeGraphic(depth, width, height, data, size); -} - /** ** Make an OpenGL texture or textures out of a graphic object. ** @@ -493,8 +470,7 @@ global void MakePlayerColorTexture(Graphic** g, Graphic* graphic, int frame, SDL_UnlockSurface(graphic->Surface); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, tex); #ifdef DEBUG - i = glGetError(); - if (i) { + if ((i = glGetError())) { DebugLevel0Fn("glTexImage2D(%x)\n" _C_ i); } #endif @@ -555,6 +531,12 @@ global void ResizeGraphic(Graphic* g, int w, int h) g->Height = h; free(g->Data); g->Data = data; + +#ifdef USE_OPENGL + glDeleteTextures(g->NumTextureNames, g->TextureNames); + free(g->TextureNames); + MakeTexture(g, g->Width, g->Height); +#endif } /** @@ -566,19 +548,7 @@ global void ResizeGraphic(Graphic* g, int w, int h) */ global Graphic* LoadGraphic(const char* name) { - Graphic* graphic; - char buf[PATH_MAX]; - - // TODO: More formats? - if (!(graphic = LoadGraphicPNG(LibraryFileName(name, buf)))) { - fprintf(stderr, "Can't load the graphic `%s'\n", name); - ExitFatal(-1); - } - - graphic->NumFrames = 1; - VideoPaletteListAdd(graphic->Surface); - - return graphic; + return LoadSprite(name, 0, 0); } /** diff --git a/src/video/sprite.cpp b/src/video/sprite.cpp index 933f0ca07..384a4a610 100644 --- a/src/video/sprite.cpp +++ b/src/video/sprite.cpp @@ -41,6 +41,8 @@ #include "stratagus.h" #include "video.h" +#include "iocompat.h" +#include "iolib.h" #include "intern_video.h" @@ -408,8 +410,14 @@ local void FreeSprite(Graphic* graphic) global Graphic* LoadSprite(const char* name, int width, int height) { Graphic* g; + char buf[PATH_MAX]; - g = LoadGraphic(name); + // TODO: More formats? + if (!(g = LoadGraphicPNG(LibraryFileName(name, buf)))) { + fprintf(stderr, "Can't load the graphic `%s'\n", name); + ExitFatal(-1); + } + VideoPaletteListAdd(g->Surface); if (!width) { width = g->Width; diff --git a/src/video/video.cpp b/src/video/video.cpp index fe65d082d..888c2f889 100644 --- a/src/video/video.cpp +++ b/src/video/video.cpp @@ -395,9 +395,6 @@ global void DisplayPicture(const char* name) picture = LoadGraphic(name); ResizeGraphic(picture, VideoWidth, VideoHeight); -#ifdef USE_OPENGL - MakeTexture(picture, picture->Width, picture->Height); -#endif #ifndef USE_OPENGL // Unset the alpha color key, not needed @@ -411,34 +408,6 @@ global void DisplayPicture(const char* name) VideoFree(picture); } -// FIXME: this isn't 100% correct -// Color cycling info - forest: -// 3 flash red/green (attacked building on minimap) -// 38-47 cycle (water) -// 48-56 cycle (water-coast boundary) -// 202 pulsates red (Circle of Power) -// 240-244 cycle (water around ships, Runestone, Dark Portal) -// Color cycling info - swamp: -// 3 flash red/green (attacked building on minimap) -// 4 pulsates red (Circle of Power) -// 5-9 cycle (Runestone, Dark Portal) -// 38-47 cycle (water) -// 88-95 cycle (waterholes in coast and ground) -// 240-244 cycle (water around ships) -// Color cycling info - wasteland: -// 3 flash red/green (attacked building on minimap) -// 38-47 cycle (water) -// 64-70 cycle (coast) -// 202 pulsates red (Circle of Power) -// 240-244 cycle (water around ships, Runestone, Dark Portal) -// Color cycling info - winter: -// 3 flash red/green (attacked building on minimap) -// 40-47 cycle (water) -// 48-54 cycle (half-sunken ice-floe) -// 202 pulsates red (Circle of Power) -// 205-207 cycle (lights on christmas tree) -// 240-244 cycle (water around ships, Runestone, Dark Portal) - /** ** Color cycle. */