filename | src/pvr2/glutil.h |
changeset | 1207:f7ca985659c6 |
prev | 1206:a9b41bcb8410 |
next | 1210:79bbd30363f4 |
author | nkeynes |
date | Tue Feb 07 11:20:00 2012 +1000 (12 years ago) |
permissions | -rw-r--r-- |
last change | Gen helper functions for uniform + attribute variables, along with the main program use, to provide a more usable interface to the shaders |
file | annotate | diff | log | raw |
nkeynes@635 | 1 | /** |
nkeynes@636 | 2 | * $Id$ |
nkeynes@635 | 3 | * |
nkeynes@635 | 4 | * GL-based support functions |
nkeynes@635 | 5 | * |
nkeynes@635 | 6 | * Copyright (c) 2005 Nathan Keynes. |
nkeynes@635 | 7 | * |
nkeynes@635 | 8 | * This program is free software; you can redistribute it and/or modify |
nkeynes@635 | 9 | * it under the terms of the GNU General Public License as published by |
nkeynes@635 | 10 | * the Free Software Foundation; either version 2 of the License, or |
nkeynes@635 | 11 | * (at your option) any later version. |
nkeynes@635 | 12 | * |
nkeynes@635 | 13 | * This program is distributed in the hope that it will be useful, |
nkeynes@635 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
nkeynes@635 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
nkeynes@635 | 16 | * GNU General Public License for more details. |
nkeynes@635 | 17 | */ |
nkeynes@635 | 18 | |
nkeynes@635 | 19 | #ifndef lxdream_glutil_H |
nkeynes@635 | 20 | #define lxdream_glutil_H |
nkeynes@635 | 21 | |
nkeynes@687 | 22 | #include <stdio.h> |
nkeynes@635 | 23 | #include "display.h" |
nkeynes@635 | 24 | |
nkeynes@736 | 25 | #ifdef __cplusplus |
nkeynes@736 | 26 | extern "C" { |
nkeynes@736 | 27 | #endif |
nkeynes@736 | 28 | |
nkeynes@635 | 29 | /** |
nkeynes@635 | 30 | * Test if a specific extension is supported. From opengl.org |
nkeynes@635 | 31 | * @param extension extension name to check for |
nkeynes@635 | 32 | * @return TRUE if supported, otherwise FALSE. |
nkeynes@635 | 33 | */ |
nkeynes@635 | 34 | gboolean isGLExtensionSupported( const char *extension ); |
nkeynes@635 | 35 | |
nkeynes@667 | 36 | /** |
nkeynes@687 | 37 | * Dump GL information to the output stream, usually for debugging purposes |
nkeynes@687 | 38 | */ |
nkeynes@687 | 39 | void glPrintInfo( FILE *out ); |
nkeynes@687 | 40 | |
nkeynes@687 | 41 | /** |
nkeynes@1150 | 42 | * Check for a GL error and print a message if there is one |
nkeynes@1150 | 43 | * @param context If not null, a string to be printed along side an error message |
nkeynes@1159 | 44 | * @return FALSE if there was an error, otherwise TRUE |
nkeynes@1150 | 45 | */ |
nkeynes@1150 | 46 | gboolean gl_check_error( const char *context ); |
nkeynes@1150 | 47 | /** |
nkeynes@667 | 48 | * Test if secondary color (GL_COLOR_SUM) is supported. |
nkeynes@667 | 49 | */ |
nkeynes@667 | 50 | gboolean isGLSecondaryColorSupported(); |
nkeynes@667 | 51 | |
nkeynes@667 | 52 | gboolean isGLVertexBufferSupported(); |
nkeynes@1134 | 53 | gboolean isGLVertexRangeSupported(); |
nkeynes@667 | 54 | gboolean isGLPixelBufferSupported(); |
nkeynes@1140 | 55 | gboolean isGLMultitextureSupported(); |
nkeynes@667 | 56 | gboolean isGLMirroredTextureSupported(); |
nkeynes@635 | 57 | |
nkeynes@1207 | 58 | /****** Extension variant wrangling *****/ |
nkeynes@1207 | 59 | |
nkeynes@1207 | 60 | |
nkeynes@1207 | 61 | |
nkeynes@1207 | 62 | |
nkeynes@635 | 63 | /****** Shader handling (gl_sl.c) *****/ |
nkeynes@635 | 64 | gboolean glsl_is_supported(void); |
nkeynes@1134 | 65 | const char *glsl_get_version(void); |
nkeynes@1130 | 66 | gboolean glsl_load_shaders( ); |
nkeynes@635 | 67 | void glsl_unload_shaders(void); |
nkeynes@1130 | 68 | void glsl_clear_shader(); |
nkeynes@635 | 69 | |
nkeynes@1134 | 70 | /* Convenience formatting function for driver use */ |
nkeynes@1134 | 71 | void fprint_extensions( FILE *out, const char *extensions ); |
nkeynes@1134 | 72 | |
nkeynes@736 | 73 | #ifdef __cplusplus |
nkeynes@736 | 74 | } |
nkeynes@736 | 75 | #endif |
nkeynes@736 | 76 | |
nkeynes@635 | 77 | #endif /* !lxdream_glutil_H */ |
.