Class TVRMLOpenGLRendererContextCache

DescriptionHierarchyFieldsMethodsProperties

Unit

Declaration

type TVRMLOpenGLRendererContextCache = class(TImagesVideosCache)

Description

This is a cache that may be used by many TVRMLOpenGLRenderer instances to share some common resources related to this OpenGL context.

For examples, texture names and OpenGL display lists for fonts. Such things can usually be shared by all TVRMLOpenGLRenderer instances used within the same OpenGL context. And this may save a lot of memory if you use many TVRMLOpenGLRenderer instances in your program.

Instance of this class is tied to particular OpenGL context if and only if there are some TVRMLOpenGLRenderer instances using this cache and tied to that OpenGL context.

Hierarchy

Overview

Methods

Public constructor Create;
Public destructor Destroy; override;
Public function Fonts_IncReference( fsfam: TVRMLFontFamily; fsbold: boolean; fsitalic: boolean; TTF_Font: PTrueTypeFont): TGLOutlineFont;
Public procedure Fonts_DecReference( fsfam: TVRMLFontFamily; fsbold: boolean; fsitalic: boolean);
Public function ShapeState_IncReference_Existing( AAttributes: TVRMLRenderingAttributes; AGeometryNode: TVRMLGeometryNode; AState: TVRMLGraphTraverseState; AFogNode: TNodeFog; const AFogDistanceScaling: Single; out AGLList: TGLuint): boolean;
Public procedure ShapeState_IncReference_New( AAttributes: TVRMLRenderingAttributes; AGeometryNode: TVRMLGeometryNode; AState: TVRMLGraphTraverseState; AFogNode: TNodeFog; const AFogDistanceScaling: Single; AGLList: TGLuint);
Public procedure ShapeState_DecReference( const GLList: TGLuint);
Public function ShapeStateNoTransform_IncReference_Existing( AAttributes: TVRMLRenderingAttributes; AGeometryNode: TVRMLGeometryNode; AState: TVRMLGraphTraverseState; AFogNode: TNodeFog; const AFogDistanceScaling: Single; out AGLList: TGLuint): boolean;
Public procedure ShapeStateNoTransform_IncReference_New( AAttributes: TVRMLRenderingAttributes; AGeometryNode: TVRMLGeometryNode; AState: TVRMLGraphTraverseState; AFogNode: TNodeFog; const AFogDistanceScaling: Single; AGLList: TGLuint);
Public procedure ShapeStateNoTransform_DecReference( const GLList: TGLuint);
Public function RenderBegin_IncReference_Existing( AAttributes: TVRMLRenderingAttributes; AFogNode: TNodeFog; const AFogDistanceScaling: Single; out AGLList: TGLuint): boolean;
Public procedure RenderBegin_IncReference_New( AAttributes: TVRMLRenderingAttributes; AFogNode: TNodeFog; const AFogDistanceScaling: Single; AGLList: TGLuint);
Public procedure RenderBegin_DecReference( const GLList: TGLuint);
Public function RenderEnd_IncReference_Existing( AAttributes: TVRMLRenderingAttributes; AFogNode: TNodeFog; const AFogDistanceScaling: Single; out AGLList: TGLuint): boolean;
Public procedure RenderEnd_IncReference_New( AAttributes: TVRMLRenderingAttributes; AFogNode: TNodeFog; const AFogDistanceScaling: Single; AGLList: TGLuint);
Public procedure RenderEnd_DecReference( const GLList: TGLuint);

Description

Methods

Public constructor Create;
 
Public destructor Destroy; override;
 
Public function Fonts_IncReference( fsfam: TVRMLFontFamily; fsbold: boolean; fsitalic: boolean; TTF_Font: PTrueTypeFont): TGLOutlineFont;
 
Public procedure Fonts_DecReference( fsfam: TVRMLFontFamily; fsbold: boolean; fsitalic: boolean);
 
Public function ShapeState_IncReference_Existing( AAttributes: TVRMLRenderingAttributes; AGeometryNode: TVRMLGeometryNode; AState: TVRMLGraphTraverseState; AFogNode: TNodeFog; const AFogDistanceScaling: Single; out AGLList: TGLuint): boolean;

These will be used by TVRMLGLScene.

Note that we have two versions of ShapeState_IncReference, because if the list will already exist in the cache then we don't want to waste time on creating and immediately freeing unnecessary list. you should call ShapeState_IncReference_Existing, and if False then you should build display list and call ShapeState_IncReference_New.

Public procedure ShapeState_IncReference_New( AAttributes: TVRMLRenderingAttributes; AGeometryNode: TVRMLGeometryNode; AState: TVRMLGraphTraverseState; AFogNode: TNodeFog; const AFogDistanceScaling: Single; AGLList: TGLuint);
 
Public procedure ShapeState_DecReference( const GLList: TGLuint);
 
Public function ShapeStateNoTransform_IncReference_Existing( AAttributes: TVRMLRenderingAttributes; AGeometryNode: TVRMLGeometryNode; AState: TVRMLGraphTraverseState; AFogNode: TNodeFog; const AFogDistanceScaling: Single; out AGLList: TGLuint): boolean;
 
Public procedure ShapeStateNoTransform_IncReference_New( AAttributes: TVRMLRenderingAttributes; AGeometryNode: TVRMLGeometryNode; AState: TVRMLGraphTraverseState; AFogNode: TNodeFog; const AFogDistanceScaling: Single; AGLList: TGLuint);
 
Public procedure ShapeStateNoTransform_DecReference( const GLList: TGLuint);
 
Public function RenderBegin_IncReference_Existing( AAttributes: TVRMLRenderingAttributes; AFogNode: TNodeFog; const AFogDistanceScaling: Single; out AGLList: TGLuint): boolean;
 
Public procedure RenderBegin_IncReference_New( AAttributes: TVRMLRenderingAttributes; AFogNode: TNodeFog; const AFogDistanceScaling: Single; AGLList: TGLuint);
 
Public procedure RenderBegin_DecReference( const GLList: TGLuint);
 
Public function RenderEnd_IncReference_Existing( AAttributes: TVRMLRenderingAttributes; AFogNode: TNodeFog; const AFogDistanceScaling: Single; out AGLList: TGLuint): boolean;
 
Public procedure RenderEnd_IncReference_New( AAttributes: TVRMLRenderingAttributes; AFogNode: TNodeFog; const AFogDistanceScaling: Single; AGLList: TGLuint);
 
Public procedure RenderEnd_DecReference( const GLList: TGLuint);
 

Generated by PasDoc 0.11.0 on 2008-09-12 11:58:45