#include #ifdef MAP_EDITOR2 #include "../map_editor2/global.h" #else #include "global.h" #include "textures.h" #endif int use_alpha_border = 1; int alpha_border_tex = 0; void draw_window_alphaborder(window_info *win) { int w = win->len_x, h= win->len_y; // width, height if (!alpha_border_tex) { alpha_border_tex= load_texture_cache_deferred("textures/alphaborder.bmp", 0); if (!alpha_border_tex) return; } glColor3fv(win->back_color); glBegin(GL_LINE_LOOP); glVertex3i(0, 0, 0); glVertex3i(w, 0, 0); glVertex3i(w, h, 0); glVertex3i(0, h, 0); glEnd(); // The higher the alpha value (a=r+g+b/3) in the border texture, // the darker the shadow glEnable(GL_BLEND); glBlendFunc(GL_ZERO, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_TEXTURE_2D); get_and_set_texture_id(alpha_border_tex); glBegin(GL_QUADS); /* * * r===============================i * 11| |99 * 111| |999 * 111| |999 * 222| |888 * 222| |888 * 222| |888 * 222| |888 * 222| |888 * 222| |888 * 222| |888 * 222| |888 * 222| |888 * 222| |888 * 222| |888 * 222| |888 * 222'-------------------------------'888 * 333444555555555555555555555555555666777 * 333444555555555555555555555555555666777 * 3344455555555555555555555555555566677 * 4455555555555555555555555555566 */ glTexCoord2f(1.0f, 0.0f); glVertex2i( - 8, 0); glTexCoord2f(1.0f, 0.5f); glVertex2i( 0, 0); glTexCoord2f(0.5f, 0.5f); glVertex2i( 0, 16); glTexCoord2f(0.5f, 0.0f); glVertex2i( - 8, 16); glTexCoord2f(0.5f, 0.0f); glVertex2i( - 8, 16); glTexCoord2f(0.5f, 0.5f); glVertex2i( 0, 16); glTexCoord2f(0.1f, 0.5f); glVertex2i( 0, h ); glTexCoord2f(0.1f, 0.0f); glVertex2i( - 8, h ); glTexCoord2f(0.5f, 0.0f); glVertex2i( - 8, h ); glTexCoord2f(0.5f, 0.5f); glVertex2i( 0, h ); glTexCoord2f(1.0f, 0.5f); glVertex2i( 0, h+16); glTexCoord2f(1.0f, 0.0f); glVertex2i( - 8, h+16); glTexCoord2f(0.5f, 0.5f); glVertex2i( 0, h ); glTexCoord2f(0.5f, 1.0f); glVertex2i( 8, h ); glTexCoord2f(1.0f, 1.0f); glVertex2i( 8, h+16); glTexCoord2f(1.0f, 0.5f); glVertex2i( 0, h+16); glTexCoord2f(0.1f, 1.0f); glVertex2i( 8, h ); glTexCoord2f(0.5f, 1.0f); glVertex2i(w- 8, h ); glTexCoord2f(0.5f, 0.0f); glVertex2i(w- 8, h+16); glTexCoord2f(0.1f, 0.0f); glVertex2i( 8, h+16); glTexCoord2f(0.5f, 1.0f); glVertex2i(w- 8, h ); glTexCoord2f(0.5f, 0.5f); glVertex2i(w , h ); glTexCoord2f(1.0f, 0.5f); glVertex2i(w , h+16); glTexCoord2f(1.0f, 1.0f); glVertex2i(w- 8, h+16); glTexCoord2f(0.5f, 0.5f); glVertex2i(w , h ); glTexCoord2f(0.5f, 0.0f); glVertex2i(w+ 8, h ); glTexCoord2f(1.0f, 0.0f); glVertex2i(w+ 8, h+16); glTexCoord2f(1.0f, 0.5f); glVertex2i(w , h+16); glTexCoord2f(0.1f, 0.5f); glVertex2i(w , 16); glTexCoord2f(0.1f, 0.0f); glVertex2i(w+ 8, 16); glTexCoord2f(0.5f, 0.0f); glVertex2i(w+ 8, h ); glTexCoord2f(0.5f, 0.5f); glVertex2i(w , h ); glTexCoord2f(1.0f, 0.5f); glVertex2i(w , 0); glTexCoord2f(1.0f, 0.0f); glVertex2i(w+ 8, 0); glTexCoord2f(0.5f, 0.0f); glVertex2i(w+ 8, 16); glTexCoord2f(0.5f, 0.5f); glVertex2i(w , 16); glEnd(); glDisable(GL_TEXTURE_2D); glDisable(GL_BLEND); #ifdef OPENGL_TRACE CHECK_GL_ERRORS(); #endif //OPENGL_TRACE }