00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #include <GL/gl.h>
00036 #include <GL/glu.h>
00037 #include "video_init.h"
00038
00039 extern int texsize;
00040
00041 extern char *buffer;
00042
00043
00044 void setup_opengl( int w, int h )
00045 {
00046
00047
00048 glShadeModel( GL_SMOOTH);
00049
00050
00051
00052
00053
00054 glClearColor( 0, 0, 0, 0 );
00055
00056 glViewport( 0, 0, w, h );
00057
00058
00059
00060
00061 glMatrixMode(GL_TEXTURE);
00062 glLoadIdentity();
00063
00064
00065 glMatrixMode(GL_PROJECTION);
00066 glLoadIdentity();
00067
00068
00069 glMatrixMode(GL_MODELVIEW);
00070 glLoadIdentity();
00071
00072 glDrawBuffer(GL_BACK);
00073 glReadBuffer(GL_BACK);
00074 glEnable(GL_BLEND);
00075
00076 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
00077
00078 glEnable(GL_LINE_SMOOTH);
00079 glEnable(GL_POINT_SMOOTH);
00080 glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
00081 glClear(GL_COLOR_BUFFER_BIT);
00082
00083
00084
00085 glLineStipple(2, 0xAAAA);
00086
00087
00088 }
00089
00090 void CreateRenderTarget(int texsize,int *RenderTargetTextureID, int *RenderTarget )
00091 {
00092
00093 glGenTextures(1, RenderTargetTextureID);
00094 glBindTexture(GL_TEXTURE_2D, *RenderTargetTextureID);
00095 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
00096 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
00097 #if 0
00098
00099 *RenderTarget = SDL_GL_CreateRenderTarget(texsize,texsize, NULL);
00100 if ( *RenderTarget ) {
00101
00102 int value;
00103
00104
00105 SDL_GL_GetRenderTargetAttribute( *RenderTarget, SDL_GL_RED_SIZE, &value );
00106
00107 SDL_GL_GetRenderTargetAttribute( *RenderTarget, SDL_GL_GREEN_SIZE, &value );
00108
00109 SDL_GL_GetRenderTargetAttribute( *RenderTarget, SDL_GL_BLUE_SIZE, &value );
00110
00111 SDL_GL_GetRenderTargetAttribute( *RenderTarget, SDL_GL_ALPHA_SIZE, &value );
00112
00113 SDL_GL_GetRenderTargetAttribute( *RenderTarget, SDL_GL_DEPTH_SIZE, &value );
00114
00115
00116 SDL_GL_BindRenderTarget(*RenderTarget, *RenderTargetTextureID);
00117
00118 } else {
00119 #endif
00120
00121
00122
00123 buffer = malloc(3*texsize*texsize);
00124
00125 glBindTexture(GL_TEXTURE_2D, *RenderTargetTextureID);
00126 glTexImage2D(GL_TEXTURE_2D,
00127 0,
00128 GL_RGB,
00129 texsize, texsize,
00130 0,
00131 GL_RGB,
00132 GL_UNSIGNED_BYTE,
00133 buffer);
00134
00135
00136 }
00137
00138
00139
00140