Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

line_drawing.C File Reference

Contains the implementation of the classes that implement the "Line Drawing" rendering style gTexture. More...

#include <iostream>
#include <vector>
#include <algorithm>
#include <typeinfo>
#include <cstring>
#include <cassert>
#include "gtex/gl_extensions.H"
#include "gtex/rendering_mode.H"
#include "gtex/basic_texture.H"
#include "gtex/solid_color.H"
#include "gtex/line_drawing.H"
#include "mlib/points.H"

Include dependency graph for line_drawing.C:

Go to the source code of this file.

Classes

class  LineDrawingRenderingMode
 The abstract interface for a "Line Drawing" sytle rendering mode. More...
class  LineDrawingRenderingMode::LineDrawingStripCB
class  LineDrawingVprogFprogNoSSDMode
 A rendering mode for the "Line Drawing" rendering style that uses OpenGL ARB vertex and fragment programs without screen space derivatives (multitexturing is used instead). More...
class  LineDrawingVprogFprogNoSSDMode::StripCB
 Handles callbacks for drawing triangle strips for the "Line Drawing" rendering style. More...
class  LineDrawingGLSLMode
 A rendering mode for the "Line Drawing" rendering style that uses the OpenGL shading language. More...
class  LineDrawingGLSLMode::StripCB
 Handles callbacks for drawing triangle strips for the "Line Drawing" rendering style. More...
class  LineDrawingRenderingModeSelectionPolicy

Typedefs

typedef RenderingModeSingleton<
LineDrawingRenderingModeSelectionPolicy
LineDrawingModeSingleton

Functions

static GLuint load_ARB_program (const char *header, GLenum target, const char *program_string)
GLhandleARB load_ARB_shader (const char *header, GLenum shader_type, const char *shader_string)
bool link_ARB_shader (const char *header, GLhandleARB prog_handle)
void print_ARB_infolog (GLhandleARB object)
void maketexture (double width, double fadeout)
 Create a texture with a black line of the given width.

Variables

const char * LINE_DRAWING_VERTEX_PROGRAM_STR
const char * LINE_DRAWING_FRAGMENT_PROGRAM_NO_SSD_STR
const char * LINE_DRAWING_VERTEX_SHADER_STR
const char * LINE_DRAWING_FRAGMENT_SHADER_STR


Detailed Description

Contains the implementation of the classes that implement the "Line Drawing" rendering style gTexture.

Definition in file line_drawing.C.


Typedef Documentation

typedef RenderingModeSingleton<LineDrawingRenderingModeSelectionPolicy> LineDrawingModeSingleton
 

Definition at line 991 of file line_drawing.C.


Function Documentation

bool link_ARB_shader const char *  header,
GLhandleARB  prog_handle
 

Definition at line 1263 of file line_drawing.C.

References GL_OBJECT_LINK_STATUS_ARB, glGetObjectParameterivARB, glLinkProgramARB, and print_ARB_infolog().

Referenced by LineDrawingGLSLMode::LineDrawingGLSLMode().

GLuint load_ARB_program const char *  header,
GLenum  target,
const char *  program_string
[static]
 

Definition at line 1189 of file line_drawing.C.

References GLExtensions::gl_arb_fragment_program_loaded(), GLExtensions::gl_arb_vertex_program_loaded(), GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB, GL_VERTEX_PROGRAM_ARB, glBindProgramARB, glDeleteProgramsARB, glGenProgramsARB, and glProgramStringARB.

GLhandleARB load_ARB_shader const char *  header,
GLenum  shader_type,
const char *  shader_string
 

Definition at line 1232 of file line_drawing.C.

References GL_OBJECT_COMPILE_STATUS_ARB, glCompileShaderARB, glCreateShaderObjectARB, glDeleteObjectARB, glGetObjectParameterivARB, glShaderSourceARB, and print_ARB_infolog().

Referenced by LineDrawingGLSLMode::LineDrawingGLSLMode().

void maketexture double  width,
double  fadeout
 

Create a texture with a black line of the given width.

Call this after binding a valid texture object. That texture object will have its image data replaced with a 1024x1024 pixel image containing a black line of width width.

This function automatically computes mipmaps and turns on trilinear filtering (i.e. minification filter GL_LINEAR_MIPMAP_LINEAR).

Definition at line 1115 of file line_drawing.C.

References GL_CLAMP, GL_CLAMP_TO_EDGE, GL_LINEAR, GL_LINEAR_MIPMAP_LINEAR, GL_LUMINANCE, GL_TEXTURE_2D, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MAX_ANISOTROPY_EXT, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_UNPACK_ALIGNMENT, GL_UNSIGNED_BYTE, glPixelStorei(), glTexImage2D(), glTexParameterfv(), glTexParameteri(), max(), min(), and sqr().

Referenced by LineDrawingVprogFprogNoSSDMode::LineDrawingVprogFprogNoSSDMode().

void print_ARB_infolog GLhandleARB  object  ) 
 

Definition at line 1286 of file line_drawing.C.

References GL_OBJECT_INFO_LOG_LENGTH_ARB, glGetInfoLogARB, and glGetObjectParameterivARB.

Referenced by link_ARB_shader(), and load_ARB_shader().


Variable Documentation

const char* LINE_DRAWING_FRAGMENT_PROGRAM_NO_SSD_STR
 

Definition at line 206 of file line_drawing.C.

Referenced by LineDrawingVprogFprogNoSSDMode::LineDrawingVprogFprogNoSSDMode().

const char* LINE_DRAWING_FRAGMENT_SHADER_STR
 

Definition at line 356 of file line_drawing.C.

Referenced by LineDrawingGLSLMode::LineDrawingGLSLMode().

const char* LINE_DRAWING_VERTEX_PROGRAM_STR
 

Definition at line 29 of file line_drawing.C.

Referenced by LineDrawingVprogFprogNoSSDMode::LineDrawingVprogFprogNoSSDMode().

const char* LINE_DRAWING_VERTEX_SHADER_STR
 

Definition at line 282 of file line_drawing.C.

Referenced by LineDrawingGLSLMode::LineDrawingGLSLMode().


Generated on Mon Sep 18 11:41:56 2006 for jot by  doxygen 1.4.4