1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<title>Castle Game Engine: CastleRenderer: Class TGLRendererContextCache</title>
<meta name="generator" content="PasDoc 0.13.0">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="StyleSheet" type="text/css" href="pasdoc.css">
</head>
<body>
<table class="container"><tr><td class="navigation">
<h2>Castle Game Engine</h2><p><a href="introduction.html" class="navigation">Introduction</a></p><p><a href="AllUnits.html" class="navigation">Units</a></p><p><a href="ClassHierarchy.html" class="navigation">Class Hierarchy</a></p><p><a href="AllClasses.html" class="navigation">Classes, Interfaces, Objects and Records</a></p><p><a href="AllTypes.html" class="navigation">Types</a></p><p><a href="AllVariables.html" class="navigation">Variables</a></p><p><a href="AllConstants.html" class="navigation">Constants</a></p><p><a href="AllFunctions.html" class="navigation">Functions and Procedures</a></p><p><a href="AllIdentifiers.html" class="navigation">Identifiers</a></p></td><td class="content">
<a name="TGLRendererContextCache"></a><h1 class="cio">Class TGLRendererContextCache</h1>
<table class="sections wide_list">
<tr>
<td><a class="section" href="#PasDoc-Description">Description</a></td><td><a class="section" href="#PasDoc-Hierarchy">Hierarchy</a></td><td>Fields</td><td><a class="section" href="#PasDoc-Methods">Methods</a></td><td>Properties</td></tr></table>
<a name="PasDoc-Description"></a><h2 class="unit">Unit</h2>
<p class="unitlink">
<a href="CastleRenderer.html">CastleRenderer</a></p>
<h2 class="declaration">Declaration</h2>
<p class="declaration">
<code>type TGLRendererContextCache = class(TObject)</code></p>
<h2 class="description">Description</h2>
<p>
Cache used by <a class="normal" href="CastleRenderer.TGLRenderer.html">TGLRenderer</a> instances to share OpenGL resources, like textures. This may save a lot of OpenGL memory when you use multiple renderers (for example, multiple <a class="normal" href="CastleScene.TCastleScene.html">TCastleScene</a> instances).
<p>The cache can only be shared by renderers in the same OpenGL context, or in shared OpenGL contexts. It cannot be reused in totally alien OpenGL contexts, as the OpenGL identifiers will simply not exist there. In practice, this should not be a problem, as our OpenGL contexts always share resources, and you will almost always just use a single instance of this cache inside <a class="normal" href="CastleScene.html#GLContextCache">GLContextCache</a>.</p>
<a name="PasDoc-Hierarchy"></a><h2 class="hierarchy">Hierarchy</h2>
<ul class="hierarchy"><li class="ancestor">TObject</li>
<li class="thisitem">TGLRendererContextCache</li></ul><h2 class="overview">Overview</h2>
<a name="PasDoc-Methods"></a><h3 class="summary">Methods</h3>
<table class="summary wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>constructor <b><a href="CastleRenderer.TGLRendererContextCache.html#Create">Create</a></b>;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>destructor <b><a href="CastleRenderer.TGLRendererContextCache.html#Destroy">Destroy</a></b>; override;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>function <b><a href="CastleRenderer.TGLRendererContextCache.html#Shape_IncReference">Shape_IncReference</a></b>(Shape: <a href="CastleRenderer.TX3DRendererShape.html">TX3DRendererShape</a>; Fog: <a href="X3DNodes.IAbstractFogObject.html">IAbstractFogObject</a>; ARenderer: <a href="CastleRenderer.TGLRenderer.html">TGLRenderer</a>): <a href="CastleRenderer.TShapeCache.html">TShapeCache</a>;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>procedure <b><a href="CastleRenderer.TGLRendererContextCache.html#Shape_DecReference">Shape_DecReference</a></b>(var ShapeCache: <a href="CastleRenderer.TShapeCache.html">TShapeCache</a>);</code></td>
</tr>
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>function <b><a href="CastleRenderer.TGLRendererContextCache.html#Program_IncReference">Program_IncReference</a></b>(ARenderer: <a href="CastleRenderer.TGLRenderer.html">TGLRenderer</a>; Shader: TShader; const ShapeNiceName: string): <a href="CastleRenderer.TShaderProgramCache.html">TShaderProgramCache</a>;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>procedure <b><a href="CastleRenderer.TGLRendererContextCache.html#Program_DecReference">Program_DecReference</a></b>(var ProgramCache: <a href="CastleRenderer.TShaderProgramCache.html">TShaderProgramCache</a>);</code></td>
</tr>
</table>
<h2 class="description">Description</h2>
<h3 class="detail">Methods</h3>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Create"></a><code>constructor <b>Create</b>;</code></td>
</tr>
<tr><td colspan="2">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Destroy"></a><code>destructor <b>Destroy</b>; override;</code></td>
</tr>
<tr><td colspan="2">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Shape_IncReference"></a><code>function <b>Shape_IncReference</b>(Shape: <a href="CastleRenderer.TX3DRendererShape.html">TX3DRendererShape</a>; Fog: <a href="X3DNodes.IAbstractFogObject.html">IAbstractFogObject</a>; ARenderer: <a href="CastleRenderer.TGLRenderer.html">TGLRenderer</a>): <a href="CastleRenderer.TShapeCache.html">TShapeCache</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
Shape cache. We return <a class="normal" href="CastleRenderer.TShapeCache.html">TShapeCache</a>, either taking an existing instance from cache or creating and adding a new one. Caller is responsible for checking are Arrays / Vbo zero and eventually initializing and setting.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Shape_DecReference"></a><code>procedure <b>Shape_DecReference</b>(var ShapeCache: <a href="CastleRenderer.TShapeCache.html">TShapeCache</a>);</code></td>
</tr>
<tr><td colspan="2">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Program_IncReference"></a><code>function <b>Program_IncReference</b>(ARenderer: <a href="CastleRenderer.TGLRenderer.html">TGLRenderer</a>; Shader: TShader; const ShapeNiceName: string): <a href="CastleRenderer.TShaderProgramCache.html">TShaderProgramCache</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
Shader program cache. We return <a class="normal" href="CastleRenderer.TShaderProgramCache.html">TShaderProgramCache</a>, either taking an existing instance from cache or creating and adding a new one. If we create a new one, we will use Shader to initialize program hash and to create and link actual <a class="normal" href="CastleRenderer.TX3DGLSLProgram.html">TX3DGLSLProgram</a> instance.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a href="legend.html"><img src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Program_DecReference"></a><code>procedure <b>Program_DecReference</b>(var ProgramCache: <a href="CastleRenderer.TShaderProgramCache.html">TShaderProgramCache</a>);</code></td>
</tr>
<tr><td colspan="2">
</td></tr>
</table>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(["trackPageView"]);
_paq.push(["enableLinkTracking"]);
(function() {
var u=(("https:" == document.location.protocol) ? "https" : "http") + "://michalis.ii.uni.wroc.pl/piwik-castle-engine/";
_paq.push(["setTrackerUrl", u+"piwik.php"]);
_paq.push(["setSiteId", "1"]);
var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript";
g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Piwik Code -->
<noscript>
<!-- Piwik Image Tracker -->
<img src="http://michalis.ii.uni.wroc.pl/piwik-castle-engine/piwik.php?idsite=1&rec=1" style="border:0" alt="" />
<!-- End Piwik -->
</noscript>
<hr noshade size="1"><span class="appinfo"><em>Generated by <a href="http://pasdoc.sourceforge.net/">PasDoc 0.13.0</a> on 2015-06-15 04:43:11</em>
</span>
</td></tr></table></body></html>
|