Fixed many opengl glitches
authorBradley Bell <btb@icculus.org>
Fri, 28 Feb 2003 11:27:05 +0000 (11:27 +0000)
committerBradley Bell <btb@icculus.org>
Fri, 28 Feb 2003 11:27:05 +0000 (11:27 +0000)
ChangeLog
libmve/mveplay.c
main/gameseq.c
main/menu.c
main/movie.c

index c24afe3..6a74331 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,8 @@
 2003-02-28  Bradley Bell  <btb@icculus.org>
 
-       * 2d/pcx.c, arch/ogl/gr.c, main/inferno.c, main/movie.c,
-       main/newmenu.c: Fixed many opengl glitches
+       * 2d/pcx.c, arch/ogl/gr.c, libmve/mveplay.c, main/gameseq.c,
+       main/inferno.c, main/menu.c, main/movie.c, main/newmenu.c: Fixed
+       many opengl glitches
 
 2003-02-27  Bradley Bell  <btb@icculus.org>
 
index 941acde..4d95b0d 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: mveplay.c,v 1.5 2003-02-19 20:52:57 btb Exp $ */
+/* $Id: mveplay.c,v 1.6 2003-02-28 11:27:05 btb Exp $ */
 #ifdef HAVE_CONFIG_H
 #include <conf.h>
 #endif
@@ -647,11 +647,11 @@ static int display_video_handler(unsigned char major, unsigned char minor, unsig
        if (g_destY == -1) // center it
                g_destY = (g_screenHeight - g_height) >> 1;
 
+       gr_palette_load(g_palette);
+
        gr_bitmap(g_destX, g_destY, bitmap);
 
        gr_free_sub_bitmap(bitmap);
-
-       gr_palette_load(g_palette);
 #endif
        g_frameUpdated = 1;
 
index b90990e..eb9f93b 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: gameseq.c,v 1.16 2003-02-25 04:45:31 btb Exp $ */
+/* $Id: gameseq.c,v 1.17 2003-02-28 11:27:05 btb Exp $ */
 /*
 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
@@ -17,7 +17,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
 #endif
 
 #ifdef RCS
-char gameseq_rcsid[] = "$Id: gameseq.c,v 1.16 2003-02-25 04:45:31 btb Exp $";
+char gameseq_rcsid[] = "$Id: gameseq.c,v 1.17 2003-02-28 11:27:05 btb Exp $";
 #endif
 
 #ifdef WINDOWS
@@ -926,7 +926,7 @@ void LoadLevel(int level_num,int page_in_textures)
 //     WIN(LoadCursorWin(MOUSE_WAIT_CURSOR));
 //     WIN(ShowCursorW());
 
-#if defined(POLY_ACC)
+#if 1 //defined(POLY_ACC) || defined(OGL)
     gr_palette_load(gr_palette);
     show_boxed_message(TXT_LOADING);
 #else
@@ -2139,6 +2139,7 @@ void ShowLevelIntro(int level_num)
                                {
                                        if (intro_movie[i].level_num == level_num)
                                        {
+                                               Screen_mode = -1;
                                                PlayMovie(intro_movie[i].movie_name,MOVIE_REQUIRED);
                                                movie=1;
                                                break;
index e271677..145a0d7 100644 (file)
@@ -234,6 +234,9 @@ try_again:;
                                        mouse_set_mode(1);                              //re-enable centering mode
                                        HideCursorW();
                                        #endif
+#ifdef OGL
+                                       Screen_mode = -1;
+#endif
                                        PlayMovie("intro.mve",0);
                                        songs_play_song(SONG_TITLE,1);
                                        *last_key = -3; //exit menu to force redraw even if not going to game mode. -3 tells menu system not to restore
index 116173a..26a0528 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: movie.c,v 1.23 2003-02-28 09:56:10 btb Exp $ */
+/* $Id: movie.c,v 1.24 2003-02-28 11:27:05 btb Exp $ */
 /*
 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
@@ -17,7 +17,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
 #endif
 
 #ifdef RCS
-static char rcsid[] = "$Id: movie.c,v 1.23 2003-02-28 09:56:10 btb Exp $";
+static char rcsid[] = "$Id: movie.c,v 1.24 2003-02-28 11:27:05 btb Exp $";
 #endif
 
 #define DEBUG_LEVEL CON_NORMAL
@@ -238,6 +238,9 @@ int RunMovie(char *filename, int hires_flag, int must_have,int dx,int dy)
        int track = 0;
        int frame_num;
        int key;
+#ifdef OGL
+       char pal_save[768];
+#endif
 
        result=1;
 
@@ -258,6 +261,9 @@ int RunMovie(char *filename, int hires_flag, int must_have,int dx,int dy)
        }
 #ifdef OGL
        set_screen_mode(SCREEN_MENU);
+       gr_copy_palette(pal_save, gr_palette, 768);
+       memset(gr_palette, 0, 768);
+       gr_palette_load(gr_palette);
 #endif
 
        if (MVE_rmPrepMovie(filehndl, dx, dy, track)) {
@@ -310,6 +316,10 @@ int RunMovie(char *filename, int hires_flag, int must_have,int dx,int dy)
        // Restore old graphic state
 
        Screen_mode=-1;  //force reset of screen mode
+#ifdef OGL
+       gr_copy_palette(gr_palette, pal_save, 768);
+       gr_palette_load(pal_save);
+#endif
 
        return (aborted?MOVIE_ABORTED:MOVIE_PLAYED_FULL);
 }