Search
lxdream.org :: lxdream/src/drivers/gl_common.h
lxdream 0.9.1
released Jun 29
Download Now
filename src/drivers/gl_common.h
changeset 545:fdcdcd8b9fd1
prev477:9a373f2ff009
next561:533f6b478071
author nkeynes
date Thu Nov 29 09:28:28 2007 +0000 (12 years ago)
permissions -rw-r--r--
last change Refactor GLX support and implement pbuffer rendering support
view annotate diff log raw
     1 /**
     2  * $Id: gl_common.h,v 1.5 2007-10-31 09:10:23 nkeynes Exp $
     3  *
     4  * Parent for all X11 display drivers.
     5  *
     6  * Copyright (c) 2005 Nathan Keynes.
     7  *
     8  * This program is free software; you can redistribute it and/or modify
     9  * it under the terms of the GNU General Public License as published by
    10  * the Free Software Foundation; either version 2 of the License, or
    11  * (at your option) any later version.
    12  *
    13  * This program is distributed in the hope that it will be useful,
    14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16  * GNU General Public License for more details.
    17  */
    19 #ifndef video_gl_common_H
    20 #define video_gl_common_H
    22 #include "display.h"
    24 /**
    25  * Test if a specific extension is supported. From opengl.org
    26  * @param extension extension name to check for
    27  * @return TRUE if supported, otherwise FALSE.
    28  */
    29 gboolean isGLExtensionSupported( const char *extension );
    31 gboolean hasRequiredGLExtensions();
    33 /**
    34  * Generic GL routine to draw the given frame buffer into a texture
    35  */
    36 gboolean gl_load_frame_buffer( frame_buffer_t frame, int tex_id );
    38 /**
    39  * Generic GL routine to blank the display view with the specified colour.
    40  */
    41 gboolean gl_display_blank( uint32_t colour );
    43 /**
    44  * Write a rectangular texture (GL_TEXTURE_RECTANGLE_ARB) to the display frame
    45  */
    46 void gl_display_render_buffer( render_buffer_t buffer );
    48 /**
    49  * Write a rectangular texture (GL_TEXTURE_RECTANGLE_ARB) to the display frame
    50  */
    51 void gl_texture_window( int width, int height, int tex_id, gboolean inverted );
    53 /**
    54  * Redisplay the last frame.
    55  */
    56 void gl_redisplay_last();
    58 /**
    59  * Generic GL read_render_buffer. This function assumes that the caller
    60  * has already set the appropriate glReadBuffer(); in other words, unless
    61  * there's only one buffer this needs to be wrapped.
    62  */
    63 gboolean gl_read_render_buffer( unsigned char *target, render_buffer_t buffer, 
    64 				int rowstride, int colour_format );
    67 /****** FBO handling (gl_fbo.c) ******/
    68 gboolean gl_fbo_is_supported();
    69 void gl_fbo_shutdown();
    70 void gl_fbo_init( display_driver_t driver );
    71 void gl_fbo_detach();
    73 /****** Shader handling (gl_sl.c) *****/
    74 gboolean glsl_is_supported(void);
    75 gboolean glsl_load_shaders( const char *vert_shader, const char *frag_shader );
    76 void glsl_unload_shaders(void);
    78 extern const char *glsl_vertex_shader_src;
    79 extern const char *glsl_fragment_shader_src;
    81 #endif /* !video_gl_common_H */
.