Index

Package: GL.Skins

Description

package GL.Skins is
----------------------------------------------------------------------- GL.Skins - appearance of the surfaces of geometry primitives Copyright (c) Rod Kay 2007 AUSTRALIA Permission granted to use this software, without any warranty, for any purpose, provided this copyright note remains attached and unmodified if sources are distributed further. -----------------------------------------------------------------------

Classes

Veneer (abstract)

type Veneer is abstract tagged null record;

References:

gl-skins.ads:21:9 (declaration)
gl-skins.adb:32:37 (reference)
gl-skins.adb:43:63 (reference)
gl-skins.ads:23:32 (reference)
gl-skins.ads:26:37 (reference)
gl-skins.ads:29:36 (reference)
gl-skins.ads:82:83 (reference)
gl-skins.ads:112:92 (reference)
gl-skins.ads:147:42 (reference)

Skin (abstract)

type Skin is abstract tagged
      record
         null;
      end record;

References:

gl-skins.ads:37:9 (declaration)
gl-skins.adb:51:37 (reference)
gl-skins.adb:61:63 (reference)
gl-skins.ads:42:30 (reference)
gl-skins.ads:46:37 (reference)
gl-skins.ads:50:40 (reference)
gl-skins.ads:52:44 (reference)
gl-skins.ads:53:44 (reference)
gl-skins.ads:66:45 (reference)
gl-skins.ads:95:43 (reference)
gl-skins.ads:125:48 (reference)
gl-skins.ads:164:40 (reference)

Skin_opaque_unlit_mono_color

type Skin_opaque_unlit_mono_color is new Skin with
      record
         Color : RGB_Color;
      end record;

Ancestors:

Primitive operations:

destroy (Inherited)
enable (overriding enable)
is_Transparent (overriding is_Transparent)
new_Veneer (overriding new_Veneer)

References:

gl-skins.ads:66:9 (declaration)
gl-skins.adb:88:40 (reference)
gl-skins.adb:96:36 (reference)
gl-skins.adb:114:44 (reference)
gl-skins.ads:71:44 (reference)
gl-skins.ads:72:44 (reference)
gl-skins.ads:73:44 (reference)
gl-skins.ads:192:44 (reference)

Veneer_opaque_lit_mono_color

type Veneer_opaque_lit_mono_color (max_Normals : gl.geometry.vertex_Id) is new Veneer with
      record
         Normals : gl.geometry.Normal_array (1 .. max_Normals);
      end record;

Ancestors:

Primitive operations:

destroy (Inherited)
enable (overriding enable)

References:

gl-skins.ads:82:9 (declaration)
gl-skins.adb:127:36 (reference)
gl-skins.adb:141:45 (reference)
gl-skins.ads:87:36 (reference)

Skin_opaque_lit_mono_color

type Skin_opaque_lit_mono_color is new Skin with
      record
         Material : gl.materials.Material_type := materials.neutral_material;
      end record;

Ancestors:

Primitive operations:

destroy (Inherited)
enable (overriding enable)
is_Transparent (overriding is_Transparent)
new_Veneer (overriding new_Veneer)

References:

gl-skins.ads:95:9 (declaration)
gl-skins.adb:139:40 (reference)
gl-skins.adb:151:36 (reference)
gl-skins.adb:166:44 (reference)
gl-skins.ads:100:40 (reference)
gl-skins.ads:101:40 (reference)
gl-skins.ads:103:44 (reference)
gl-skins.ads:196:44 (reference)

Veneer_transparent_unlit_textured

type Veneer_transparent_unlit_textured (num_Coordinates : gl.geometry.vertex_Id) is new Veneer with
      record
         texture_Coordinates : gl.textures.Coordinate_2D_array (1 .. num_Coordinates);
      end record;

Ancestors:

Primitive operations:

destroy (Inherited)
enable (overriding enable)

References:

gl-skins.ads:112:9 (declaration)
gl-skins.adb:180:36 (reference)
gl-skins.adb:203:18 (reference)
gl-skins.ads:117:59 (reference)
gl-skins.ads:119:36 (reference)

Skin_transparent_unlit_textured

type Skin_transparent_unlit_textured is new Skin with
      record
         Texture              : gl.Textures.Object;
         coordinate_Generator : gl.textures.p_coordinate_Generator;
      end record;

Ancestors:

Primitive operations:

destroy (overriding destroy)
enable (overriding enable)
is_Transparent (overriding is_Transparent)
new_Veneer (overriding new_Veneer)

References:

gl-skins.ads:125:9 (declaration)
gl-skins.adb:191:37 (reference)
gl-skins.adb:200:39 (reference)
gl-skins.adb:216:36 (reference)
gl-skins.adb:232:44 (reference)
gl-skins.ads:131:57 (reference)
gl-skins.ads:134:37 (reference)
gl-skins.ads:136:44 (reference)
gl-skins.ads:137:44 (reference)
gl-skins.ads:138:44 (reference)

Veneer_unlit_textured_vbo

type Veneer_unlit_textured_vbo is new Veneer with
      record
         --texture_Coordinates : gl.Buffer.vertex_buffer_Object;
         texture_Coordinates : gl.Buffer.texture_coords.Object;
      end record;

Ancestors:

Primitive operations:

destroy (Inherited)
enable (overriding enable)

References:

gl-skins.ads:147:9 (declaration)
gl-skins.adb:244:36 (reference)
gl-skins.adb:266:18 (reference)
gl-skins.ads:153:51 (reference)
gl-skins.ads:156:36 (reference)

Skin_unlit_textured_vbo

type Skin_unlit_textured_vbo is new Skin with
      record
         Texture : gl.Textures.Object;
      end record;

Ancestors:

Primitive operations:

destroy (overriding destroy)
enable (overriding enable)
is_Transparent (overriding is_Transparent)
new_Veneer (overriding new_Veneer)

References:

gl-skins.ads:164:9 (declaration)
gl-skins.adb:255:37 (reference)
gl-skins.adb:263:40 (reference)
gl-skins.adb:271:36 (reference)
gl-skins.adb:282:44 (reference)
gl-skins.ads:169:49 (reference)
gl-skins.ads:172:37 (reference)
gl-skins.ads:174:40 (reference)
gl-skins.ads:175:40 (reference)
gl-skins.ads:178:44 (reference)

Types

p_Veneer

type p_Veneer is access all Veneer'Class;

References:

gl-skins.ads:23:9 (declaration)
gl-skinned_geometry.ads:24:30 (reference)
gl-skins.adb:41:34 (reference)
gl-skins.adb:43:77 (reference)
gl-skins.adb:88:125 (reference)
gl-skins.adb:139:123 (reference)
gl-skins.adb:141:29 (reference)
gl-skins.adb:200:127 (reference)
gl-skins.adb:263:120 (reference)
gl-skins.ads:27:37 (reference)
gl-skins.ads:50:101 (reference)
gl-skins.ads:71:129 (reference)
gl-skins.ads:100:123 (reference)
gl-skins.ads:136:132 (reference)
gl-skins.ads:174:120 (reference)

p_Skin

type p_Skin is access all Skin'Class;

References:

gl-skins.ads:42:9 (declaration)
gl-skinned_geometry.ads:23:30 (reference)
gl-skins.adb:59:34 (reference)
gl-skins.adb:61:75 (reference)
gl-skins.ads:43:47 (reference)
gl-skins.ads:47:37 (reference)
gl-skins.ads:192:21 (reference)
gl-skins.ads:196:21 (reference)
globe_3d.adb:1086:36 (reference)

Skins

type Skins is array (Positive range <>) of p_Skin;

References:

gl-skins.ads:43:9 (declaration)
gl-skins.ads:57:26 (reference)

p_Veneer_transparent_unlit_textured

type p_Veneer_transparent_unlit_textured is access all Veneer_transparent_unlit_textured'Class;

References:

gl-skins.ads:117:9 (declaration)
gl-skins.adb:202:29 (reference)

p_Skin_transparent_unlit_textured

type p_Skin_transparent_unlit_textured is access all Skin_transparent_unlit_textured;

References:

gl-skins.ads:131:9 (declaration)

p_Veneer_unlit_textured_vbo

type p_Veneer_unlit_textured_vbo is access all Veneer_unlit_textured_vbo'Class;

References:

gl-skins.ads:153:9 (declaration)

p_Skin_unlit_textured_vbo

type p_Skin_unlit_textured_vbo is access all Skin_unlit_textured_vbo;

References:

gl-skins.ads:169:9 (declaration)

Constants & Global variables

null_Skins (Skins)

null_Skins : constant Skins (1 .. 0) := (others => null);

References:

gl-skins.ads:57:4 (declaration)

green_Skin (p_Skin)

green_Skin     : p_Skin := new gl.skins.Skin_opaque_unlit_mono_color'(color => (red   => 1.0,
                                                                                   green => 1.0,
                                                                                   blue  => 1.0));

References:

gl-skins.ads:192:4 (declaration)

lit_green_Skin (p_Skin)

References:

gl-skins.ads:196:4 (declaration)

Subprograms & Entries

destroy

procedure destroy 
(Self: in out Veneer);

References:

gl-skins.ads:26:14 (declaration)
gl-skins.adb:32:14 (body)
gl-skins.adb:45:7 (dispatching call)

Called by:

free defined at gl-skins.ads:27:14

free

procedure free    
(Self: in out p_Veneer);

References:

gl-skins.ads:27:14 (declaration)
gl-skinned_geometry.adb:29:7 (reference)
gl-skins.adb:41:14 (body)

Calls:

destroy defined at gl-skins.ads:26:14
GL.Skins.free.deallocate defined at gl-skins.adb:43:17
Unchecked_Deallocation defined at a-uncdea.ads:20:15

enable (abstract)

procedure enable 
(Self: in out Veneer)
is abstract;

References:

gl-skins.ads:29:14 (declaration)
globe_3d.adb:1171:16 (dispatching call)
globe_3d.adb:1249:25 (dispatching call)

destroy

procedure destroy 
(Self: in out Skin);

References:

gl-skins.ads:46:14 (declaration)
gl-skins.adb:51:14 (body)
gl-skins.adb:63:7 (dispatching call)

Called by:

free defined at gl-skins.ads:47:14

free

procedure free    
(Self: in out p_Skin);

References:

gl-skins.ads:47:14 (declaration)
gl-skinned_geometry.adb:28:7 (reference)
gl-skins.adb:59:14 (body)

Calls:

destroy defined at gl-skins.ads:46:14
GL.Skins.free.deallocate defined at gl-skins.adb:61:17
Unchecked_Deallocation defined at a-uncdea.ads:20:15

new_Veneer (abstract)

function  new_Veneer 
(Self: in Skin;
for_Geometry: in gl.Geometry.Geometry'Class)
return p_Veneer is abstract;

References:

gl-skins.ads:50:14 (declaration)

enable (abstract)

procedure enable         
(Self: in out Skin)
is abstract;

References:

gl-skins.ads:52:14 (declaration)
globe_3d.adb:1166:16 (dispatching call)
globe_3d.adb:1244:25 (dispatching call)

is_Transparent (abstract)

function  is_Transparent 
(Self: in Skin)
return Boolean is abstract;

References:

gl-skins.ads:53:14 (declaration)

new_Veneer

function  new_Veneer     
(Self: in Skin_opaque_unlit_mono_color;
for_Geometry: in gl.Geometry.Geometry'Class)
return p_Veneer;

References:

gl-skins.ads:71:14 (declaration)
gl-skins.adb:88:14 (body)

is_Transparent

function  is_Transparent 
(Self: in Skin_opaque_unlit_mono_color)
return Boolean;

References:

gl-skins.ads:73:14 (declaration)
gl-skins.adb:114:14 (body)

is_Transparent

function  is_Transparent 
(Self: in Skin_opaque_lit_mono_color)
return Boolean;

References:

gl-skins.ads:103:14 (declaration)
gl-skins.adb:166:14 (body)

destroy

procedure destroy 
(Self: in out Skin_transparent_unlit_textured);

References:

gl-skins.ads:134:14 (declaration)
gl-skins.adb:191:14 (body)

Calls:

destroy defined at gl-textures.ads:131:14

new_Veneer

function  new_Veneer     
(Self: in Skin_transparent_unlit_textured;
for_Geometry: in gl.Geometry.Geometry'Class)
return p_Veneer;

References:

gl-skins.ads:136:14 (declaration)
gl-skins.adb:200:13 (body)

Calls:

GL.Geometry.vertex_Count defined at gl-geometry.ads:150:14
GL.Geometry.Vertices defined at gl-geometry.ads:151:14
to_Coordinates defined at gl-textures.ads:67:13

enable

procedure enable         
(Self: in out Skin_transparent_unlit_textured);

References:

gl-skins.ads:137:14 (declaration)
gl-skins.adb:216:14 (body)

Calls:

enable defined at gl-textures.ads:137:14
GL.AlphaFunc defined at gl.ads:235:13
GL.BindBuffer defined at gl.ads:3846:13
GL.Color defined at gl.ads:3463:13
GL.Disable defined at gl.ads:714:13
GL.Enable defined at gl.ads:712:13

is_Transparent

function  is_Transparent 
(Self: in Skin_transparent_unlit_textured)
return Boolean;

References:

gl-skins.ads:138:14 (declaration)
gl-skins.adb:232:14 (body)

Calls:

is_Transparent defined at gl-textures.ads:142:14

destroy

procedure destroy 
(Self: in out Skin_unlit_textured_vbo);

References:

gl-skins.ads:172:14 (declaration)
gl-skins.adb:255:14 (body)

new_Veneer

function  new_Veneer 
(Self: in Skin_unlit_textured_vbo;
for_Geometry: in gl.Geometry.Geometry'Class)
return p_Veneer;

References:

gl-skins.ads:174:14 (declaration)
gl-skins.adb:263:14 (body)

enable

procedure enable     
(Self: in out Skin_unlit_textured_vbo);

References:

gl-skins.ads:175:14 (declaration)
gl-skins.adb:271:14 (body)

Calls:

enable defined at gl-textures.ads:137:14
GL.Disable defined at gl.ads:714:13

is_Transparent

function  is_Transparent 
(Self: in Skin_unlit_textured_vbo)
return Boolean;

References:

gl-skins.ads:178:14 (declaration)
gl-skins.adb:282:14 (body)

Calls:

is_Transparent defined at gl-textures.ads:142:14