XGL Test Suite User's Guide
검색에만이 책은
PDF로 이 문서 다운로드

Polygon Test Descriptions

22

This chapter describes the Polygon test programs. The following is defined for each test program:
  • Name of the test program
  • Test types (See the section "Denizen Test Types" on page 2 for the different test types.)
  • Description of the test program
  • Attributes tested by the program
  • Operators tested by the program
  • Output from the test program
· pg_simple
Test Types:INDEX, SM
Description:Draws a four-sided solid fill polygon of point type XGL_PT_F3D twice. The first time the polygon has a facet type of XGL_FACET_COLOR, and the second time it has a facet type of XGL_FACET_NORMAL.
Attributes Tested: XGL_CTX_SURF_EDGE_FLAG (FALSE)
XGL_CTX_SURF_FRONT_FILL_STYLE
(XGL_SURF_FILL_SOLID)

Operators Tested: xgl_object_get,
                    xgl_object_set,
                    xgl_polygon
Output:             First draws a yellow square then a red square at the same
                    position

· pg_simple_rgb
Test Types:RGB, SM
Description:Same test as pg_simple except that this test is RGB
Attributes Tested: XGL_CTX_SURF_EDGE_FLAG (FALSE)
                    XGL_CTX_SURF_FRONT_FILL_STYLE
                    (XGL_SURF_FILL_SOLID)
                    XGL_CTX_SURF_FRONT_COLOR
Operators Tested:   xgl_object_get
                    xgl_object_set
                    xgl_polygon
Output:             First draws a red square then a cyan square at the same
                    position

· pg0
Test Types:RGB, SM
Description:Tests linear depth-cueing of polygons: varies polygon shape and depth, and varies depth-cueing color
Attributes Tested: XGL_3D_CTX_DEPTH_CUE_COLOR
Operators Tested: xgl_object_get
Output:.....Draws each of the following five general polygons nine times (each time a different depth cue color is used): (1) A square
(2) A five-sided polygon (3) A triangle and a four-sided polygon (4) A large triangle
(5) Four polygons with different shapes Some of the rendered polygons appear shaded and some do not.
· pg2
Test Types:RGB, SM
Description:Tests polygon vertex color interpolation: draws various polygons with XGL_ILLUM_NONE_INTERP_COLOR mode
Attributes Tested: XGL_3D_CTX_SURF_FRONT_ILLUMINATION
                    (XGL_ILLUM_NONE_INTERP_COLOR)
Operators Tested:   xgl_object_set
                    xgl_polygon
Output:             The following seven polygons are rendered one after the
                    other:

(1) A shaded square with vertical stripes (2) A shaded square with horizontal stripes (3) A shaded square
(4) A blue solid square (5) A shaded vertical bow tie with horizontal stripes (6) A blue solid horizontal bow tie
(7) A shaded triangle with horizontal stripes
· pg3
Test Types:RGB, SM
Description:Tests polygon XGL_3D_CTX_SURF_GEOM_NORMAL: draws two geometrically identical triangles, one with XGL_GEOM_NORMAL_FIRST_POINTS and one with XGL_GEOM_NORMAL_LAST_POINTS, so one should be front facing and one back facing, turns on face distinguish so they appear in different colors and checks the colors
Attributes Tested: XGL_3D_CTX_SURF_BACK_COLOR
                    XGL_3D_CTX_SURF_FACE_DISTINGUISH
                    XGL_3D_CTX_SURF_GEOM_NORMAL
                    XGL_CTX_SURF_FRONT_COLOR
Operators Tested:   xgl_object_get
                    xgl_object_set
                    xgl_polygon

Output:· pg4First draws a red triangle then a blue triangle at the same position
Test Types:INDEX, SM
Description:Tests indexed linear depth-cueing of polygons: varies polygon shape and depth
Attributes Tested: XGL_3D_CTX_DEPTH_CUE_MODE
Operators Tested: xgl_object_get
Output:.....Draws the following five general polygons one after the other:
(1) A shaded four-sided polygon (2) A gray solid square
(3) A gray solid triangle and a gray solid four-sided polygon
(4) A shaded large triangle (5) Three shaded polygons with different shapes
· pg_cull
Test Types:INDEX, SM
Description:Tests the three face-culling modes: draws both front- and back-facing polygons and checks that the correct ones are culled in each mode
Attributes Tested: XGL_3D_CTX_SURF_BACK_FILL_STYLE

Operators Tested: xgl_object_get
Output:· pg_cull_zRenders first a red square and a green square. Then the red square disappears and the green square remains on the screen. Finally, the red square is rendered again and the green square disappears.
Test Types:INDEX, SM
Description:Tests the three face-culling modes with the z-buffer on: draws both front- and back-facing polygons and checks the correct ones are culled in each mode
Attributes Tested: XGL_3D_CTX_HLHSR_MODE (XGL_HLHSR_Z_BUFFER)

Operators Tested: xgl_object_get
Output:· pg_cull_rgbRenders first a red square and a green square. Then the red square disappears and the green square remains on the screen. Finally, the red square is rendered again and the green square disappears.
Test Types:RGB, SM
Description:Tests the three face-culling modes in RGB: draws both front- and back-facing polygons and checks that the correct ones are culled in each mode
Attributes Tested: XGL_3D_CTX_SURF_BACK_FILL_STYLE
                    (XGL_SURF_FILL_SOLID)
                    XGL_3D_CTX_SURF_FACE_CULL
                    XGL_3D_CTX_SURF_FACE_DISTINGUISH
                    XGL_CTX_SURF_FRONT_FILL_STYLE
                    (XGL_SURF_FILL_SOLID)
Operators Tested:   xgl_object_get
                    xgl_object_set
                    xgl_polygon

Output:· pg_cull_z_rgbRenders first an orange square and a green square. Then the orange square disappears and the green square remains on the screen. Finally, the orange square is rendered again and the green square disappears.
Test Types:RGB, SM
Description:Tests the three face-culling modes in RGB with the z-buffer on: draws both front- and back-facing polygons and checks the correct ones are culled in each mode.
Attributes Tested: XGL_3D_CTX_HLHSR_MODE (XGL_HLHSR_Z_BUFFER)

Operators Tested: xgl_object_get
Output:· pg_edgeRenders first an orange square and a green square. Then the orange square disappears and the green square remains on the screen. Finally, the orange square is rendered again and the green square disappears.
Test Types:RGB, SM
Description:Tests that alt-patterned edges for 2D RGB polygons are all drawn exactly correctly and that there are no "holes" inside the polygons. Tries many different colors for the polygon (all colors in color cube for 8-bit rasters).
Attributes Tested: XGL_CTX_EDGE_ALT_COLOR
XGL_CTX_EDGE_COLOR
XGL_CTX_EDGE_PATTERN
XGL_CTX_EDGE_STYLE (XGL_LINE_ALT_PATTERNED)
XGL_CTX_SURF_FRONT_COLOR
XGL_LPAT_DATA
XGL_LPAT_DATA_SIZE

Operators Tested: xgl_context_get_pixel
                    xgl_polygon
Output:             For 8-bit rasters, a small solid square with edges is drawn

many times, each time a different color in the color cube is used as the interior color. For non-8-bit rasters, nothing is rendered.
· pg_edge2
Test Types:RGB, SM
Description:Tests edge-enable flags for RGB polygons: draws a square with all sixteen combinations of edges and checks for the presence/absence of edges in each case.
Attributes Tested: XGL_CTX_EDGE_COLOR
Operators Tested: xgl_object_get
Output:· pg_edge3Draws a green square 16 times, each time with a different combination of edge flags for the four edges
Test Types:RGB, SM
Description:Tests that alt-patterned edges for 3D RGB polygons are all drawn exactly correctly and that there are no "holes" inside the polygons. Tries many different colors for the polygon (all colors in color cube for 8-bit rasters).
Attributes Tested: XGL_CTX_EDGE_ALT_COLOR
XGL_LPAT_DATA
XGL_LPAT_DATA_SIZE

Operators Tested: xgl_context_get_pixel
Output:· pg_edge4For 8-bit rasters, a small solid square with edges is drawn many times, each time a different color in the color cube is used as the interior color. For non-8-bit rasters, nothing is rendered.
Test Types:RGB, CM
Description:Tests edge-enable flags for 3D RGB polygons: cycles through various combinations of edge flag settings
Attributes Tested: XGL_CTX_EDGE_COLOR
Operators Tested: xgl_object_set
Output:· pg_faceImage with sixteen polygons with various edges illuminated
Test Types:INDEX, SM
Description:Tests that polygons are rendered correctly when XGL_3D_CTX_SURF_FACE_DISTINGUISH is TRUE/FALSE and XGL_3D_CTX_SURF_NORMAL_FLIP is TRUE/FALSE
Attributes Tested: XGL_3D_CTX_SURF_BACK_FILL_STYLE

Operators Tested: xgl_object_get
Output:.....Draws three four-sided polygons three times. The first time, the three polygons consist of (from left to right) one red solid polygon and two green hollow polygons. The second time, the three polygons are all red solid polygons. The third time, the three polygons consist of one green hollow polygon and two red solid polygons.
· pg_face_z
Test Types:INDEX, SM
Description:Tests that polygons are rendered correctly with the z-buffer on, when XGL_3D_CTX_SURF_FACE_DISTINGUISH is TRUE/FALSE and XGL_3D_CTX_SURF_NORMAL_FLIP is TRUE/FALSE
Attributes Tested: XGL_3D_CTX_HLHSR_MODE (XGL_HLHSR_Z_BUFFER)

Operators Tested: xgl_object_get
Output:· pg_face_rgbDraws three four-sided polygons three times. The first time, the three polygons consist of (from left to right) one red solid polygon and two green hollow polygons. The second time, the three polygons are all red solid polygons. The third time, the three polygons consist of one green hollow polygon and two red solid polygons.
Test Types:RGB, SM
Description:Tests that RGB polygons are rendered correctly when XGL_3D_CTX_SURF_FACE_DISTINGUISH is TRUE/FALSE and XGL_3D_CTX_SURF_NORMAL_FLIP is TRUE/FALSE
Attributes Tested: XGL_3D_CTX_SURF_BACK_FILL_STYLE

Operators Tested: xgl_object_get
Output:· pg_face_z_rgbDraws three four-sided polygons three times. The first time, the three polygons consist of (from left to right) one orange solid polygon and two green hollow polygons. The second time, the three polygons are all orange solid polygons. The third time, the three polygons consist of one green hollow polygon and two orange solid polygons.
Test Types:RGB, SM
Description:Tests that RGB polygons are rendered correctly with the z-buffer on, when XGL_3D_CTX_SURF_FACE_DISTINGUISH is TRUE/FALSE and XGL_3D_CTX_SURF_NORMAL_FLIP is TRUE/FALSE
Attributes Tested: XGL_3D_CTX_HLHSR_MODE (XGL_HLHSR_Z_BUFFER)

Operators Tested: xgl_object_get
Output:· pg_fillDraws three four-sided polygons three times. The first time, the three polygons consist of (from left to right) one orange solid polygon and two green hollow polygons. The second time, the three polygons are all orange solid polygons. The third time, the three polygons consist of one green hollow polygon and two orange solid polygons.
Test Types:INDEX, SM
Description:Tests various polygon fill styles: solid, hollow, and empty with edge. Draws a few polygons with each fill style and checks that they're solid/hollow polygons.
Attributes Tested: XGL_CTX_EDGE_COLOR
                    XGL_CTX_EDGE_WIDTH_SCALE_FACTOR
                    XGL_CTX_SURF_EDGE_FLAG
                    XGL_CTX_SURF_FRONT_FILL_STYLE
Operators Tested:   xgl_object_get
                    xgl_object_set
                    xgl_polygon
Output:             Renders each of the following six general polygons three

times (solid, hollow, empty with edge), one after the other: (1) A square with the facet type XGL_FACET_COLOR (2) A square with the facet type XGL_FACET_NORMAL (3) Nine triangles
(4) A self-intersecting polygon with 10 points (5) Two totally overlapping polygons (6) Two partially overlapping polygons
· pg_fill_z
Test Types:INDEX, SM
Description:Tests various polygon fill styles: solid, hollow, and empty with edge. Draws a few polygons with each fill style and checks that they're solid/hollow polygons. The Z-buffer is on.
Attributes Tested: XGL_3D_CTX_HLHSR_MODE
                    XGL_CTX_NEW_FRAME_ACTION
                    XGL_CTX_SURF_EDGE_FLAG
                    XGL_CTX_SURF_FRONT_FILL_STYLE
Operators Tested:   xgl_object_get
                    xgl_object_set
                    xgl_polygon
Output:             Renders each of the following six general polygons three

times (solid, hollow, empty with edge), one after the other: (1) A square with the facet type XGL_FACET_COLOR (2) A square with the facet type XGL_FACET_NORMAL (3) Nine triangles
(4) A self-intersecting polygon with 10 points (5) Two totally overlapping polygons (6) Two partially overlapping polygons
· pg_fill2
Test Types:INDEX, SM
Description:Draws two polygons with edges on/off and with three different stipple patterns. In each case, checks for the correctness of the edges and the patterns inside.
Attributes Tested: XGL_CTX_SURF_EDGE_FLAG
                    XGL_CTX_SURF_FPAT
                    XGL_CTX_SURF_FPAT_POSITION
                    XGL_CTX_SURF_FRONT_FILL_STYLE
                    (XGL_SURF_FILL_STIPPLE)
Operators Tested:   xgl_object_get
                    xgl_object_set
                    xgl_polygon
Output:             Draws two four-sided white polygons six times, one after

the other, with the following stipple pattern styles and edge flags:
(1) Dots stipple pattern, no edge (2) Cross hatch stipple pattern, no edge (3) Dotted screen stipple pattern, no edge (4) Dots stipple pattern with edge (5) Cross hatch stipple pattern with edge (6) Dotted screen stipple pattern with edge
· pg_fill_rgb
Test Types:RGB, SM
Description:Tests various RGB polygon fill styles: solid, hollow, and empty with edge. Draws a few polygons with each fill style and checks that they're solid/hollow polygons.
Attributes Tested: XGL_CTX_EDGE_COLOR
                    XGL_CTX_EDGE_WIDTH_SCALE_FACTOR
                    XGL_CTX_SURF_EDGE_FLAG
                    XGL_CTX_SURF_FRONT_FILL_STYLE
Operators Tested:   xgl_object_get
                    xgl_object_set
                    xgl_polygon
Output:             Renders each of the following six general polygons three

times (solid, hollow, empty with edge), one after the other: (1) A square with the facet type XGL_FACET_COLOR
(2) A square with the facet type XGL_FACET_NORMAL (3) Nine triangles
(4) A self-intersecting polygon with ten points (5) Two totally overlapping polygons (6) Two partially overlapping polygons
· pg_fill_z_rgb
Test Types:RGB, SM
Description:Tests various RGB polygon fill styles: solid, hollow, and empty with edge. Draws a few polygons with each fill style and checks that they're solid/hollow polygons. The Z-buffer is on.
Attributes Tested: XGL_3D_CTX_HLHSR_MODE
                    XGL_CTX_NEW_FRAME_ACTION
                    XGL_CTX_SURF_EDGE_FLAG
                    XGL_CTX_SURF_FRONT_FILL_STYLE
Operators Tested:   xgl_object_get
                    xgl_object_set
                    xgl_polygon
Output:             Renders each of the following six general polygons three

times (solid, hollow, empty with edge), one after the other: (1) A square with the facet type XGL_FACET_COLOR (2) A square with the facet type XGL_FACET_NORMAL (3) Nine triangles
(4) A self-intersecting polygon with ten points (5) Two totally overlapping polygons (6) Two partially overlapping polygons
· pg_fill4
Test Types:RGB, SM
Description:Draws two 2D RGB polygons with edges on/off and with three different stipple patterns. In each case, checks for the correctness of the edges and the patterns inside.
Attributes Tested: XGL_CTX_SURF_EDGE_FLAG
XGL_CTX_SURF_FPAT
XGL_CTX_SURF_FPAT_POSITION
XGL_CTX_SURF_FRONT_FILL_STYLE
(XGL_SURF_FILL_STIPPLE)

Operators Tested: xgl_object_get
                    xgl_object_set
                    xgl_polygon
Output:             Draws two four-sided orange polygons six times, one after

the other, with the following stipple pattern styles and edge flags:
(1) Dots stipple pattern, no edge (2) Cross hatch stipple pattern, no edge (3) Dotted screen stipple pattern, no edge (4) Dots stipple pattern with edge (5) Cross hatch stipple pattern with edge (6) Dotted screen stipple pattern with edge
· pg_fill5
Test Types:RGB, SM
Description:Draws two 2D RGB polygons with three different opaque stipple patterns. In each case, checks for the correctness of the patterns inside.
Attributes Tested: XGL_CTX_SURF_FPAT
                    XGL_CTX_SURF_FPAT_POSITION
                    XGL_CTX_SURF_FRONT_FILL_STYLE
                    (XGL_SURF_FILL_OPAQUE_STIPPLE)
Operators Tested:   xgl_object_get
                    xgl_object_set
                    xgl_polygon
Output:             Draws two four-sided orange polygons three times, one

after the other, with the following opaque stipple pattern styles, on top of a solid fill polygon drawn at the same position:
(1) Dots stipple pattern (2) Cross hatch stipple pattern (3) Dotted screen stipple pattern
· pg_fill6
Test Types:RGB, SM
Description:Tests various 2D RGB polygon fill styles: solid, hollow, and empty with edge. Draws a few polygons with each fill style and checks that they're solid/hollow polygons.
Attributes Tested: XGL_CTX_EDGE_COLOR
                    XGL_CTX_EDGE_WIDTH_SCALE_FACTOR
                    XGL_CTX_SURF_EDGE_FLAG
                    XGL_CTX_SURF_FRONT_FILL_STYLE
Operators Tested:   xgl_object_get
                    xgl_object_set
                    xgl_polygon
Output:             Renders each of the following six general polygons three

times (solid, hollow, empty with edge), one after the other: (1) A square with the facet type XGL_FACET_NORMAL (2) A square with the facet type XGL_FACET_COLOR (3) Nine triangles
(4) A self-intersecting polygon with 10 points (5) Two totally overlapping polygons (6) Two partially overlapping polygons
· pg_fill7
Test Types:RGB, SM
Description:Draws two 3D RGB polygons with edges on/off and with three different stipple patterns. In each case, checks for the correctness of the edges and the patterns inside.
Attributes Tested: XGL_CTX_SURF_EDGE_FLAG
                    XGL_CTX_SURF_FPAT
                    XGL_CTX_SURF_FPAT_POSITION
                    XGL_CTX_SURF_FRONT_FILL_STYLE
                    (XGL_SURF_FILL_STIPPLE)
Operators Tested:   xgl_object_get
                    xgl_object_set
                    xgl_polygon
Output:             Draws two four-sided orange polygons six times, one after

the other, with the following stipple pattern styles and edge flags:
(1) Dots stipple pattern, no edge (2) Cross hatch stipple pattern, no edge (3) Dotted screen stipple pattern, no edge (4) Dots stipple pattern with edge (5) Cross hatch stipple pattern with edge (6) Dotted screen stipple pattern with edge
· pg_fill8
Test Types:RGB, SM
Description:Draws two 3D RGB polygons with three different opaque stipple patterns. In each case, checks for the correctness of the patterns inside.
Attributes Tested: XGL_CTX_SURF_FPAT
                    XGL_CTX_SURF_FPAT_POSITION
                    XGL_CTX_SURF_FRONT_FILL_STYLE
                    (XGL_SURF_FILL_OPAQUE_STIPPLE)
Operators Tested:   xgl_object_get
                    xgl_object_set
                    xgl_polygon
Output:             Draws two four-sided orange polygons three times, one

after the other, with the following opaque stipple pattern styles, on top of a solid fill polygon drawn at the same position:
(1) Dots stipple pattern (2) Cross-hatch stipple pattern (3) Dotted-screen stipple pattern
· pg_back_fill_rgb
Test Types:RGB, SM
Description:Tests various RGB polygon back fill styles: solid, hollow, and empty with edge. Draws a few polygons with each fill style and checks that they're solid/hollow polygons.
Attributes Tested: XGL_3D_CTX_SURF_BACK_FILL_STYLE
Operators Tested: xgl_object_get
Output:.....Renders each of the following six general polygons three times (solid, hollow, empty with edge), one after the other: (1) A square with the facet type XGL_FACET_COLOR_NORMAL
(2) A square with the facet type XGL_FACET_NORMAL
(3) Nine triangles (4) A self-intersecting polygon with ten points (5) Two totally overlapping polygons (6) Two partially overlapping polygons
· pg_back_fill_z_rgb
Test Types:RGB, SM
Description:Tests various RGB polygon back-fill styles: solid, hollow, and empty with edge. Draws a few polygons with each fill style and checks that they're solid/hollow polygons. The Z-buffer is on.
Attributes Tested: XGL_3D_CTX_HLHSR_MODE
Operators Tested: xgl_object_get
Output:.....Renders each of the following six general polygons three times (solid, hollow, empty with edge), one after the other: (1) A square with the facet type XGL_FACET_COLOR_NORMAL
(2) A square with the facet type XGL_FACET_NORMAL (3) Nine triangles
(4) A self-intersecting polygon with ten points (5) Two totally overlapping polygons (6) Two partially overlapping polygons
· pg_fill10
Test Types:RGB, SM
Description:Draws two 3D RGB polygons with edges on/off and with three different back fill stipple patterns. In each case, checks for the correctness of the edges and the patterns inside.
Attributes Tested: XGL_3D_CTX_SURF_BACK_FPAT
XGL_3D_CTX_SURF_BACK_FPAT_POSITION
XGL_3D_CTX_SURF_FACE_DISTINGUISH

Operators Tested: xgl_object_get
                    xgl_object_set
                    xgl_polygon
Output:             Draws two four-sided orange polygons six times, one after

the other, with the following stipple pattern styles and edge flags:
(1) Dots stipple pattern, no edge (2) Cross hatch stipple pattern, no edge (3) Dotted screen stipple pattern, no edge (4) Dots stipple pattern with edge (5) Cross hatch stipple pattern with edge (6) Dotted screen stipple pattern with edge
· pg_fill11
Test Types:RGB, SM
Description:Draws two 3D RGB back-filled polygons with three different opaque stipple patterns. In each case, checks for the correctness of the patterns inside.
Attributes Tested: XGL_3D_CTX_SURF_BACK_FILL_STYLE
Operators Tested: xgl_object_get
Output:.....Draws two four-sided orange polygons three times, one after the other, with the following opaque stipple pattern styles, on top of a solid-fill polygon drawn at the same position:
(1) Dots stipple pattern (2) Cross hatch stipple pattern (3) Dotted screen stipple pattern
· pg_hlhsr
Test Types:INDEX, SM
Description:Tests the polygon hidden surface removal: draws two polygons at the same position but different depth and checks that only the front one is drawn; tries different depth combinations
Attributes Tested: XGL_3D_CTX_HLHSR_MODE (XGL_HLHSR_Z_BUFFER)
                    XGL_CTX_NEW_FRAME_ACTION
                    (XGL_CTX_NEW_FRAME_CLEAR |
                    XGL_CTX_NEW_FRAME_HLHSR_ACTION
Operators Tested:   xgl_object_set
                    xgl_polygon
                    xgl_context_post
                    xgl_context_new_frame
Output:             Draws four solid polygons (a square, a vertical bow tie, a

horizontal bow tie, and a triangle) three times, one after the another. The first time they are drawn in red. The second time and the third time, they are drawn in green.
· pg_hlhsr_2
Test Types:INDEX, SM
Description:Tests the hlhsr polygons with data: clears the Z-buffer to a specific value and then draws a polygon with a different depth; the polygon should only show up if its depth is less than the depth of the Z-buffer; tries different depth combinations
Attributes Tested: XGL_3D_CTX_HLHSR_DATA
                    XGL_3D_CTX_HLHSR_MODE (XGL_HLHSR_Z_BUFFER)
                    XGL_CTX_NEW_FRAME_ACTION
                    (XGL_CTX_NEW_FRAME_CLEAR |
                    XGL_CTX_NEW_FRAME_HLHSR_ACTION
Operators Tested:   xgl_object_set
                    xgl_polygon
                    xgl_context_post
                    xgl_context_new_frame
Output:             Draws a red square four times

· pg_hlhsr_3
Test Types:RGB, SM
Description:Tests the RGB polygon hidden surface removal: draws two polygons at the same position but different depth and checks that only the front one is drawn; tries different depth combinations
Attributes Tested: XGL_3D_CTX_HLHSR_MODE (XGL_HLHSR_Z_BUFFER)
                    XGL_CTX_NEW_FRAME_ACTION
                    (XGL_CTX_NEW_FRAME_CLEAR |
                    XGL_CTX_NEW_FRAME_HLHSR_ACTION
Operators Tested:   xgl_object_set
                    xgl_polygon
                    xgl_context_post
                    xgl_context_new_frame
Output:             Draws four solid polygons (a square, a vertical bow tie, a

horizontal bow tie, and a triangle) three times, one after the other. The first time they are drawn in orange color. The second time and the third time, they are drawn in green.
· pg_hlhsr_4
Test Types:RGB, SM
Description:Tests the hlhsr RGB polygons with data: clears the Z-buffer to a specific value and then draws a polygon with a different depth; the polygon should only show up if its depth is less than the depth of the Z-buffer; tries different depth combinations
Attributes Tested: XGL_3D_CTX_HLHSR_DATA
Operators Tested: xgl_object_set
Output:.....Draws an orange square four times
· pg_intrule
Test Types:INDEX, SM
Description:Draws various polygons with the XGL_EVEN_ODD interior rule using xgl_polygon(); checks their correctness
Attributes Tested: XGL_CTX_SURF_INTERIOR_RULE (XGL_EVEN_ODD)
Operators Tested: xgl_object_get
                    xgl_object_set
                    xgl_polygon
Output:             Draws each of the following five general polygons twice

(first time using a 3D context, second time using a 2D context):
(1) A self-intersecting polygon (2) Two totally overlapping squares (3) Two totally overlapping squares that look the same as number 2
(4) Two partially overlapping polygons (5) A self-intersecting polygon that looks the same as number 1
· pg_intrule2
Test Types:RGB, SM
Description:Draws various RGB polygons with the XGL_EVEN_ODD interior rule using xgl_polygon(); checks their correctness
Attributes Tested: XGL_CTX_SURF_INTERIOR_RULE (XGL_EVEN_ODD)
Operators Tested: xgl_object_get
Output:.....Draws each of the following five general polygons twice (first time using a 3D context, second time using a 2D context):
(1) A self-intersecting polygon (2) Two totally overlapping squares (3) Two totally overlapping squares that look the same as number 2
(4) Two partially overlapping polygons (5) A self-intersecting polygon that looks the same as number 1
· pg_pttypes
Test Types:INDEX, SM
Description:Tests that polygons can be rendered using different point types: draws a vertical bow tie using six different point types and checks that they're all drawn correctly; draws a 400-vertex polygon(circle) and checks that it's drawn right
Attributes Tested: None
Operators Tested: xgl_polygon
Output:· pg_pttypes2Draws a white vertical bow tie six times at the same position. Finally, a white circle is drawn.
Test Types:RGB, SM
Description:Tests that RGB polygons can be rendered using different point types: draws a vertical bow tie using six different point types and checks that they're all drawn correctly; draws a 400-vertex polygon(circle) and checks that its drawn right.
Attributes Tested: None
Operators Tested: xgl_polygon
Output:· pg_shadeDraws an orange vertical bow tie six times at the same position. Finally, an orange circle is drawn.
Test Types:INDEX, SM
Description:Draws a few different polygons with an ambient light on and checks that they're shaded correctly
Attributes Tested: XGL_3D_CTX_LIGHTS
Operators Tested: xgl_object_get
                    xgl_object_set
                    xgl_polygon
Output:             Renders the following seven polygons one after the other:

(1) A shaded square with vertical stripes (2) A shaded square with horizontal stripes (3) Another shaded square
(4) A blue solid square (5) A shaded vertical bow tie with horizontal stripes (6) A blue solid horizontal bow tie
(7) A shaded triangle with horizontal stripes
· pg_shade_z
Test Types:INDEX, SM
Description:Draws a few different polygons with an ambient light on and checks that they're shaded correctly. The Z-buffer is on.
Attributes Tested: XGL_3D_CTX_HLHSR_MODE
                    XGL_3D_CTX_LIGHTS
                    XGL_3D_CTX_LIGHT_NUM
                    XGL_3D_CTX_LIGHT_SWITCHES
                    XGL_3D_CTX_SURF_FRONT_AMBIENT
                    XGL_3D_CTX_SURF_FRONT_ILLUMINATION
                    XGL_3D_CTX_SURF_FRONT_LIGHT_COMPONENT
                    XGL_LIGHT_COLOR
                    XGL_LIGHT_TYPE
Operators Tested:   xgl_object_get
                    xgl_object_set
                    xgl_polygon
Output:             Renders the following seven polygons one after the other:

(1) A shaded square with vertical stripes (2) A shaded square with horizontal stripes (3) Another shaded square
(4) A blue solid square (5) A shaded vertical bow tie with horizontal stripes (6) A blue solid horizontal bow tie
(7) A shaded triangle with horizontal stripes
· pg_shade_rgb
Test Types:RGB, SM
Description:Draws a few different RGB polygons with an ambient light on and checks that they're shaded correctly
Attributes Tested: XGL_3D_CTX_LIGHTS

Operators Tested: xgl_object_get
Output:.....The following six polygons are rendered one after the other:
(1) A shaded square with vertical stripes (2) A shaded square with horizontal stripes (3) A blue solid square
(4) A shaded vertical bow tie with horizontal stripes (5) A blue solid horizontal bow tie
(6) A shaded triangle with horizontal stripes
· pg_shade_z_rgb
Test Types:RGB, SM
Description:Draws a few different RGB polygons with an ambient light on and checks that they're shaded correctly. The Z-buffer is on.
Attributes Tested: XGL_3D_CTX_HLHSR_MODE
XGL_3D_CTX_LIGHTS
XGL_3D_CTX_LIGHT_NUM
XGL_3D_CTX_LIGHT_SWITCHES
XGL_3D_CTX_SURF_FRONT_AMBIENT
XGL_3D_CTX_SURF_FRONT_ILLUMINATION
XGL_3D_CTX_SURF_FRONT_LIGHT_COMPONENT
XGL_LIGHT_COLOR
XGL_LIGHT_TYPE

Operators Tested: xgl_object_get
                    xgl_object_set
                    xgl_polygon
Output:             Renders the following six polygons one after the other:

(1) A shaded square with vertical stripes (2) A shaded square with horizontal stripes (3) A blue solid square
(4) A shaded vertical bow tie with horizontal stripes (5) A blue solid horizontal bow tie
(6) A shaded triangle with horizontal stripes
· pg_shade_hlhsr
Test Types:INDEX, SM
Description:Tests the shaded polygon's hidden surface removal: draws two shaded polygons at the same position but different depth and checks that only the front one is drawn; tries different depth combinations
Attributes Tested: XGL_3D_CTX_HLHSR_MODE

Operators Tested: xgl_object_set
Output:· pg_shade_hlhsr2Draws four shaded polygons (a square, a vertical bow tie, a horizontal bow tie, and a triangle) three times, one after the other
Test Types:RGB, SM
Description:Tests shaded RGB polygon's hidden surface removal: draws two shaded RGB polygons at the same position but different depth and checks that only the front one is drawn; tries different depth combinations
Attributes Tested: XGL_3D_CTX_HLHSR_MODE
                    XGL_3D_CTX_SURF_FRONT_AMBIENT
                    XGL_3D_CTX_SURF_FRONT_ILLUMINATION
                    XGL_3D_CTX_SURF_FRONT_LIGHT_COMPONENT
                    XGL_CTX_NEW_FRAME_ACTION
                    (XGL_CTX_NEW_FRAME_CLEAR |
                    XGL_CTX_NEW_FRAME_HLHSR_ACTION)
Operators Tested:   xgl_object_set
                    xgl_polygon
                    xgl_context_post
                    xgl_context_new_frame
Output:             Draws three shaded polygons (a square, a horizontal bow

tie, and a triangle) three times, one after the other
· gc_pg_cull
Test Types:INDEX, SM
Description:Tests the three face-culling modes for gcached polygon
Attributes Tested: XGL_CTX_SURF_FRONT_FILL_STYLE
                    XGL_3D_CTX_SURF_BACK_FILL_STYLE
                    XGL_3D_CTX_SURF_FRONT_ILLUMINATION
                    XGL_3D_CTX_SURF_BACK_ILLUMINATION
                    XGL_3D_CTX_SURF_FACE_DISTINGUISH
                    XGL_3D_CTX_SURF_FACE_CULL
Operators Tested:   xgl_object_create
                    xgl_object_set
                    xgl_gcache_polygon
                    xgl_context_display_gcache
Output:             Draws two polygons, red for front facing and green for

back facing. These alternate when culling is turned off and on.
· gc_pg_decomp
Test Types:INDEX, SM
Description:Tests that xgl_gcache_polygon() correctly applies XGL_CTX_SURF_INTERIOR_RULE when drawing gcached polygons. This exercises the gcached_polygon decomposing attribute.
Attributes Tested: XGL_GCACHE_DO_POLYGON_DECOMP
                    XGL_GCACHE_POLYGON_TYPE
                    (XGL_POLYGON_COMPLEX)
                    XGL_CTX_SURF_INTERIOR_RULE
Operators Tested:   xgl_object_create
                    xgl_object_set
                    xgl_gcache_polygon
                    xgl_context_display_gcache
Output:             Draws various nonconvex (they all have holes) polygons,
                    all with surface color of default white

· gc_pg_decomp1
Test Types:INDEX, SM
Description:Tests that xgl_gcache_polygon() correctly decompose odd shaped polygons.
Attributes Tested: XGL_GCACHE_DO_POLYGON_DECOMP
Operators Tested: xgl_object_create
                    xgl_object_set
                    xgl_gcache_polygon
                    xgl_context_display_gcache
Output:             Draws various nonconvex (they all have holes) polygons,
                    all with blue surface

· gc_pg_decomp_pttypes
Test Types:INDEX, SM
Description:Tests that gcached polygons can be rendered using different point types: draws a vertical bow tie using two different point types and checks that they're all drawn correctly; draws a 400-vertex polygon (circle) with XGL_GCACHE_DO_POLYGON_DECOMP set and checks that it's drawn right. Also checks
                    XGL_GCACHE_DISPLAY_PRIM_TYPE and
                    XGL_GCACHE_ORIG_PRIM_TYPE.
Attributes Tested:  XGL_GCACHE_DISPLAY_PRIM_TYPE
                    XGL_GCACHE_DO_POLYGON_DECOMP
                    XGL_GCACHE_IS_EMPTY

                    XGL_GCACHE_ORIG_PRIM_TYPE
                    XGL_GCACHE_POLYGON_TYPE (XGL_POLYGON_NSI)
                    XGL_GCACHE_SHOW_DECOMP_EDGES
Operators Tested:   xgl_object_create
                    xgl_object_set
                    xgl_gcache_polygon
                    xgl_context_display_gcache
                    xgl_object_destroy
Output:             Draws a white vertical bow tie twice at the same position.
                    Finally, draws a white circle.

· gc_pg_edge4
Test Types:RGB, CM
Description:3D polygon edge flags test for gcached polygons; cycles through various combinations of edge flag settings using point flag types
Attributes Tested: XGL_CTX_EDGE_COLOR
                    XGL_GCACHE_USE_APPL_GEOM
                    XGL_GCACHE_POLYGON_TYPE (XGL_POLYGON_NSI)
Operators Tested:   xgl_context_display_gcache
                    xgl_gcache_polygon
Output:             Draws image with sixteen polygons with various edges

illuminated; surface color is green, edges are purple
· gc_pg_face
Test Types:INDEX, SM
Description:Tests that gcached polygons are rendered correctly when
                    XGL_3D_CTX_SURF_FACE_DISTINGUISH is
                    TRUE/FALSE and XGL_3D_CTX_SURF_NORMAL_FLIP is
                    TRUE/FALSE
Attributes Tested:  XGL_CTX_SURF_FRONT_FILL_STYLE
                    (XGL_SURF_FILL_SOLID)
                    XGL_3D_CTX_SURF_BACK_FILL_STYLE
                    (XGL_SURF_FILL_HOLLOW)
                    XGL_3D_CTX_SURF_BACK_COLOR
                    XGL_3D_CTX_SURF_NORMAL_FLIP
                    XGL_3D_CTX_SURF_FACE_DISTINGUISH
                    XGL_GCACHE_POLYGON_TYPE (XGL_POLYGON_NSI)
Operators Tested:   xgl_object_create
                    xgl_object_set
                    xgl_gcache_polygon
                    xgl_context_display_gcache
                    xgl_object_destroy
Output:             Draws three convex polygons, red solids and/or green
                    hollow, both front and back facing.

· gc_pg_face2
Test Types:RGB, SM
Description:Tests that gcached RGB polygons are rendered correctly when XGL_3D_CTX_SURF_FACE_DISTINGUISH is TRUE/FALSE and XGL_3D_CTX_SURF_NORMAL_FLIP is TRUE/FALSE
Attributes Tested: XGL_CTX_SURF_FRONT_FILL_STYLE
                    (XGL_SURF_FILL_SOLID)
                    XGL_3D_CTX_SURF_BACK_FILL_STYLE
                    (XGL_SURF_FILL_HOLLOW)
                    XGL_3D_CTX_SURF_BACK_COLOR
                    XGL_3D_CTX_SURF_NORMAL_FLIP
                    XGL_3D_CTX_SURF_FACE_DISTINGUISH
                    XGL_GCACHE_POLYGON_TYPE (XGL_POLYGON_NSI)
Operators Tested:   xgl_object_create
                    xgl_object_set
                    xgl_gcache_polygon
                    xgl_context_display_gcache
                    xgl_object_destroy
Output:             Draws three convex polygons, red solids and/or green
                    hollow, both front and back facing.

· gc_pg_fill1
Test Types:INDEX, SM
Description:Tests various gcached polygon fill styles. Uses an array of gcaches to store five point lists; since some are complex polygons, XGL_POLYGON_COMPLEX is set to true.
Attributes Tested: XGL_3D_CTX_HLHSR_MODE

Operators Tested: xgl_object_create
Output:· gc_pg_fill3Draws various polygons, each on a rendering cycle of yellow solid, then yellow hollow, green edges, then red solid, red hollow, green edges, and so on
Test Types:RGB, SM
Description:Tests various RGB gcached polygon fill styles; polygons are either facet normal or facet color type
Attributes Tested: XGL_CTX_SURF_FRONT_FILL_STYLE
                    XGL_CTX_SURF_FRONT_COLOR
                    XGL_3D_CTX_HLHSR_MODE
                    XGL_GCACHE_POLYGON_TYPE
                    (XGL_POLYGON_COMPLEX)
                    XGL_CTX_SURF_EDGE_FLAG
                    XGL_CTX_EDGE_WIDTH_SCALE_FACTOR
                    XGL_CTX_EDGE_COLOR
Operators Tested:   xgl_object_create
                    xgl_object_set
                    xgl_gcache_polygon
                    xgl_context_display_gcache
                    xgl_object_destroy
Output:             Draws convex polygons and then overlapping: first in

orange solid, then orange hollow, then green edges
· gc_pg_fill9
Test Types:RGB, SM
Description:Tests various RGB gcached polygon back fill styles. The polygons are of type facet color, facet normal, or facet color normal.
Attributes Tested: XGL_CTX_EDGE_WIDTH_SCALE_FACTOR
                    XGL_3D_CTX_SURF_BACK_FILL_STYLE
                    XGL_3D_CTX_HLHSR_MODE
                    XGL_GCACHE_POLYGON_TYPE
                    (XGL_POLYGON_COMPLEX)
Operators Tested:   xgl_object_create
                    xgl_object_set
                    xgl_gcache_polygon
                    xgl_context_display_gcache

Output:· gc_pg_intruleDraws various polygons rendered first magenta solid then hollow, orange solid then hollow, edge color green, and so on
Test Types:INDEX, SM
Description:Draws various gcached polygons with the XGL_EVEN_ODD interior rule using xgl_gcache_polygon(); checks their correctness
Attributes Tested: XGL_3D_CTX_HLHSR_MODE
                    XGL_CTX_SURF_INTERIOR_RULE (XGL_EVEN_ODD)
                    XGL_GCACHE_POLYGON_TYPE
                    (XGL_POLYGON_COMPLEX)
Operators Tested:   xgl_object_create
                    xgl_object_set
                    xgl_gcache_polygon
                    xgl_context_display_gcache
                    xgl_object_destroy
Output:             Draws each of the following five general polygons twice

(first time with Z-buffer off, second time with Z-buffer on):
(1) A self-intersecting polygon (2) Two totally overlapping squares (3) Two totally overlapping squares that look the same as number 2
(4) Two partially overlapping polygons (5) A self-intersecting polygon that looks the same as number 1
· gc_pg_intrule2
Test Types:RGB, SM
Description:Draws various gcached RGB polygons with the XGL_EVEN_ODD interior rule using xgl_gcache_polygon(); checks their correctness
Attributes Tested: XGL_3D_CTX_HLHSR_MODE
XGL_CTX_SURF_INTERIOR_RULE (XGL_EVEN_ODD)
XGL_GCACHE_POLYGON_TYPE
(XGL_POLYGON_COMPLEX)

Operators Tested: xgl_object_create
                    xgl_object_set
                    xgl_gcache_polygon
                    xgl_context_display_gcache
                    xgl_object_destroy
Output:             Draws each of the following five general polygons twice

(first time with Z-buffer off, second time with Z-buffer on):
(1) A self-intersecting polygon (2) Two totally overlapping squares (3) Two totally overlapping squares that look the same as number 2
(4) Two partially overlapping polygons (5) A self-intersecting polygon which looks the same as number 1
· gc_pg_pttypes
Test Types:INDEX, SM
Description:Tests that gcached polygons can be rendered using different point types: draws a vertical bow tie using two different point types and checks that they're all drawn correctly; draws a 400-vertex polygon (circle) and checks that it's drawn right.
Attributes Tested: XGL_GCACHE_IS_EMPTY
                    XGL_GCACHE_POLYGON_TYPE (XGL_POLYGON_NSI)
Operators Tested:   xgl_object_create
                    xgl_object_set
                    xgl_gcache_polygon
                    xgl_context_display_gcache
                    xgl_object_destroy
Output:             Draws a white vertical bow tie twice at the same position.
                    Finally, draws a white circle.

· gc_pg_pttypes2
Test Types:RGB, SM
Description:Tests that gcached RGB polygons can be rendered using different point types: draws a vertical bow tie using two different point types and checks that they're all drawn correctly; draws a 400-vertex polygon (circle) and checks that it's drawn right.
Attributes Tested: XGL_GCACHE_IS_EMPTY
                    XGL_GCACHE_POLYGON_TYPE (XGL_POLYGON_NSI)
Operators Tested:   xgl_object_create
                    xgl_object_set
                    xgl_gcache_polygon
                    xgl_context_display_gcache
Output:             Draws an orange vertical bow tie twice at the same

position. Finally, draws an orange circle.
· gc_pg_decomp_facet
Test Types:INDEX, SM
Description:Tests for gcaching complex (nonconvex) polygons with various facet types. The four different kinds of facets are stored with the polygon primitives in the gcache. The default surface color is blue, so red surfaces should be rendered for the facets with color information only. Every time the caches are reused, the program first explicitly sets XGL_GCACHE_IS_EMPTY to TRUE. Also, a check is done to see if decomposition was actually done in the cache.
Attributes Tested: XGL_GCACHE_DO_POLYGON_DECOMP
                    XGL_GCACHE_DISPLAY_PRIM_TYPE
                    XGL_GCACHE_ORIG_PRIM_TYPE
                    XGL_GCACHE_POLYGON_TYPE
                    (XGL_POLYGON_COMPLEX)
Operators Tested:   xgl_object_create
                    xgl_object_set
                    xgl_gcache_polygon
                    xgl_context_display_gcache
Output:             Nonconvex polygons, in alternating colors of blue then
                    red

· gc_pg_decomp_complex
Test Types:INDEX, SM
Description:Tests for gcached complex multiboundary polygon. Tests cache for XGL_GCACHE_USE_APPL_GEOM, as well as one polygon/cache with multiple (eight) boundaries and greater than 100 points. Index color mode used.
Attributes Tested: XGL_GCACHE_DO_POLYGON_DECOMP
                    XGL_GCACHE_POLYGON_TYPE
                    (XGL_POLYGON_COMPLEX)
                    XGL_GCACHE_IS_EMPTY
                    XGL_GCACHE_USE_APPL_GEOM
                    XGL_GCACHE_DISPLAY_PRIM_TYPE
                    XGL_GCACHE_ORIG_PRIM_TYPE
Operators Tested:   xgl_object_create
                    xgl_object_set
                    xgl_gcache_polygon
                    xgl_context_display_gcache
                    xgl_object_destroy
Output:             Draws two columns of nonconvex (horizontal zigzagged)
                    red polygons

· gc_pg_show_decomp
Test Types:CM, INDEX
Description:Shows the decomposition of a complex gcached polygon with multiple boundaries, by setting XGL_GCACHE_SHOW_DECOMP_EDGES to true. This also exercises XGL_GCACHE_USE_APPL_GEOM for mode of storage, then renders each image and uses comparison methodology for verifying correctness. Index color mode used.
Attributes Tested: XGL_GCACHE_SHOW_DECOMP_EDGES
Operators Tested: xgl_object_create
Output:· polygonNonconvex polygons with blue surfaces and red edges. On the gx, you can see the edges delineating where the tessellation took place.
Test Types:SM, INDEX
Description:Uses various colors and hatch styles to fill four-sided polygons.
Attributes Tested: XGL_CTX_SURF_FRONT_COLOR
                    XGL_CTX_SURF_FRONT_FILL_STYLE
                    XGL_CTX_SURF_FRONT_FPAT
Operators Tested:   xgl_object_set
                    xgl_polygon
Output:             Draws solid squares of various colors and hatch-styled
                    squares

· pg_threshold
Test Types:SM, INDEX
Description:Tests convex and nonconvex polygons and XGL_CTX_THRESHOLD. It also sets the threshold and renders with null bbox (which should render all the shapes).
Attributes Tested: XGL_CTX_THRESHOLD
Operators Tested: xgl_object_set
Output:.....Renders twelve polygons of different sizes and bounding boxes with threshold values set from 0 to 100 in increments of 20