Index

Package: 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:17:9 (declaration)
gl-skins.adb:27:37 (reference)
gl-skins.adb:35:63 (reference)
gl-skins.ads:19:32 (reference)
gl-skins.ads:21:38 (reference)
gl-skins.ads:24:37 (reference)
gl-skins.ads:62:84 (reference)
gl-skins.ads:82:93 (reference)
gl-skins.ads:108:42 (reference)

Skin (abstract)

type Skin is abstract tagged
      record
         null;
      end record;

References:

gl-skins.ads:28:9 (declaration)
gl-skins.adb:42:38 (reference)
gl-skins.adb:50:63 (reference)
gl-skins.ads:33:30 (reference)
gl-skins.ads:36:38 (reference)
gl-skins.ads:39:41 (reference)
gl-skins.ads:42:45 (reference)
gl-skins.ads:43:45 (reference)
gl-skins.ads:50:45 (reference)
gl-skins.ads:69:43 (reference)
gl-skins.ads:91:48 (reference)
gl-skins.ads:120: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:50:9 (declaration)
gl-skins.adb:72:41 (reference)
gl-skins.adb:75:47 (reference)
gl-skins.adb:91:47 (reference)
gl-skins.ads:55:55 (reference)
gl-skins.ads:56:55 (reference)
gl-skins.ads:57:55 (reference)
gl-skins.ads:140: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.GL_Normals_Vertex_Id (1 .. Max_Normals);
      end record;

Ancestors:

Primitive operations:

Destroy (Inherited)
Enable (overriding Enable)

References:

gl-skins.ads:62:9 (declaration)
gl-skins.adb:96:47 (reference)
gl-skins.adb:106:12 (reference)
gl-skins.ads:67:48 (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:69:9 (declaration)
gl-skins.adb:104:40 (reference)
gl-skins.adb:109:47 (reference)
gl-skins.adb:121:36 (reference)
gl-skins.ads:74:51 (reference)
gl-skins.ads:75:51 (reference)
gl-skins.ads:77:48 (reference)
gl-skins.ads:144: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:82:9 (declaration)
gl-skins.adb:126:47 (reference)
gl-skins.adb:144:13 (reference)
gl-skins.ads:87:59 (reference)
gl-skins.ads:89:48 (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:91:9 (declaration)
gl-skins.adb:134:49 (reference)
gl-skins.adb:140:51 (reference)
gl-skins.adb:154:48 (reference)
gl-skins.adb:169:36 (reference)
gl-skins.ads:97:57 (reference)
gl-skins.ads:99:49 (reference)
gl-skins.ads:101:55 (reference)
gl-skins.ads:102:55 (reference)
gl-skins.ads:103:55 (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.General_Object;
      end record;

Ancestors:

Primitive operations:

Destroy (Inherited)
Enable (overriding Enable)

References:

gl-skins.ads:108:9 (declaration)
gl-skins.adb:174:48 (reference)
gl-skins.adb:192:11 (reference)
gl-skins.ads:114:51 (reference)
gl-skins.ads:116:47 (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:120:9 (declaration)
gl-skins.adb:184:48 (reference)
gl-skins.adb:190:41 (reference)
gl-skins.adb:194:48 (reference)
gl-skins.adb:203:36 (reference)
gl-skins.ads:125:49 (reference)
gl-skins.ads:127:49 (reference)
gl-skins.ads:129:51 (reference)
gl-skins.ads:130:51 (reference)
gl-skins.ads:132:48 (reference)

Types

p_Veneer

type p_Veneer is access all Veneer'Class;

References:

gl-skins.ads:19:9 (declaration)
gl-skinned_geometry.ads:20:31 (reference)
gl-skins.adb:33:35 (reference)
gl-skins.adb:35:77 (reference)
gl-skins.adb:73:78 (reference)
gl-skins.adb:105:77 (reference)
gl-skins.adb:141:88 (reference)
gl-skins.adb:191:78 (reference)
gl-skins.ads:22:38 (reference)
gl-skins.ads:40:78 (reference)
gl-skins.ads:55:137 (reference)
gl-skins.ads:74:131 (reference)
gl-skins.ads:101:141 (reference)
gl-skins.ads:129:128 (reference)

p_Skin

type p_Skin is access all Skin'Class;

References:

gl-skins.ads:33:9 (declaration)
gl-skinned_geometry.ads:19:31 (reference)
gl-skins.adb:48:35 (reference)
gl-skins.adb:50:75 (reference)
gl-skins.ads:34:52 (reference)
gl-skins.ads:37:38 (reference)
gl-skins.ads:140:21 (reference)
gl-skins.ads:144:21 (reference)
globe_3d.adb:1073:36 (reference)

Skin_Array

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

References:

gl-skins.ads:34:9 (declaration)
gl-skins.ads:45: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:87:9 (declaration)
gl-skins.adb:143:29 (reference)

p_Skin_transparent_unlit_textured

type p_Skin_transparent_unlit_textured is access all Skin_transparent_unlit_textured;

References:

gl-skins.ads:97: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:114:9 (declaration)

p_Skin_unlit_textured_vbo

type p_Skin_unlit_textured_vbo is access all Skin_unlit_textured_vbo;

References:

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

Constants & Global variables

null_Skins (Skin_Array)

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

References:

gl-skins.ads:45: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:140:4 (declaration)

lit_green_Skin (p_Skin)

References:

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

Subprograms & Entries

Destroy

procedure Destroy 
(Self: in out Veneer);

References:

gl-skins.ads:21:14 (declaration)
gl-skins.adb:27:14 (body)
gl-skins.adb:31:8 (label)
gl-skins.adb:38:7 (dispatching call)

Called by:

Free defined at gl-skins.ads:22:14

Free

procedure Free    
(Self: in out p_Veneer);

Calls:

Destroy defined at gl-skins.ads:21:14
GL.Skins.Free.Deallocate defined at gl-skins.adb:35:17
Unchecked_Deallocation defined at a-uncdea.ads:20:15

Enable (abstract)

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

References:

gl-skins.ads:24:14 (declaration)
globe_3d.adb:1157:16 (dispatching call)
globe_3d.adb:1237:25 (dispatching call)

Destroy

procedure Destroy 
(Self: in out Skin);

References:

gl-skins.ads:36:14 (declaration)
gl-skins.adb:42:14 (body)
gl-skins.adb:46:8 (label)
gl-skins.adb:53:7 (dispatching call)

Called by:

Free defined at gl-skins.ads:37:14

Free

procedure Free    
(Self: in out p_Skin);

Calls:

Destroy defined at gl-skins.ads:36:14
GL.Skins.Free.Deallocate defined at gl-skins.adb:50:17
Unchecked_Deallocation defined at a-uncdea.ads:20:15

New_Veneer (abstract)

function  New_Veneer 
(Self: Skin;
for_Geometry: GL.Geometry.Geometry_t'Class) return p_Veneer is abstract;

References:

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

Enable (abstract)

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

References:

gl-skins.ads:42:14 (declaration)
globe_3d.adb:1152:16 (dispatching call)
globe_3d.adb:1232:25 (dispatching call)

is_Transparent (abstract)

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

References:

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

New_Veneer

overriding function  New_Veneer     
(Self: Skin_opaque_unlit_mono_color;
for_Geometry: GL.Geometry.Geometry_t'Class) return p_Veneer;

References:

gl-skins.ads:55:25 (declaration)
gl-skins.adb:72:13 (body)

Enable

overriding procedure Enable         
(Self: in out Skin_opaque_unlit_mono_color);

References:

gl-skins.ads:56:25 (declaration)
gl-skins.adb:75:25 (body)
gl-skins.adb:89:8 (label)

is_Transparent

overriding function  is_Transparent 
(Self: Skin_opaque_unlit_mono_color) return Boolean;

References:

gl-skins.ads:57:25 (declaration)
gl-skins.adb:91:24 (body)

new_Veneer

overriding function  new_Veneer 
(Self: Skin_opaque_lit_mono_color;
for_Geometry: GL.Geometry.Geometry_t'Class) return p_Veneer;

References:

gl-skins.ads:74:25 (declaration)
gl-skins.adb:104:13 (body)

is_Transparent

overriding function  is_Transparent 
(Self: Skin_opaque_lit_mono_color) return Boolean;

References:

gl-skins.ads:77:25 (declaration)
gl-skins.adb:121:13 (body)

Destroy

overriding procedure Destroy 
(Self: in out Skin_transparent_unlit_textured);

References:

gl-skins.ads:99:25 (declaration)
gl-skins.adb:134:25 (body)
gl-skins.adb:138:8 (label)

is_Transparent

overriding function  is_Transparent 
(Self: Skin_transparent_unlit_textured) return Boolean;

References:

gl-skins.ads:103:25 (declaration)
gl-skins.adb:169:13 (body)

Destroy

overriding procedure Destroy 
(Self: in out Skin_unlit_textured_vbo);

References:

gl-skins.ads:127:25 (declaration)
gl-skins.adb:184:25 (body)
gl-skins.adb:188:8 (label)

new_Veneer

overriding function  new_Veneer 
(Self: Skin_unlit_textured_vbo;
for_Geometry: GL.Geometry.Geometry_t'Class) return p_Veneer;

References:

gl-skins.ads:129:25 (declaration)
gl-skins.adb:190:14 (body)

Enable

overriding procedure Enable     
(Self: in out Skin_unlit_textured_vbo);

References:

gl-skins.ads:130:25 (declaration)
gl-skins.adb:194:25 (body)
gl-skins.adb:201:8 (label)

is_Transparent

overriding function  is_Transparent 
(Self: Skin_unlit_textured_vbo) return Boolean;

References:

gl-skins.ads:132:25 (declaration)
gl-skins.adb:203:13 (body)