* split TglBitmap into TglBitmap and TglBitmapData to be able to handle load, save...
[glBitmap.git] / doc / glBitmap.TglBitmap2D.html
index ce0232a..3e74fbc 100644 (file)
@@ -12,7 +12,7 @@
 <a name="TglBitmap2D"></a><h1 class="cio">Class TglBitmap2D</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><a class="section" href="#PasDoc-Fields">Fields</a></td><td><a class="section" href="#PasDoc-Methods">Methods</a></td><td><a class="section" href="#PasDoc-Properties">Properties</a></td></tr></table>
+<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><a class="section" href="#PasDoc-Properties">Properties</a></td></tr></table>
 <a name="PasDoc-Description"></a><h2 class="unit">Unit</h2>
 <p class="unitlink">
 <a  href="glBitmap.html">glBitmap</a></p>
 <code>type TglBitmap2D = class(<a class="normal" href="glBitmap.TglBitmap.html">TglBitmap</a>)</code></p>
 <h2 class="description">Description</h2>
 <p>
-wrapper class for 2-dimensional textures (OpenGL target = GL_TEXTURE_2D)</p>
+wrapper class for 2-dimensional textures (OpenGL target = GL_TEXTURE_2D) all operations on a bitmap object must be done from the render thread</p>
 <a name="PasDoc-Hierarchy"></a><h2 class="hierarchy">Hierarchy</h2>
 <ul class="hierarchy"><li class="ancestor">TObject</li>
 <li class="ancestor"><a class="normal" href="glBitmap.TglBitmap.html">TglBitmap</a></li>
 <li class="thisitem">TglBitmap2D</li></ul><h2 class="overview">Overview</h2>
-<a name="PasDoc-Fields"></a><h3 class="summary">Fields</h3>
-<table class="summary wide_list">
-<tr class="list">
-<td class="visibility"><a  href="legend.html"><img  src="protected.gif" alt="Protected" title="Protected"></a></td>
-<td class="itemcode"><code><b><a  href="glBitmap.TglBitmap2D.html#fLines">fLines</a></b>: array of PByte;</code></td>
-</tr>
-</table>
 <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="protected.gif" alt="Protected" title="Protected"></a></td>
-<td class="itemcode"><code>function <b><a  href="glBitmap.TglBitmap2D.html#GetScanline">GetScanline</a></b>(const aIndex: Integer): Pointer;</code></td>
-</tr>
-<tr class="list2">
-<td class="visibility"><a  href="legend.html"><img  src="protected.gif" alt="Protected" title="Protected"></a></td>
-<td class="itemcode"><code>procedure <b><a  href="glBitmap.TglBitmap2D.html#SetDataPointer">SetDataPointer</a></b>(var aData: PByte; const aFormat: <a  href="glBitmap.html#TglBitmapFormat">TglBitmapFormat</a>; const aWidth: Integer = - 1; const aHeight: Integer = - 1); override;</code></td>
-</tr>
-<tr class="list">
-<td class="visibility"><a  href="legend.html"><img  src="protected.gif" alt="Protected" title="Protected"></a></td>
-<td class="itemcode"><code>procedure <b><a  href="glBitmap.TglBitmap2D.html#UploadData">UploadData</a></b>(const aTarget: GLenum);</code></td>
+<td class="itemcode"><code>procedure <b><a  href="glBitmap.TglBitmap2D.html#UploadDataIntern">UploadDataIntern</a></b>(const aDataObj: <a  href="glBitmap.TglBitmapData.html">TglBitmapData</a>; const aTarget: GLenum );</code></td>
 </tr>
 <tr class="list2">
 <td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
@@ -53,23 +38,11 @@ wrapper class for 2-dimensional textures (OpenGL target = GL_TEXTURE_2D)</p>
 </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>procedure <b><a  href="glBitmap.TglBitmap2D.html#GrabScreen">GrabScreen</a></b>(const aTop, aLeft, aRight, aBottom: Integer; const aFormat: <a  href="glBitmap.html#TglBitmapFormat">TglBitmapFormat</a>);</code></td>
+<td class="itemcode"><code>procedure <b><a  href="glBitmap.TglBitmap2D.html#GrabScreen">GrabScreen</a></b>(const aTop, aLeft, aRight, aBottom: Integer; const aFormat: <a  href="glBitmap.html#TglBitmapFormat">TglBitmapFormat</a>; const aDataObj: <a  href="glBitmap.TglBitmapData.html">TglBitmapData</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="glBitmap.TglBitmap2D.html#GenTexture">GenTexture</a></b>(const aTestTextureSize: Boolean = true); 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="glBitmap.TglBitmap2D.html#FlipHorz">FlipHorz</a></b>: Boolean; override;</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>function <b><a  href="glBitmap.TglBitmap2D.html#FlipVert">FlipVert</a></b>: Boolean; 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>procedure <b><a  href="glBitmap.TglBitmap2D.html#GenerateNormalMap">GenerateNormalMap</a></b>(const aFunc: <a  href="glBitmap.html#TglBitmapNormalMapFunc">TglBitmapNormalMapFunc</a> = nm3x3; const aScale: Single = 2; const aUseAlpha: Boolean = false);</code></td>
+<td class="itemcode"><code>procedure <b><a  href="glBitmap.TglBitmap2D.html#UploadData">UploadData</a></b>(const aDataObj: <a  href="glBitmap.TglBitmapData.html">TglBitmapData</a>; const aCheckSize: Boolean = true); override;</code></td>
 </tr>
 </table>
 <a name="PasDoc-Properties"></a><h3 class="summary">Properties</h3>
@@ -82,71 +55,21 @@ wrapper class for 2-dimensional textures (OpenGL target = GL_TEXTURE_2D)</p>
 <td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
 <td class="itemcode"><code>property <b><a  href="glBitmap.TglBitmap2D.html#Height">Height</a></b>;</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>property <b><a  href="glBitmap.TglBitmap2D.html#Scanline">Scanline</a></b>[constaIndex:Integer]: Pointer read <a  href="glBitmap.TglBitmap2D.html#GetScanline">GetScanline</a>;</code></td>
-</tr>
 </table>
 <h2 class="description">Description</h2>
-<h3 class="detail">Fields</h3>
-<table class="detail wide_list">
-<tr class="list">
-<td class="visibility"><a  href="legend.html"><img  src="protected.gif" alt="Protected" title="Protected"></a></td>
-<td class="itemcode"><a name="fLines"></a><code><b>fLines</b>: array of PByte;</code></td>
-</tr>
-<tr><td colspan="2">
-<p>
-array to store scanline entry points in</p>
-</td></tr>
-</table>
 <h3 class="detail">Methods</h3>
 <table class="detail wide_list">
 <tr class="list">
 <td class="visibility"><a  href="legend.html"><img  src="protected.gif" alt="Protected" title="Protected"></a></td>
-<td class="itemcode"><a name="GetScanline"></a><code>function <b>GetScanline</b>(const aIndex: Integer): Pointer;</code></td>
-</tr>
-<tr><td colspan="2">
-<p>
-get a specific scanline  </p>
-<h6 class="description_section">Parameters</h6>
-<dl class="parameters">
-<dt>aIndex</dt>
-<dd>index of the scanline to return</dd>
-</dl>
-<h6 class="description_section">Returns</h6>
-<p class="return">scanline at position aIndex or <code>Nil</code></p></td></tr>
-</table>
-<table class="detail wide_list">
-<tr class="list">
-<td class="visibility"><a  href="legend.html"><img  src="protected.gif" alt="Protected" title="Protected"></a></td>
-<td class="itemcode"><a name="SetDataPointer"></a><code>procedure <b>SetDataPointer</b>(var aData: PByte; const aFormat: <a  href="glBitmap.html#TglBitmapFormat">TglBitmapFormat</a>; const aWidth: Integer = - 1; const aHeight: Integer = - 1); override;</code></td>
-</tr>
-<tr><td colspan="2">
-<p>
-set data pointer of texture data    </p>
-<h6 class="description_section">Parameters</h6>
-<dl class="parameters">
-<dt>aData</dt>
-<dd>pointer to new texture data (be carefull, aData could be freed by this function)</dd>
-<dt>aFormat</dt>
-<dd>format of the data stored at aData</dd>
-<dt>aWidth</dt>
-<dd>width of the texture data</dd>
-<dt>aHeight</dt>
-<dd>height of the texture data</dd>
-</dl>
-</td></tr>
-</table>
-<table class="detail wide_list">
-<tr class="list">
-<td class="visibility"><a  href="legend.html"><img  src="protected.gif" alt="Protected" title="Protected"></a></td>
-<td class="itemcode"><a name="UploadData"></a><code>procedure <b>UploadData</b>(const aTarget: GLenum);</code></td>
+<td class="itemcode"><a name="UploadDataIntern"></a><code>procedure <b>UploadDataIntern</b>(const aDataObj: <a  href="glBitmap.TglBitmapData.html">TglBitmapData</a>; const aTarget: GLenum );</code></td>
 </tr>
 <tr><td colspan="2">
 <p>
-upload the texture data to video card  </p>
+upload the texture data to video card   </p>
 <h6 class="description_section">Parameters</h6>
 <dl class="parameters">
+<dt>aDataObj</dt>
+<dd>texture data object that contains the actual data</dd>
 <dt>aTarget</dt>
 <dd>target o upload data to (e.g. GL_TEXTURE_2D)</dd>
 <dt>aBuildWithGlu</dt>
@@ -167,11 +90,11 @@ this method is called after constructor and initializes the object</p>
 <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="GrabScreen"></a><code>procedure <b>GrabScreen</b>(const aTop, aLeft, aRight, aBottom: Integer; const aFormat: <a  href="glBitmap.html#TglBitmapFormat">TglBitmapFormat</a>);</code></td>
+<td class="itemcode"><a name="GrabScreen"></a><code>procedure <b>GrabScreen</b>(const aTop, aLeft, aRight, aBottom: Integer; const aFormat: <a  href="glBitmap.html#TglBitmapFormat">TglBitmapFormat</a>; const aDataObj: <a  href="glBitmap.TglBitmapData.html">TglBitmapData</a>);</code></td>
 </tr>
 <tr><td colspan="2">
 <p>
-copy a part of the frame buffer top the texture     </p>
+copy a part of the frame buffer to the texture      </p>
 <h6 class="description_section">Parameters</h6>
 <dl class="parameters">
 <dt>aTop</dt>
@@ -184,62 +107,25 @@ copy a part of the frame buffer top the texture     </p>
 <dd>bottommost pixel to copy</dd>
 <dt>aFormat</dt>
 <dd>format to store data in</dd>
+<dt>aDataObj</dt>
+<dd>texture data object to store the data in</dd>
 </dl>
 </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="GenTexture"></a><code>procedure <b>GenTexture</b>(const aTestTextureSize: Boolean = true); override;</code></td>
-</tr>
-<tr><td colspan="2">
-<p>
-generate texture (create texture object if not exist, set texture parameters and upload data) </p>
-<h6 class="description_section">Parameters</h6>
-<dl class="parameters">
-<dt>aTestTextureSize</dt>
-<dd>check the size of the texture and throw exception if something is wrong</dd>
-</dl>
-</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="FlipHorz"></a><code>function <b>FlipHorz</b>: Boolean; override;</code></td>
-</tr>
-<tr><td colspan="2">
-<p>
-flip texture horizontally </p>
-<h6 class="description_section">Returns</h6>
-<p class="return"><code>True</code> on success, <code>False</code> otherwise</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="FlipVert"></a><code>function <b>FlipVert</b>: Boolean; override;</code></td>
-</tr>
-<tr><td colspan="2">
-<p>
-flip texture vertically </p>
-<h6 class="description_section">Returns</h6>
-<p class="return"><code>True</code> on success, <code>False</code> otherwise</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="GenerateNormalMap"></a><code>procedure <b>GenerateNormalMap</b>(const aFunc: <a  href="glBitmap.html#TglBitmapNormalMapFunc">TglBitmapNormalMapFunc</a> = nm3x3; const aScale: Single = 2; const aUseAlpha: Boolean = false);</code></td>
+<td class="itemcode"><a name="UploadData"></a><code>procedure <b>UploadData</b>(const aDataObj: <a  href="glBitmap.TglBitmapData.html">TglBitmapData</a>; const aCheckSize: Boolean = true); override;</code></td>
 </tr>
 <tr><td colspan="2">
 <p>
-create normal map from texture data   </p>
+upload texture data from given data object to video card  </p>
 <h6 class="description_section">Parameters</h6>
 <dl class="parameters">
-<dt>aFunc</dt>
-<dd>normal map function to generate normalmap with</dd>
-<dt>aScale</dt>
-<dd>scale of the normale stored in the normal map</dd>
-<dt>aUseAlpha</dt>
-<dd>generate normalmap from alpha channel data (if present)</dd>
+<dt>aData</dt>
+<dd>texture data object that contains the actual data</dd>
+<dt>aCheckSize</dt>
+<dd>check size before upload and throw exception if something is wrong</dd>
 </dl>
 </td></tr>
 </table>
@@ -264,16 +150,6 @@ actual width of the texture</p>
 actual height of the texture</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="Scanline"></a><code>property <b>Scanline</b>[constaIndex:Integer]: Pointer read <a  href="glBitmap.TglBitmap2D.html#GetScanline">GetScanline</a>;</code></td>
-</tr>
-<tr><td colspan="2">
-<p>
-scanline to access texture data directly</p>
-</td></tr>
-</table>
-<hr noshade size="1"><span class="appinfo"><em>Generated by <a  href="http://pasdoc.sourceforge.net/">PasDoc 0.13.0</a> on 2014-12-21 15:05:48</em>
+<hr noshade size="1"><span class="appinfo"><em>Generated by <a  href="http://pasdoc.sourceforge.net/">PasDoc 0.13.0</a> on 2014-12-24 04:27:09</em>
 </span>
 </td></tr></table></body></html>