File: CastleTextureImages.html

package info (click to toggle)
castle-game-engine 5.2.0-3
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 185,428 kB
  • sloc: pascal: 260,781; cpp: 1,363; objc: 713; makefile: 537; xml: 496; sh: 480; php: 4
file content (140 lines) | stat: -rw-r--r-- 10,198 bytes parent folder | download
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
135
136
137
138
139
140
<!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: CastleTextureImages</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">
<h1 class="unit">Unit CastleTextureImages</h1>
<table class="sections wide_list">
<tr>
<td><a class="section" href="#PasDoc-Description">Description</a></td><td><a class="section" href="#PasDoc-Uses">Uses</a></td><td><a class="section" href="#PasDoc-Classes">Classes, Interfaces, Objects and Records</a></td><td><a class="section" href="#PasDoc-FuncsProcs">Functions and Procedures</a></td><td>Types</td><td><a class="section" href="#PasDoc-Constants">Constants</a></td><td>Variables</td></tr></table>
<a name="PasDoc-Description"></a><h2 class="description">Description</h2>
<p>
Handling of images for textures. This unit is not OpenGL-specific, it should be suitable for all 3D libraries. See CastleGLImage for OpenGL-specific handling of textures and other images.

<p>Texture is any <a class="normal" href="CastleImages.TEncodedImage.html">TEncodedImage</a> instance. This includes not only a traditional 2D/3D matrix of pixels represented as <a class="normal" href="CastleImages.TCastleImage.html">TCastleImage</a>, but also a texture compressed for GPU (<a class="normal" href="CastleImages.TGPUCompressedImage.html">TGPUCompressedImage</a>). Moreover, a texture may have mipmaps defined &mdash; they are stored inside <a class="normal" href="CastleDDS.TDDSImage.html">TDDSImage</a> instance (that contains a list of <a class="normal" href="CastleImages.TEncodedImage.html">TEncodedImage</a>).

<p>Since not everything can really deal with such flexible definition of a texture, we decided to separate some routines specifically for textures. For example, you have <a class="normal" href="CastleTextureImages.html#LoadTextureImage">LoadTextureImage</a> to load full texture information &mdash; contrast this with <a class="normal" href="CastleImages.html#LoadImage">LoadImage</a> routine in <a class="normal" href="CastleImages.html">CastleImages</a> unit, that only returns <a class="normal" href="CastleImages.TCastleImage.html">TCastleImage</a> (a &quot;normal&quot; way to deal with image data).</p>
<a name="PasDoc-Uses"></a><h2 class="uses">Uses</h2>
<ul class="useslist"><li><a  href="CastleImages.html">CastleImages</a></li><li><a  href="CastleDDS.html">CastleDDS</a></li><li><a  href="CastleUtils.html">CastleUtils</a></li><li>FGL</li><li><a  href="CastleVideos.html">CastleVideos</a></li></ul><h2 class="overview">Overview</h2>
<a name="PasDoc-Classes"></a><h3 class="cio">Classes, Interfaces, Objects and Records</h3>
<table class="classestable wide_list">
<tr class="listheader">
<th class="itemname">Name</th>
<th class="itemdesc">Description</th>
</tr>
<tr class="list">
<td class="itemname">Class&nbsp;<a class="bold" href="CastleTextureImages.TTexturesVideosCache.html"><code>TTexturesVideosCache</code></a></td>
<td class="itemdesc">A cache of loaded images for textures.</td>
</tr>
</table>
<a name="PasDoc-FuncsProcs"></a><h3 class="summary">Functions and Procedures</h3>
<table class="summary wide_list">
<tr class="list">
<td class="itemcode"><code>function <b><a  href="CastleTextureImages.html#LoadTextureImage">LoadTextureImage</a></b>(const URL: string; out DDS: <a  href="CastleDDS.TDDSImage.html">TDDSImage</a>): <a  href="CastleImages.TEncodedImage.html">TEncodedImage</a>; overload;</code></td>
</tr>
<tr class="list2">
<td class="itemcode"><code>function <b><a  href="CastleTextureImages.html#LoadTextureImage">LoadTextureImage</a></b>(const URL: string): <a  href="CastleImages.TEncodedImage.html">TEncodedImage</a>; overload;</code></td>
</tr>
</table>
<a name="PasDoc-Constants"></a><h3 class="summary">Constants</h3>
<table class="summary wide_list">
<tr class="list">
<td class="itemcode"><code><b><a  href="CastleTextureImages.html#TextureImageClasses">TextureImageClasses</a></b>: array [0..3] of <a  href="CastleImages.html#TEncodedImageClass">TEncodedImageClass</a> = (
    <a  href="CastleImages.TRGBImage.html">TRGBImage</a>,
    <a  href="CastleImages.TRGBAlphaImage.html">TRGBAlphaImage</a>,
    <a  href="CastleImages.TGrayscaleImage.html">TGrayscaleImage</a>,
    <a  href="CastleImages.TGrayscaleAlphaImage.html">TGrayscaleAlphaImage</a>);</code></td>
</tr>
<tr class="list2">
<td class="itemcode"><code><b><a  href="CastleTextureImages.html#TextureImageClassesAll">TextureImageClassesAll</a></b>: array [0..5] of <a  href="CastleImages.html#TEncodedImageClass">TEncodedImageClass</a> = (
    <a  href="CastleImages.TRGBImage.html">TRGBImage</a>,
    <a  href="CastleImages.TRGBAlphaImage.html">TRGBAlphaImage</a>,
    <a  href="CastleImages.TGrayscaleImage.html">TGrayscaleImage</a>,
    <a  href="CastleImages.TGrayscaleAlphaImage.html">TGrayscaleAlphaImage</a>,
    <a  href="CastleImages.TGPUCompressedImage.html">TGPUCompressedImage</a>,
    <a  href="CastleImages.TRGBFloatImage.html">TRGBFloatImage</a>);</code></td>
</tr>
</table>
<h2 class="description">Description</h2>
<h3 class="detail">Functions and Procedures</h3>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="LoadTextureImage"></a><code>function <b>LoadTextureImage</b>(const URL: string; out DDS: <a  href="CastleDDS.TDDSImage.html">TDDSImage</a>): <a  href="CastleImages.TEncodedImage.html">TEncodedImage</a>; overload;</code></td>
</tr>
<tr><td colspan="1">
<p>
Load image suitable for a texture. This will load image to memory formats supported by common 3D libraries (like OpenGL), for example it will never return <a class="normal" href="CastleImages.TRGBFloatImage.html">TRGBFloatImage</a> (although OpenGL may support it, but we cannot be sure at this point). It may return texture compressed using one of the GPU compression algorithms (see <a class="normal" href="CastleImages.html#TGPUCompression">TGPUCompression</a>).

<p>If the image comes from a DDS file, it will also return it (if not, DDS returned will be <code>Nil</code>). This allows you to e.g. use texture mipmaps recorded there. Note that DDS.OwnsFirstImage is set to <code>False</code>, so you can always safely free everything by simple <code>FreeAndNil(Image); FreeAndNil(DDS);</code>.

<p>Overloaded version without DDS parameter assumes you're not interested in this information (still it handles DDS files of course, it just doesn't return DDS object instance).

<p></p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="LoadTextureImage"></a><code>function <b>LoadTextureImage</b>(const URL: string): <a  href="CastleImages.TEncodedImage.html">TEncodedImage</a>; overload;</code></td>
</tr>
<tr><td colspan="1">
&nbsp;</td></tr>
</table>
<h3 class="detail">Constants</h3>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TextureImageClasses"></a><code><b>TextureImageClasses</b>: array [0..3] of <a  href="CastleImages.html#TEncodedImageClass">TEncodedImageClass</a> = (
    <a  href="CastleImages.TRGBImage.html">TRGBImage</a>,
    <a  href="CastleImages.TRGBAlphaImage.html">TRGBAlphaImage</a>,
    <a  href="CastleImages.TGrayscaleImage.html">TGrayscaleImage</a>,
    <a  href="CastleImages.TGrayscaleAlphaImage.html">TGrayscaleAlphaImage</a>);</code></td>
</tr>
<tr><td colspan="1">
<p>
Image classes that are handled by absolutely all OpenGL versions.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TextureImageClassesAll"></a><code><b>TextureImageClassesAll</b>: array [0..5] of <a  href="CastleImages.html#TEncodedImageClass">TEncodedImageClass</a> = (
    <a  href="CastleImages.TRGBImage.html">TRGBImage</a>,
    <a  href="CastleImages.TRGBAlphaImage.html">TRGBAlphaImage</a>,
    <a  href="CastleImages.TGrayscaleImage.html">TGrayscaleImage</a>,
    <a  href="CastleImages.TGrayscaleAlphaImage.html">TGrayscaleAlphaImage</a>,
    <a  href="CastleImages.TGPUCompressedImage.html">TGPUCompressedImage</a>,
    <a  href="CastleImages.TRGBFloatImage.html">TRGBFloatImage</a>);</code></td>
</tr>
<tr><td colspan="1">
<p>
All image classes that may be handled by OpenGL. Some of them may require specific OpenGL extensions or versions (like GPU-compressed or float textures).</p>
</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&amp;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:12</em>
</span>
</td></tr></table></body></html>