- added GCC warning -Wstrict-prototypes
[blender.git] / source / blender / editors / include / BIF_glutil.h
index 93ca90ce12f9152c83c9ae878544d61607e1b3e4..3fa07da0437ad24678f3d4ea31f3392c3626507a 100644 (file)
@@ -1,19 +1,12 @@
 /**
- * @file BIF_glutil.h
- * 
- * OpenGL drawing utility functions.
- * 
- * $Id: BIF_glutil.h 10207 2007-03-06 03:39:15Z halley $
+ * $Id$
  *
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License.  See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
  * All rights reserved.
  *
- * The Original Code is: all of this file.
+ * Contributor(s): Blender Foundation 2002-2008
  *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
  */
 
 #ifndef BIF_GLUTIL_H
 struct rcti;
 struct rctf;
 
+void fdrawbezier(float vec[4][3]);
+void fdrawline(float x1, float y1, float x2, float y2);
+void fdrawbox(float x1, float y1, float x2, float y2);
+void sdrawline(short x1, short y1, short x2, short y2);
+void sdrawtri(short x1, short y1, short x2, short y2);
+void sdrawtrifill(short x1, short y1, short x2, short y2);
+void sdrawbox(short x1, short y1, short x2, short y2);
+
 void sdrawXORline(int x0, int y0, int x1, int y1);
 void sdrawXORline4(int nr, int x0, int y0, int x1, int y1);
 
 void fdrawXORellipse(float xofs, float yofs, float hw, float hh);
 void fdrawXORcirc(float xofs, float yofs, float rad);
 
-       /**
-        * Draw an XOR'd line in the front buffer between
-        * the given points. 
-        *
-        * @attention This function also handles flushing the GL
-        * pipeline, which means it is inappropriate for drawing
-        * a large number of lines at once.
-        */
-void glutil_draw_front_xor_line(int x0, int y0, int x1, int y1);
+/* glStipple defines */
+extern unsigned char stipple_halftone[128];
+extern unsigned char stipple_quarttone[128];
 
        /**
         * Draw a lined (non-looping) arc with the given
@@ -139,14 +132,17 @@ void glaDrawPixelsSafe            (float x, float y, int img_w, int img_h, int row_w, int
         * is expected to be in RGBA byte or float format, and the 
         * modelview and projection matrices are assumed to define a 
         * 1-to-1 mapping to screen space.
+        * @param gamma_correct Optionally gamma correct float sources to sRGB for display
         */
 
        /* only for float rects, converts to 32 bits and draws */
-void glaDrawPixelsSafe_to32(float fx, float fy, int img_w, int img_h, int row_w, float *rectf);
+void glaDrawPixelsSafe_to32(float fx, float fy, int img_w, int img_h, int row_w, float *rectf, int gamma_correct);
 
 
 void glaDrawPixelsTex          (float x, float y, int img_w, int img_h, int format, void *rect);
 
+void glaDrawPixelsTexScaled(float x, float y, int img_w, int img_h, int format, void *rect, float scaleX, float scaleY);
+
        /* 2D Drawing Assistance */
 
        /** Define a 2D area (viewport, scissor, matrices) for OpenGL rendering.
@@ -201,17 +197,17 @@ void gla2DSetMap(gla2DDrawInfo *di, struct rctf *rect);
 /* use this for platform hacks. glPointSize is solved here */
 void bglBegin(int mode);
 void bglEnd(void);
+int bglPointHack(void);
 void bglVertex3fv(float *vec);
 void bglVertex3f(float x, float y, float z);
 void bglVertex2fv(float *vec);
 /* intel gfx cards frontbuffer problem */
 void bglFlush(void);
-int is_a_really_crappy_intel_card(void);
 void set_inverted_drawing(int enable);
-
+void setlinestyle(int nr);
 
 /* own working polygon offset */
-void bglPolygonOffset(float dist);
+void bglPolygonOffset(float viewdist, float dist);
 
 /* For caching opengl matrices (gluProject/gluUnProject) */
 typedef struct bglMats {