From: <Sie...@us...> - 2009-01-19 22:55:37
|
Revision: 11474 http://alleg.svn.sourceforge.net/alleg/?rev=11474&view=rev Author: SiegeLord Date: 2009-01-19 21:45:15 +0000 (Mon, 19 Jan 2009) Log Message: ----------- Fixed some documentation errors. Modified Paths: -------------- allegro/branches/4.9/docs/src/refman/primitives.txt Modified: allegro/branches/4.9/docs/src/refman/primitives.txt =================================================================== --- allegro/branches/4.9/docs/src/refman/primitives.txt 2009-01-19 19:10:55 UTC (rev 11473) +++ allegro/branches/4.9/docs/src/refman/primitives.txt 2009-01-19 21:45:15 UTC (rev 11474) @@ -4,7 +4,7 @@ ## API: al_draw_line_ex -Draws a line segment between two points, blending between two colours and using a provided texture. +Draws a line segment between two points. *Parameters:* @@ -14,7 +14,7 @@ ## API: al_draw_triangle -Draws a triangle. +Draws an outlined triangle. *Parameters:* @@ -33,7 +33,7 @@ ## API: al_draw_rectangle_ex -Draws a rectangle. +Draws an outlined rectangle. *Parameters:* @@ -68,7 +68,7 @@ ## API: al_draw_ellipse -Draws an ellipse +Draws an outlined ellipse. *Parameters:* @@ -79,7 +79,7 @@ ## API: al_draw_filled_ellipse -Draws a filled ellipse +Draws a filled ellipse. *Parameters:* @@ -89,7 +89,7 @@ ## API: al_draw_circle -Draws a circle +Draws an outlined circle. *Parameters:* @@ -100,7 +100,7 @@ ## API: al_draw_filled_circle -Draws a filled circle +Draws a filled circle. *Parameters:* @@ -110,7 +110,7 @@ ## API: al_draw_arc -Draws an arc +Draws an arc. *Parameters:* @@ -159,7 +159,7 @@ ## API: al_draw_ribbon -Draws a ribbon given given an array of points. +Draws a ribbon given given an array of points. The ribbon will go through all of the passed points. *Parameters:* @@ -401,7 +401,7 @@ ## API: al_copy_transform -Makes a copy of a transformation +Makes a copy of a transformation. *Parameters:* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Sie...@us...> - 2009-01-31 02:36:43
|
Revision: 11529 http://alleg.svn.sourceforge.net/alleg/?rev=11529&view=rev Author: SiegeLord Date: 2009-01-31 02:12:45 +0000 (Sat, 31 Jan 2009) Log Message: ----------- Fixed some documentation errors Modified Paths: -------------- allegro/branches/4.9/docs/src/refman/primitives.txt Modified: allegro/branches/4.9/docs/src/refman/primitives.txt =================================================================== --- allegro/branches/4.9/docs/src/refman/primitives.txt 2009-01-31 02:05:08 UTC (rev 11528) +++ allegro/branches/4.9/docs/src/refman/primitives.txt 2009-01-31 02:12:45 UTC (rev 11529) @@ -428,7 +428,7 @@ ## API: al_build_transform Builds a transformation given some parameters. This call is equivalent to calling -the transformations in this order: scale, rotate, translate, except this method is faster. +the transformations in this order: make identity, scale, rotate, translate. This method is faster, however. *Parameters:* @@ -531,7 +531,7 @@ ## API: ALLEGRO_VBUFFER Defines the generic vertex buffer type. They hold vertices in an arrangement that is conducive to rapid -drawing. Vertex buffers have to be locked to read/write data from them, and have to be unlocked while drawing. +drawing. Vertex buffers have to be locked to read/write data from them, and have to be unlocked before drawing. Use the various access routines to operate on them, never touching the internal data if possible. # Constants @@ -542,9 +542,9 @@ * ALLEGRO_PRIM_LINE_LIST - A list of lines, sequential pairs of vertices define disjointed lines * ALLEGRO_PRIM_LINE_STRIP - A strip of lines, sequential vertices define a strip of lines -* ALLEGRO_PRIM_LINE_LOOP - Like a line strip, except at the end the first and the last vertices are also connected +* ALLEGRO_PRIM_LINE_LOOP - Like a line strip, except at the end the first and the last vertices are also connected by a line * ALLEGRO_PRIM_TRIANGLE_LIST - A list of triangles, sequential triplets of vertices define disjointed triangles -* ALLEGRO_PRIM_TRIANGLE_STRIP - A strip of lines, sequential vertices define a strip of triangles +* ALLEGRO_PRIM_TRIANGLE_STRIP - A strip of triangles, sequential vertices define a strip of triangles * ALLEGRO_PRIM_TRIANGLE_FAN - A fan of triangles, all triangles share the first vertex ## API: ALLEGRO_VBUFFER_FLAGS This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Sie...@us...> - 2009-02-01 20:18:48
|
Revision: 11542 http://alleg.svn.sourceforge.net/alleg/?rev=11542&view=rev Author: SiegeLord Date: 2009-02-01 20:18:44 +0000 (Sun, 01 Feb 2009) Log Message: ----------- Minor documentation fix Modified Paths: -------------- allegro/branches/4.9/docs/src/refman/primitives.txt Modified: allegro/branches/4.9/docs/src/refman/primitives.txt =================================================================== --- allegro/branches/4.9/docs/src/refman/primitives.txt 2009-02-01 20:04:59 UTC (rev 11541) +++ allegro/branches/4.9/docs/src/refman/primitives.txt 2009-02-01 20:18:44 UTC (rev 11542) @@ -455,7 +455,7 @@ * trans - Transformation to alter * theta - Rotation angle -## API: al_rotate_transform +## API: al_scale_transform Apply a scale to a transformation. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Sie...@us...> - 2009-02-06 02:03:07
|
Revision: 11552 http://alleg.svn.sourceforge.net/alleg/?rev=11552&view=rev Author: SiegeLord Date: 2009-02-06 01:50:00 +0000 (Fri, 06 Feb 2009) Log Message: ----------- Fixed a documentation error Modified Paths: -------------- allegro/branches/4.9/docs/src/refman/primitives.txt Modified: allegro/branches/4.9/docs/src/refman/primitives.txt =================================================================== --- allegro/branches/4.9/docs/src/refman/primitives.txt 2009-02-05 00:42:57 UTC (rev 11551) +++ allegro/branches/4.9/docs/src/refman/primitives.txt 2009-02-06 01:50:00 UTC (rev 11552) @@ -152,7 +152,7 @@ *Parameters:* * vbuff - Vertex buffer to fill out -* points - An array of 4 pairs of coordinates of the 4 control points +* points - An array of pairs of coordinates for each point * start - The index of the first calculated point in the vertex buffer * thickness - Thickness of the spline ribbon * num_segments - The number of points to calculate @@ -163,7 +163,7 @@ *Parameters:* -* points - An array of 4 pairs of coordinates of the 4 control points +* points - An array of pairs of coordinates for each point * color - Color of the spline * thickness - Thickness of the spline, pass <= 0 to draw hairline spline This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <el...@us...> - 2009-03-27 09:49:06
|
Revision: 11981 http://alleg.svn.sourceforge.net/alleg/?rev=11981&view=rev Author: elias Date: 2009-03-27 09:48:56 +0000 (Fri, 27 Mar 2009) Log Message: ----------- Prevent a bug in pandoc 1.2's .tex output Modified Paths: -------------- allegro/branches/4.9/docs/src/refman/primitives.txt Modified: allegro/branches/4.9/docs/src/refman/primitives.txt =================================================================== --- allegro/branches/4.9/docs/src/refman/primitives.txt 2009-03-27 01:34:55 UTC (rev 11980) +++ allegro/branches/4.9/docs/src/refman/primitives.txt 2009-03-27 09:48:56 UTC (rev 11981) @@ -234,7 +234,8 @@ *Returns:* 1 if locking was successful, 0 otherwise -*See Also:*[ALLEGRO_VBUFFER], [ALLEGRO_VBUFFER_FLAGS] +*See Also:* +[ALLEGRO_VBUFFER], [ALLEGRO_VBUFFER_FLAGS] ## API: al_unlock_vbuff This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sie...@us...> - 2009-05-24 20:22:22
|
Revision: 12219 http://alleg.svn.sourceforge.net/alleg/?rev=12219&view=rev Author: siegelord Date: 2009-05-24 20:22:14 +0000 (Sun, 24 May 2009) Log Message: ----------- Clarified texture use in the primitives addon Modified Paths: -------------- allegro/branches/4.9/docs/src/refman/primitives.txt Modified: allegro/branches/4.9/docs/src/refman/primitives.txt =================================================================== --- allegro/branches/4.9/docs/src/refman/primitives.txt 2009-05-24 06:55:55 UTC (rev 12218) +++ allegro/branches/4.9/docs/src/refman/primitives.txt 2009-05-24 20:22:14 UTC (rev 12219) @@ -171,7 +171,8 @@ ## API: al_draw_prim -Draws a subset of the passed vertex buffer. +Draws a subset of the passed vertex buffer. It is recommended for the texture to have +its dimensions be a power of 2 for maximum portability with older video cards. *Parameters:* @@ -189,6 +190,7 @@ ## API: al_draw_indexed_prim Draws a subset of the passed vertex buffer. This function uses an index array to specify which vertices to use. +It is recommended for the texture to have its dimensions be a power of 2 for maximum portability with older video cards. *Parameters:* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sie...@us...> - 2009-05-26 01:22:16
|
Revision: 12224 http://alleg.svn.sourceforge.net/alleg/?rev=12224&view=rev Author: siegelord Date: 2009-05-26 00:37:40 +0000 (Tue, 26 May 2009) Log Message: ----------- Added documentation for the exposed rasterizers. Modified Paths: -------------- allegro/branches/4.9/docs/src/refman/primitives.txt Modified: allegro/branches/4.9/docs/src/refman/primitives.txt =================================================================== --- allegro/branches/4.9/docs/src/refman/primitives.txt 2009-05-25 16:45:10 UTC (rev 12223) +++ allegro/branches/4.9/docs/src/refman/primitives.txt 2009-05-26 00:37:40 UTC (rev 12224) @@ -241,6 +241,38 @@ *See Also:* [ALLEGRO_PRIM_COLOR], [al_get_allegro_color] +## API: al_draw_soft_triangle + +Draws a triangle using the software rasterizer and user supplied pixel functions. For help in understanding what these functions do, see the implementation of the various shading routines in addons/primitives/tri_soft.c. +The triangle is drawn in two segments, from top to bottom. The segments are deliniated by the vertically middle vertex of the triangle. One of each segment may be present if two vertices are horizontally collinear. + +*Parameters:* + +* v1, v2, v3 - The three vertices of the triangle +* state - A pointer to a user supplied struct, this struct will be passed to all the pixel functions +* init - This function is called once, before any drawing is done. The three points passed to it may be altered by clipping. +* first - The function is called twice, once per triangle segment. It is passed 4 parameters, the first two are the coordinates of the initial pixel drawn in the segment. + The second two are the left minor and the left major steps, respectively. They represent the sizes of two steps taken by the rasterizer as it walks + on the left side of the triangle. From then on, the each step will either be classified as a minor or a major step, corresponding to the above values. +* step - Called once per scanline. The last parameter is set to 1 if the step is a minor step, and 0 if it is a major step. +* draw - Called once per scanline. The function is expected to draw the scanline starting with a point specified by the first two parameters (corresponding to x and y values) + going to the right until it reaches the value of the third parameter (the x value of the end point). All coordinates are inclusive. + +## API: al_draw_soft_line + +Draws a line using the software rasterizer and user supplied pixel functions. For help in understanding what these functions do, see the implementation of the various shading routines in addons/primitives/line_soft.c. +The line is drawn top to bottom. + +*Parameters:* + +* v1, v2 - The two vertices of the line +* state - A pointer to a user supplied struct, this struct will be passed to all the pixel functions +* first - The function is called before drawing the first pixel of the line. It is passed the coordinates of this pixel, as well as the two vertices above. + The passed vertices may have been altered by clipping. +* step - Called once per pixel. The second parameter is set to 1 if the step is a minor step, and 0 if this step is a major step. Minor steps are taken only either in x or y directions. + Major steps are taken in both directions diagonally. In all cases, the the absolute value of the change in coordinate is at most 1 in either direction. +* draw - Called once per pixel. The function is expected to draw the pixel at the two coordinates passed to it. + # Transformations ## API: al_copy_transform This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tj...@us...> - 2009-06-03 23:01:30
|
Revision: 12237 http://alleg.svn.sourceforge.net/alleg/?rev=12237&view=rev Author: tjaden Date: 2009-06-03 23:01:20 +0000 (Wed, 03 Jun 2009) Log Message: ----------- Wrap overlong lines. Modified Paths: -------------- allegro/branches/4.9/docs/src/refman/primitives.txt Modified: allegro/branches/4.9/docs/src/refman/primitives.txt =================================================================== --- allegro/branches/4.9/docs/src/refman/primitives.txt 2009-06-03 20:38:19 UTC (rev 12236) +++ allegro/branches/4.9/docs/src/refman/primitives.txt 2009-06-03 23:01:20 UTC (rev 12237) @@ -73,10 +73,12 @@ ## API: al_calculate_arc -Calculates an elliptical arc, and sets the vertices in the destination to the calculated positions. If thickness <= 0, then -`num_points` of points are required in the destination, otherwise twice as many are needed. -The destination buffer should consist of regularly spaced (by distance of stride bytes) doublets of floats, corresponding to -x and y coordinates of the vertices. +Calculates an elliptical arc, and sets the vertices in the destination to the +calculated positions. If thickness <= 0, then `num_points` of points are +required in the destination, otherwise twice as many are needed. The +destination buffer should consist of regularly spaced (by distance of stride +bytes) doublets of floats, corresponding to x and y coordinates of the +vertices. *Parameters:* @@ -141,15 +143,17 @@ * r - Radius of the arc * color - Color of the arc * start_theta - The initial angle from which the arc is calculated -* delta_theta - Angular span of the arc (pass a negative number to switch direction) +* delta_theta - Angular span of the arc (pass a negative number to switch + direction) * thickness - Thickness of the circle, pass <= 0 to draw hairline circle ## API: al_calculate_spline Calculates a spline given 4 control points. If thickness <= 0, then -`num_segments` of points are required in the destination, otherwise twice as many are needed. -The destination buffer should consist of regularly spaced (by distance of stride bytes) doublets of floats, corresponding to -x and y coordinates of the vertices. +`num_segments` of points are required in the destination, otherwise twice as +many are needed. The destination buffer should consist of regularly spaced (by +distance of stride bytes) doublets of floats, corresponding to x and y +coordinates of the vertices. *Parameters:* @@ -171,23 +175,27 @@ ## API: al_calculate_ribbon -Calculates a ribbon given an array of points. The ribbon will go through all of the passed points. If thickness <= 0, then -`num_segments` of points are required in the destination buffer, otherwise twice as many are needed. -The destination and the points buffer should consist of regularly spaced doublets of floats, corresponding to -x and y coordinates of the vertices. +Calculates a ribbon given an array of points. The ribbon will go through all of +the passed points. If thickness <= 0, then `num_segments` of points are +required in the destination buffer, otherwise twice as many are needed. +The destination and the points buffer should consist of regularly spaced +doublets of floats, corresponding to x and y coordinates of the vertices. *Parameters:* * dest - Pointer to the destination buffer -* dest_stride - Distance (in bytes) between successive pairs of coordinates in the destination buffer +* dest_stride - Distance (in bytes) between successive pairs of coordinates in + the destination buffer * points - An array of pairs of coordinates for each point -* points_stride - Distance (in bytes) between successive pairs of coordinates in the points buffer +* points_stride - Distance (in bytes) between successive pairs of coordinates + in the points buffer * thickness - Thickness of the spline ribbon * num_segments - The number of points to calculate ## API: al_draw_ribbon -Draws a ribbon given given an array of points. The ribbon will go through all of the passed points. +Draws a ribbon given given an array of points. The ribbon will go through all +of the passed points. *Parameters:* @@ -199,8 +207,9 @@ ## API: al_draw_prim -Draws a subset of the passed vertex buffer. It is recommended for the texture to have -its dimensions be a power of 2 for maximum portability with older video cards. +Draws a subset of the passed vertex buffer. It is recommended for the texture +to have its dimensions be a power of 2 for maximum portability with older video +cards. *Parameters:* @@ -217,8 +226,10 @@ ## API: al_draw_indexed_prim -Draws a subset of the passed vertex buffer. This function uses an index array to specify which vertices to use. -It is recommended for the texture to have its dimensions be a power of 2 for maximum portability with older video cards. +Draws a subset of the passed vertex buffer. This function uses an index array +to specify which vertices to use. +It is recommended for the texture to have its dimensions be a power of 2 for +maximum portability with older video cards. *Parameters:* @@ -264,35 +275,58 @@ ## API: al_draw_soft_triangle -Draws a triangle using the software rasterizer and user supplied pixel functions. For help in understanding what these functions do, see the implementation of the various shading routines in addons/primitives/tri_soft.c. -The triangle is drawn in two segments, from top to bottom. The segments are deliniated by the vertically middle vertex of the triangle. One of each segment may be present if two vertices are horizontally collinear. +Draws a triangle using the software rasterizer and user supplied pixel +functions. For help in understanding what these functions do, see the +implementation of the various shading routines in addons/primitives/tri_soft.c. +The triangle is drawn in two segments, from top to bottom. The segments are +deliniated by the vertically middle vertex of the triangle. One of each segment +may be present if two vertices are horizontally collinear. *Parameters:* * v1, v2, v3 - The three vertices of the triangle -* state - A pointer to a user supplied struct, this struct will be passed to all the pixel functions -* init - This function is called once, before any drawing is done. The three points passed to it may be altered by clipping. -* first - The function is called twice, once per triangle segment. It is passed 4 parameters, the first two are the coordinates of the initial pixel drawn in the segment. - The second two are the left minor and the left major steps, respectively. They represent the sizes of two steps taken by the rasterizer as it walks - on the left side of the triangle. From then on, the each step will either be classified as a minor or a major step, corresponding to the above values. -* step - Called once per scanline. The last parameter is set to 1 if the step is a minor step, and 0 if it is a major step. -* draw - Called once per scanline. The function is expected to draw the scanline starting with a point specified by the first two parameters (corresponding to x and y values) - going to the right until it reaches the value of the third parameter (the x value of the end point). All coordinates are inclusive. +* state - A pointer to a user supplied struct, this struct will be passed to + all the pixel functions +* init - This function is called once, before any drawing is done. The three + points passed to it may be altered by clipping. +* first - The function is called twice, once per triangle segment. It is + passed 4 parameters, the first two are the coordinates of the initial pixel + drawn in the segment. + The second two are the left minor and the left major steps, respectively. + They represent the sizes of two steps taken by the rasterizer as it walks + on the left side of the triangle. From then on, the each step will either + be classified as a minor or a major step, corresponding to the above + values. +* step - Called once per scanline. The last parameter is set to 1 if the step + is a minor step, and 0 if it is a major step. +* draw - Called once per scanline. The function is expected to draw the + scanline starting with a point specified by the first two parameters + (corresponding to x and y values) going to the right until it reaches the + value of the third parameter (the x value of the end point). All coordinates + are inclusive. ## API: al_draw_soft_line -Draws a line using the software rasterizer and user supplied pixel functions. For help in understanding what these functions do, see the implementation of the various shading routines in addons/primitives/line_soft.c. +Draws a line using the software rasterizer and user supplied pixel functions. +For help in understanding what these functions do, see the implementation of +the various shading routines in addons/primitives/line_soft.c. The line is drawn top to bottom. *Parameters:* * v1, v2 - The two vertices of the line -* state - A pointer to a user supplied struct, this struct will be passed to all the pixel functions -* first - The function is called before drawing the first pixel of the line. It is passed the coordinates of this pixel, as well as the two vertices above. - The passed vertices may have been altered by clipping. -* step - Called once per pixel. The second parameter is set to 1 if the step is a minor step, and 0 if this step is a major step. Minor steps are taken only either in x or y directions. - Major steps are taken in both directions diagonally. In all cases, the the absolute value of the change in coordinate is at most 1 in either direction. -* draw - Called once per pixel. The function is expected to draw the pixel at the two coordinates passed to it. +* state - A pointer to a user supplied struct, this struct will be passed to + all the pixel functions +* first - The function is called before drawing the first pixel of the line. It + is passed the coordinates of this pixel, as well as the two vertices above. + The passed vertices may have been altered by clipping. +* step - Called once per pixel. The second parameter is set to 1 if the step is + a minor step, and 0 if this step is a major step. Minor steps are taken only + either in x or y directions. + Major steps are taken in both directions diagonally. In all cases, the the + absolute value of the change in coordinate is at most 1 in either direction. +* draw - Called once per pixel. The function is expected to draw the pixel at + the two coordinates passed to it. # Transformations @@ -307,8 +341,9 @@ ## API: al_use_transform -Sets the transformation to be used for the primitive drawing operations. Every drawing operation after this call will -be transformed using this transformation. +Sets the transformation to be used for the primitive drawing operations. Every +drawing operation after this call will be transformed using this +transformation. *Parameters:* @@ -324,8 +359,9 @@ ## API: al_build_transform -Builds a transformation given some parameters. This call is equivalent to calling -the transformations in this order: make identity, scale, rotate, translate. This method is faster, however. +Builds a transformation given some parameters. This call is equivalent to +calling the transformations in this order: make identity, scale, rotate, +translate. This method is faster, however. *Parameters:* @@ -383,19 +419,21 @@ ## API: ALLEGRO_PRIM_COLOR -A special structure that defines a color in a way that understandable to both OpenGL and Direct3D backends. -You should never access internal fields, instead using the two conversion functions to convert between it and -[ALLEGRO_COLOR] structure. +A special structure that defines a color in a way that understandable to both +OpenGL and Direct3D backends. +You should never access internal fields, instead using the two conversion +functions to convert between it and [ALLEGRO_COLOR] structure. *See Also:* [al_get_allegro_color], [al_get_prim_color] ## API: ALLEGRO_VERTEX -Defines the generic vertex type, with a 2D position, color and texture coordinates -for a single texture. +Defines the generic vertex type, with a 2D position, color and texture +coordinates for a single texture. -* x, y, z - Position of the vertex. Use z = 0 if you are only dealing with 2D primitives +* x, y, z - Position of the vertex. Use z = 0 if you are only dealing with 2D + primitives * color - `ALLEGRO_PRIM_COLOR` structure * u, v - Texture coordinates @@ -404,28 +442,44 @@ ## API: ALLEGRO_TRANSFORM -Defines the generic transformation type, a 4x4 matrix. 2D transforms use only a small subsection of this matrix, -namely the top left 2x2 matrix, and the right most 2x1 matrix, for a total of 6 values. +Defines the generic transformation type, a 4x4 matrix. 2D transforms use only +a small subsection of this matrix, namely the top left 2x2 matrix, and the +right most 2x1 matrix, for a total of 6 values. # Constants ## API: ALLEGRO_PRIM_TYPE -Enumerates the types of primitves this addon can draw. +Enumerates the types of primitives this addon can draw. -* ALLEGRO_PRIM_LINE_LIST - A list of lines, sequential pairs of vertices define disjointed lines -* ALLEGRO_PRIM_LINE_STRIP - A strip of lines, sequential vertices define a strip of lines -* ALLEGRO_PRIM_LINE_LOOP - Like a line strip, except at the end the first and the last vertices are also connected by a line -* ALLEGRO_PRIM_TRIANGLE_LIST - A list of triangles, sequential triplets of vertices define disjointed triangles -* ALLEGRO_PRIM_TRIANGLE_STRIP - A strip of triangles, sequential vertices define a strip of triangles -* ALLEGRO_PRIM_TRIANGLE_FAN - A fan of triangles, all triangles share the first vertex +* ALLEGRO_PRIM_LINE_LIST - A list of lines, sequential pairs of vertices define + disjointed lines +* ALLEGRO_PRIM_LINE_STRIP - A strip of lines, sequential vertices define a + strip of lines + +* ALLEGRO_PRIM_LINE_LOOP - Like a line strip, except at the end the first and + the last vertices are also connected by a line + +* ALLEGRO_PRIM_TRIANGLE_LIST - A list of triangles, sequential triplets of + vertices define disjointed triangles + +* ALLEGRO_PRIM_TRIANGLE_STRIP - A strip of triangles, sequential vertices + define a strip of triangles + +* ALLEGRO_PRIM_TRIANGLE_FAN - A fan of triangles, all triangles share the first + vertex + ## API: ALLEGRO_VERTEX_CACHE_SIZE -Defines the size of the transformation vertex cache for the software renderer. If you pass less than this many -vertices to the primitive rendering functions you will get a speed boost. This also defines the size of the cache vertex buffer, -used for the high-level primitives. This corresponds to the maximum number of line segments that will be used to form them. +Defines the size of the transformation vertex cache for the software renderer. +If you pass less than this many vertices to the primitive rendering functions +you will get a speed boost. This also defines the size of the cache vertex +buffer, used for the high-level primitives. This corresponds to the maximum +number of line segments that will be used to form them. ## API: ALLEGRO_PRIM_QUALITY -Defines the quality of the quadratic primitives. At 10, this roughly corresponds to error < 0.5 pixel. +Defines the quality of the quadratic primitives. At 10, this roughly +corresponds to error < 0.5 pixel. + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sie...@us...> - 2009-06-05 21:56:00
|
Revision: 12238 http://alleg.svn.sourceforge.net/alleg/?rev=12238&view=rev Author: siegelord Date: 2009-06-05 21:55:46 +0000 (Fri, 05 Jun 2009) Log Message: ----------- Minor fixes to the documentation Modified Paths: -------------- allegro/branches/4.9/docs/src/refman/primitives.txt Modified: allegro/branches/4.9/docs/src/refman/primitives.txt =================================================================== --- allegro/branches/4.9/docs/src/refman/primitives.txt 2009-06-03 23:01:20 UTC (rev 12237) +++ allegro/branches/4.9/docs/src/refman/primitives.txt 2009-06-05 21:55:46 UTC (rev 12238) @@ -10,7 +10,7 @@ * x1, y1, x2, y2 - Start and end points of the line * color - Color of the line -* thickness - Thickness of the line, pass <= 0 to draw hairline lines +* thickness - Thickness of the line, pass `<= 0` to draw hairline lines ## API: al_draw_triangle @@ -20,7 +20,7 @@ * x1, y1, x2, y2, x3, y3 - Three points of the triangle * color - Color of the triangle -* thickness - Thickness of the lines, pass <= 0 to draw hairline lines +* thickness - Thickness of the lines, pass `<= 0` to draw hairline lines ## API: al_draw_filled_triangle @@ -39,7 +39,7 @@ * x1, y1, x2, y2 - Upper left and lower right points of a rectangle * color - Color of the rectangle -* thickness - Thickness of the lines, pass <= 0 to draw hairline lines +* thickness - Thickness of the lines, pass `<= 0` to draw hairline lines ## API: al_draw_filled_rectangle @@ -59,7 +59,7 @@ * x1, y1, x2, y2 - Upper left and lower right points of a rectangle * color - Color of the rectangle * rx, ry - The radii of the round -* thickness - Thickness of the lines, pass <= 0 to draw hairline lines +* thickness - Thickness of the lines, pass `<= 0` to draw hairline lines ## API: al_draw_filled_rounded_rectangle @@ -74,7 +74,7 @@ ## API: al_calculate_arc Calculates an elliptical arc, and sets the vertices in the destination to the -calculated positions. If thickness <= 0, then `num_points` of points are +calculated positions. If `thickness <= 0`, then `num_points` of points are required in the destination, otherwise twice as many are needed. The destination buffer should consist of regularly spaced (by distance of stride bytes) doublets of floats, corresponding to x and y coordinates of the @@ -87,7 +87,8 @@ * cx, cy - Center of the arc * rx, ry - Radii of the arc * start_theta - The initial angle from which the arc is calculated -* delta_theta - Angular span of the arc (pass a negative number to switch direction) +* delta_theta - Angular span of the arc (pass a negative number to switch + direction) * thickness - Thickness of the arc * num_points - The number of points to calculate @@ -100,7 +101,7 @@ * cx, cy - Center of the ellipse * rx, ry - Radii of the ellipse * color - Color of the ellipse -* thickness - Thickness of the ellipse, pass <= 0 to draw hairline ellipse +* thickness - Thickness of the ellipse, pass `<= 0` to draw hairline ellipse ## API: al_draw_filled_ellipse @@ -121,7 +122,7 @@ * cx, cy - Center of the circle * r - Radius of the circle * color - Color of the circle -* thickness - Thickness of the circle, pass <= 0 to draw hairline circle +* thickness - Thickness of the circle, pass `<= 0` to draw hairline circle ## API: al_draw_filled_circle @@ -145,11 +146,11 @@ * start_theta - The initial angle from which the arc is calculated * delta_theta - Angular span of the arc (pass a negative number to switch direction) -* thickness - Thickness of the circle, pass <= 0 to draw hairline circle +* thickness - Thickness of the circle, pass `<= 0` to draw hairline circle ## API: al_calculate_spline -Calculates a spline given 4 control points. If thickness <= 0, then +Calculates a spline given 4 control points. If `thickness <= 0`, then `num_segments` of points are required in the destination, otherwise twice as many are needed. The destination buffer should consist of regularly spaced (by distance of stride bytes) doublets of floats, corresponding to x and y @@ -171,12 +172,12 @@ * points - An array of 4 pairs of coordinates of the 4 control points * color - Color of the spline -* thickness - Thickness of the spline, pass <= 0 to draw hairline spline +* thickness - Thickness of the spline, pass `<= 0` to draw hairline spline ## API: al_calculate_ribbon Calculates a ribbon given an array of points. The ribbon will go through all of -the passed points. If thickness <= 0, then `num_segments` of points are +the passed points. If `thickness <= 0`, then `num_segments` of points are required in the destination buffer, otherwise twice as many are needed. The destination and the points buffer should consist of regularly spaced doublets of floats, corresponding to x and y coordinates of the vertices. @@ -201,7 +202,7 @@ * points - An array of pairs of coordinates for each point * color - Color of the spline -* thickness - Thickness of the spline, pass <= 0 to draw hairline spline +* thickness - Thickness of the spline, pass `<= 0` to draw hairline spline # Low Level Drawing Routines @@ -280,7 +281,7 @@ implementation of the various shading routines in addons/primitives/tri_soft.c. The triangle is drawn in two segments, from top to bottom. The segments are deliniated by the vertically middle vertex of the triangle. One of each segment -may be present if two vertices are horizontally collinear. +may be absent if two vertices are horizontally collinear. *Parameters:* @@ -343,7 +344,9 @@ Sets the transformation to be used for the primitive drawing operations. Every drawing operation after this call will be transformed using this -transformation. +transformation. Call this function with the identity before using non-primitive +drawing functions (e.g. drawing bitmaps), otherwise the behaviour of those +functions will not be defined. *Parameters:* @@ -432,8 +435,7 @@ Defines the generic vertex type, with a 2D position, color and texture coordinates for a single texture. -* x, y, z - Position of the vertex. Use z = 0 if you are only dealing with 2D - primitives +* x, y - Position of the vertex. * color - `ALLEGRO_PRIM_COLOR` structure * u, v - Texture coordinates This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sie...@us...> - 2009-09-27 16:06:44
|
Revision: 12629 http://alleg.svn.sourceforge.net/alleg/?rev=12629&view=rev Author: siegelord Date: 2009-09-27 16:06:34 +0000 (Sun, 27 Sep 2009) Log Message: ----------- Added a note about texture coordinates Modified Paths: -------------- allegro/branches/4.9/docs/src/refman/primitives.txt Modified: allegro/branches/4.9/docs/src/refman/primitives.txt =================================================================== --- allegro/branches/4.9/docs/src/refman/primitives.txt 2009-09-27 15:40:43 UTC (rev 12628) +++ allegro/branches/4.9/docs/src/refman/primitives.txt 2009-09-27 16:06:34 UTC (rev 12629) @@ -526,7 +526,7 @@ * u, v - Texture coordinates measured in pixels *See Also:* -[ALLEGRO_PRIM_COLOR] +[ALLEGRO_PRIM_COLOR], [ALLEGRO_PRIM_ATTR] ### API: ALLEGRO_TRANSFORM @@ -618,8 +618,16 @@ * ALLEGRO_PRIM_TEX_COORD_PIXEL - Texture coordinate information, can be stored only in ALLEGRO_PRIM_FLOAT_2 and ALLEGRO_PRIM_SHORT_2. These coordinates are - measured in pixels. + measured in pixels. +A note about pixel coordinates. In OpenGL the texture coordinate (0, 0) refers +to the top left corner of the pixel. This confuses some drivers, because due to +rounding errors the actual pixel sampled might be the pixel to the top and/or +left of the (0, 0) pixel. To make this error less likely it is advisable to +offset the texture coordinates you pass to the al_draw_prim by (0.5, 0.5) if you +need precise pixel control. E.g. to refer to pixel (5, 10) you'd set the u and v +to 5.5 and 10.5 respectively. + *See Also:* [ALLEGRO_VERTEX_DECL], [ALLEGRO_PRIM_STORAGE] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sie...@us...> - 2010-03-10 23:13:33
|
Revision: 13068 http://alleg.svn.sourceforge.net/alleg/?rev=13068&view=rev Author: siegelord Date: 2010-03-10 23:13:26 +0000 (Wed, 10 Mar 2010) Log Message: ----------- Improved the documentation for the primitives addon a tad Modified Paths: -------------- allegro/branches/4.9/docs/src/refman/primitives.txt Modified: allegro/branches/4.9/docs/src/refman/primitives.txt =================================================================== --- allegro/branches/4.9/docs/src/refman/primitives.txt 2010-03-10 23:00:01 UTC (rev 13067) +++ allegro/branches/4.9/docs/src/refman/primitives.txt 2010-03-10 23:13:26 UTC (rev 13068) @@ -12,8 +12,22 @@ Returns the (compiled) version of the addon, in the same format as [al_get_allegro_version]. -## High-level drawing routines +## High level drawing routines +High level drawing routines encompass the most common usage of this addon: to +draw geometric primitives, both smooth (variations on the circle theme) and +piecewise linear. Outlined primitives support the concept of thickness with two +distinct modes of output: hairline lines and think lines. Hairline lines are +specifically designed to be exactly a pixel wide, and are commonly used for +drawing outlined figures that need to be a pixel wide. Hairline thickness is +designated as thickness less than or equal to 0. Unfortunately, the exact +rasterization rules for drawing these hairline lines vary from one video card +to another, and sometimes leave gaps where the lines meet. If that matters to +you, then you should use thick lines. In many cases, having a thickness of 1 +will produce 1 pixel wide lines that look better than hairline lines. Obviously, +hairline lines cannot replicate thicknesses greater than 1. Thick lines grow +symmetrically around the generating shape as thickness is increased. + ### API: al_draw_line Draws a line segment between two points. @@ -49,7 +63,7 @@ *Parameters:* -* x1, y1, x2, y2 - Upper left and lower right points of a rectangle +* x1, y1, x2, y2 - Upper left and lower right points of the rectangle * color - Color of the rectangle * thickness - Thickness of the lines, pass `<= 0` to draw hairline lines @@ -59,7 +73,7 @@ *Parameters:* -* x1, y1, x2, y2 - Upper left and lower right points of a rectangle +* x1, y1, x2, y2 - Upper left and lower right points of the rectangle * color - Color of the rectangle ### API: al_draw_rounded_rectangle @@ -68,7 +82,7 @@ *Parameters:* -* x1, y1, x2, y2 - Upper left and lower right points of a rectangle +* x1, y1, x2, y2 - Upper left and lower right points of the rectangle * color - Color of the rectangle * rx, ry - The radii of the round * thickness - Thickness of the lines, pass `<= 0` to draw hairline lines @@ -79,23 +93,23 @@ *Parameters:* -* x1, y1, x2, y2 - Upper left and lower right points of a rectangle +* x1, y1, x2, y2 - Upper left and lower right points of the rectangle * color - Color of the rectangle * rx, ry - The radii of the round ### API: al_calculate_arc -Calculates an elliptical arc, and sets the vertices in the destination to the -calculated positions. If `thickness <= 0`, then `num_points` of points are +Calculates an elliptical arc, and sets the vertices in the destination buffer to +the calculated positions. If `thickness <= 0`, then `num_points` of points are required in the destination, otherwise twice as many are needed. The -destination buffer should consist of regularly spaced (by distance of stride +destination buffer should consist of regularly spaced (by distance of `stride` bytes) doublets of floats, corresponding to x and y coordinates of the vertices. *Parameters:* -* dest - Pointer to the destination buffer -* stride - Distance (in bytes) between successive pairs of coordinates +* dest - The destination buffer +* stride - Distance (in bytes) between starts of successive pairs of coordinates * cx, cy - Center of the arc * rx, ry - Radii of the arc * start_theta - The initial angle from which the arc is calculated @@ -113,7 +127,7 @@ * cx, cy - Center of the ellipse * rx, ry - Radii of the ellipse * color - Color of the ellipse -* thickness - Thickness of the ellipse, pass `<= 0` to draw hairline ellipse +* thickness - Thickness of the ellipse, pass `<= 0` to draw a hairline ellipse ### API: al_draw_filled_ellipse @@ -134,7 +148,7 @@ * cx, cy - Center of the circle * r - Radius of the circle * color - Color of the circle -* thickness - Thickness of the circle, pass `<= 0` to draw hairline circle +* thickness - Thickness of the circle, pass `<= 0` to draw a hairline circle ### API: al_draw_filled_circle @@ -162,7 +176,7 @@ ### API: al_calculate_spline -Calculates a spline given 4 control points. If `thickness <= 0`, then +Calculates a Bézier spline given 4 control points. If `thickness <= 0`, then `num_segments` of points are required in the destination, otherwise twice as many are needed. The destination buffer should consist of regularly spaced (by distance of stride bytes) doublets of floats, corresponding to x and y @@ -170,21 +184,21 @@ *Parameters:* -* dest - Pointer to the destination buffer -* stride - Distance (in bytes) between successive pairs of coordinates +* dest - The destination buffer +* stride - Distance (in bytes) between starts of successive pairs of coordinates * points - An array of 4 pairs of coordinates of the 4 control points * thickness - Thickness of the spline ribbon * num_segments - The number of points to calculate ### API: al_draw_spline -Draws a spline given 4 control points. +Draws a Bézier spline given 4 control points. *Parameters:* * points - An array of 4 pairs of coordinates of the 4 control points * color - Color of the spline -* thickness - Thickness of the spline, pass `<= 0` to draw hairline spline +* thickness - Thickness of the spline, pass `<= 0` to draw a hairline spline ### API: al_calculate_ribbon @@ -197,11 +211,11 @@ *Parameters:* * dest - Pointer to the destination buffer -* dest_stride - Distance (in bytes) between successive pairs of coordinates in - the destination buffer +* dest_stride - Distance (in bytes) between starts of successive pairs of + coordinates in the destination buffer * points - An array of pairs of coordinates for each point -* points_stride - Distance (in bytes) between successive pairs of coordinates - in the points buffer +* points_stride - Distance (in bytes) between starts successive pairs of + coordinates in the points buffer * thickness - Thickness of the spline ribbon * num_segments - The number of points to calculate @@ -216,23 +230,27 @@ * color - Color of the spline * thickness - Thickness of the spline, pass `<= 0` to draw hairline spline -## Low-level drawing routines +## Low level drawing routines +Low level drawing routines allow for more advanced usage of the addon, allowing +you to pass arbitrary sequences of vertices to draw to the screen. These +routines also support using textures on the primitives with some restrictions. +For maximum portability, you should only use textures that have dimensions that +are a power of two, as not every videocard supports them completely. This +warning is relaxed, however, if the texture coordinates never exit the +boundaries of a single bitmap (i.e. you are not having the texture repeat/tile). +As long as that is the case, any texture can be used safely. Sub-bitmaps work +as textures, but cannot be tiled. + ### API: al_draw_prim Draws a subset of the passed vertex buffer. -A note about non power-of-two textures: For maximum portability, you -should only use textures that have their dimensions be a power of two. This -warning is relaxed, however, if the texture coordinates never exit the -boundaries of a single bitmap. This means that if you want to tile the texture, -you should have it be power of two sized for maximum portability. - *Parameters:* -* texture - Texture to use, pass 0 to use only shaded primitves +* texture - Texture to use, pass 0 to use only color shaded primitves * vtxs - Pointer to an array of vertices -* decl - Pointer to the vertex declaration. If set to 0, the vtxs are assumed +* decl - Pointer to a vertex declaration. If set to 0, the vtxs are assumed to be of the ALLEGRO_VERTEX type * start, end - Start and end of the subset of the vertex buffer to draw * type - Primitive type to draw @@ -247,14 +265,13 @@ ### API: al_draw_indexed_prim Draws a subset of the passed vertex buffer. This function uses an index array -to specify which vertices to use. See the [al_draw_prim] entry for a note about -texture dimensions. +to specify which vertices to use. *Parameters:* * texture - Texture to use, pass 0 to use only shaded primitves * vtxs - Pointer to an array of vertices -* decl - Pointer to the vertex declaration. If set to 0, the vtxs are assumed +* decl - Pointer to a vertex declaration. If set to 0, the vtxs are assumed to be of the ALLEGRO_VERTEX type * indices - An array of indices into the vertex buffer * num_vtx - Number of indices from the indices array you want to draw @@ -334,9 +351,9 @@ * v1, v2, v3 - The three vertices of the triangle * state - A pointer to a user supplied struct, this struct will be passed to all the pixel functions -* init - This function is called once, before any drawing is done. The three +* init - Called once per call before any drawing is done. The three points passed to it may be altered by clipping. -* first - The function is called twice, once per triangle segment. It is +* first - Called twice per call, once per triangle segment. It is passed 4 parameters, the first two are the coordinates of the initial pixel drawn in the segment. The second two are the left minor and the left major steps, respectively. @@ -364,7 +381,7 @@ * v1, v2 - The two vertices of the line * state - A pointer to a user supplied struct, this struct will be passed to all the pixel functions -* first - The function is called before drawing the first pixel of the line. It +* first - Called before drawing the first pixel of the line. It is passed the coordinates of this pixel, as well as the two vertices above. The passed vertices may have been altered by clipping. * step - Called once per pixel. The second parameter is set to 1 if the step is @@ -373,7 +390,7 @@ Major steps are taken in both directions diagonally. In all cases, the the absolute value of the change in coordinate is at most 1 in either direction. * draw - Called once per pixel. The function is expected to draw the pixel at - the two coordinates passed to it. + the coordinates passed to it. ## Structures and types @@ -416,8 +433,8 @@ position of the vertex, or its color. These structures are used by the al_create_vertex_decl function to create the vertex declaration. For that they generally occur in an array. The last element of such an array should have the -attribute field be 0, to signify that it is the end of the array. -Here's an example of code that would create a declaration describing the +attribute field equal to 0, to signify that it is the end of the array. +Here is an example code that would create a declaration describing the ALLEGRO_VERTEX structure: ALLEGRO_VERTEX_ELEMENT elems[] = { @@ -517,5 +534,5 @@ ### API: ALLEGRO_PRIM_QUALITY Defines the quality of the quadratic primitives. At 10, this roughly -corresponds to error < 0.5 pixel. +corresponds to error of less than half of a pixel. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sie...@us...> - 2010-05-20 02:42:30
|
Revision: 13330 http://alleg.svn.sourceforge.net/alleg/?rev=13330&view=rev Author: siegelord Date: 2010-05-20 02:42:23 +0000 (Thu, 20 May 2010) Log Message: ----------- Moved the documentation about the texture coordinate issues to a more prominent place Modified Paths: -------------- allegro/branches/4.9/docs/src/refman/primitives.txt Modified: allegro/branches/4.9/docs/src/refman/primitives.txt =================================================================== --- allegro/branches/4.9/docs/src/refman/primitives.txt 2010-05-19 11:33:55 UTC (rev 13329) +++ allegro/branches/4.9/docs/src/refman/primitives.txt 2010-05-20 02:42:23 UTC (rev 13330) @@ -256,6 +256,14 @@ As long as that is the case, any texture can be used safely. Sub-bitmaps work as textures, but cannot be tiled. +A note about pixel coordinates. In OpenGL the texture coordinate (0, 0) refers +to the top left corner of the pixel. This confuses some drivers, because due to +rounding errors the actual pixel sampled might be the pixel to the top and/or +left of the (0, 0) pixel. To make this error less likely it is advisable to +offset the texture coordinates you pass to the al_draw_prim by (0.5, 0.5) if you +need precise pixel control. E.g. to refer to pixel (5, 10) you'd set the u and v +to 5.5 and 10.5 respectively. + ### API: al_draw_prim Draws a subset of the passed vertex buffer. @@ -478,14 +486,6 @@ only in ALLEGRO_PRIM_FLOAT_2 and ALLEGRO_PRIM_SHORT_2. These coordinates are measured in pixels. -A note about pixel coordinates. In OpenGL the texture coordinate (0, 0) refers -to the top left corner of the pixel. This confuses some drivers, because due to -rounding errors the actual pixel sampled might be the pixel to the top and/or -left of the (0, 0) pixel. To make this error less likely it is advisable to -offset the texture coordinates you pass to the al_draw_prim by (0.5, 0.5) if you -need precise pixel control. E.g. to refer to pixel (5, 10) you'd set the u and v -to 5.5 and 10.5 respectively. - *See Also:* [ALLEGRO_VERTEX_DECL], [ALLEGRO_PRIM_STORAGE] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sie...@us...> - 2010-06-14 01:50:23
|
Revision: 13365 http://alleg.svn.sourceforge.net/alleg/?rev=13365&view=rev Author: siegelord Date: 2010-06-14 01:50:17 +0000 (Mon, 14 Jun 2010) Log Message: ----------- Improved documentation for ALLEGRO_VERTEX Modified Paths: -------------- allegro/branches/4.9/docs/src/refman/primitives.txt Modified: allegro/branches/4.9/docs/src/refman/primitives.txt =================================================================== --- allegro/branches/4.9/docs/src/refman/primitives.txt 2010-06-12 03:58:23 UTC (rev 13364) +++ allegro/branches/4.9/docs/src/refman/primitives.txt 2010-06-14 01:50:17 UTC (rev 13365) @@ -393,7 +393,9 @@ Defines the generic vertex type, with a 3D position, color and texture coordinates for a single texture. Note that at this time, the software driver for this addon cannot render 3D primitives. If you want a 2D only primitive, -set z to 0. +set z to 0. Note that when you must initialize all members of this struct when +you're using it. One exception to this rule are the u and v variables which can +be left uninitialized when you are not using textures. *Fields:* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sie...@us...> - 2010-06-20 18:06:26
|
Revision: 13380 http://alleg.svn.sourceforge.net/alleg/?rev=13380&view=rev Author: siegelord Date: 2010-06-20 18:06:20 +0000 (Sun, 20 Jun 2010) Log Message: ----------- Clarified how the primitives are drawn when multisampling is turned on Modified Paths: -------------- allegro/branches/4.9/docs/src/refman/primitives.txt Modified: allegro/branches/4.9/docs/src/refman/primitives.txt =================================================================== --- allegro/branches/4.9/docs/src/refman/primitives.txt 2010-06-20 17:40:29 UTC (rev 13379) +++ allegro/branches/4.9/docs/src/refman/primitives.txt 2010-06-20 18:06:20 UTC (rev 13380) @@ -99,14 +99,21 @@ rectangle. With thickness of 1, as depicted in the diagram, this means that an offset of 0.5 is needed for both sets of endpoint coordinates. -The offsets depicted above are optimal for the output depicted on the right for -several reasons, even though as long as those pixels centers are covered, the -output will be the same under some conditions. The reasons for this optimality -are two fold: first, these offsets should be easy to commit to memory; second, -when you turn on multisampling, the output of these functions will not change. -Multisampling would cause blurring if the shapes do not cover each pixel either -completely, or not at all. While this blurring is desirable for slanted shapes, -it is not always desirable when shapes are horizontal or vertical. +The above rules only apply when multisampling is turned off. When multisampling +is turned on, the area of a pixel that is covered by a shape is taken into +account when choosing what color to draw there. This also means that shapes no +longer have to contain the pixel's center to affect its color. For example, +the green rectangle in the first diagram may in fact be drawn as two (or one) +semi-transparent pixels. The advantages of multisampling is that slanted shapes +will look smoother because they will not have jagged edges. A disadvantage of +multisampling is that it may make vertical and horizontal edges blurry. While +the exact rules for multisampling are unspecified, and may vary from GPU to +GPU it is usually safe to assume that as long as a pixel is either completely +covered by a shape or completely not covered, then the shape edges will be +sharp. The offsets used in the second diagram were chosen so that this is the +case: if you use those offsets, your shapes (if they are oriented the same way +as they are on the diagram) should look the same whether multisampling is +turned on or off. ### API: al_draw_line This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <el...@us...> - 2010-09-09 21:10:50
|
Revision: 13713 http://alleg.svn.sourceforge.net/alleg/?rev=13713&view=rev Author: elias Date: 2010-09-09 21:10:44 +0000 (Thu, 09 Sep 2010) Log Message: ----------- Fixed vertex decl example in the docs. Modified Paths: -------------- allegro/branches/4.9/docs/src/refman/primitives.txt Modified: allegro/branches/4.9/docs/src/refman/primitives.txt =================================================================== --- allegro/branches/4.9/docs/src/refman/primitives.txt 2010-09-09 21:08:51 UTC (rev 13712) +++ allegro/branches/4.9/docs/src/refman/primitives.txt 2010-09-09 21:10:44 UTC (rev 13713) @@ -501,7 +501,7 @@ ALLEGRO_VERTEX_ELEMENT elems[] = { {ALLEGRO_PRIM_POSITION, ALLEGRO_PRIM_FLOAT_3, offsetof(ALLEGRO_VERTEX, x)}, {ALLEGRO_PRIM_TEX_COORD_PIXEL, ALLEGRO_PRIM_FLOAT_2, offsetof(ALLEGRO_VERTEX, u)}, - {ALLEGRO_PRIM_COLOR_ATTR, 0, offsetof(CUSTOM_VERTEX, color)}, + {ALLEGRO_PRIM_COLOR_ATTR, 0, offsetof(ALLEGRO_VERTEX, color)}, {0, 0, 0} }; ALLEGRO_VERTEX_DECL* decl = al_create_vertex_decl(elems, sizeof(ALLEGRO_VERTEX)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <el...@us...> - 2010-09-12 15:25:02
|
Revision: 13723 http://alleg.svn.sourceforge.net/alleg/?rev=13723&view=rev Author: elias Date: 2010-09-12 15:24:55 +0000 (Sun, 12 Sep 2010) Log Message: ----------- small documentation clarification about al_draw_prim's vertex declaration Modified Paths: -------------- allegro/branches/4.9/docs/src/refman/primitives.txt Modified: allegro/branches/4.9/docs/src/refman/primitives.txt =================================================================== --- allegro/branches/4.9/docs/src/refman/primitives.txt 2010-09-12 13:50:30 UTC (rev 13722) +++ allegro/branches/4.9/docs/src/refman/primitives.txt 2010-09-12 15:24:55 UTC (rev 13723) @@ -345,8 +345,8 @@ * texture - Texture to use, pass 0 to use only color shaded primitves * vtxs - Pointer to an array of vertices -* decl - Pointer to a vertex declaration. If set to 0, the vtxs are assumed - to be of the ALLEGRO_VERTEX type +* decl - Pointer to a vertex declaration. If set to NULL, the vertices + are assumed to be of the ALLEGRO_VERTEX type * start, end - Start and end of the subset of the vertex buffer to draw * type - Primitive type to draw @@ -496,8 +496,12 @@ generally occur in an array. The last element of such an array should have the attribute field equal to 0, to signify that it is the end of the array. Here is an example code that would create a declaration describing the -ALLEGRO_VERTEX structure: +ALLEGRO_VERTEX structure (passing this as vertex declaration to +al_draw_prim would be identical to passing NULL): + /* On compilers without the offsetof keyword you need to obtain the + * offset with sizeof and make sure to account for packing. + */ ALLEGRO_VERTEX_ELEMENT elems[] = { {ALLEGRO_PRIM_POSITION, ALLEGRO_PRIM_FLOAT_3, offsetof(ALLEGRO_VERTEX, x)}, {ALLEGRO_PRIM_TEX_COORD_PIXEL, ALLEGRO_PRIM_FLOAT_2, offsetof(ALLEGRO_VERTEX, u)}, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <el...@us...> - 2010-10-23 00:38:18
|
Revision: 13835 http://alleg.svn.sourceforge.net/alleg/?rev=13835&view=rev Author: elias Date: 2010-10-23 00:38:12 +0000 (Sat, 23 Oct 2010) Log Message: ----------- [docs] Clarified start/end parameters to al_draw_prim. Modified Paths: -------------- allegro/branches/4.9/docs/src/refman/primitives.txt Modified: allegro/branches/4.9/docs/src/refman/primitives.txt =================================================================== --- allegro/branches/4.9/docs/src/refman/primitives.txt 2010-10-21 20:38:41 UTC (rev 13834) +++ allegro/branches/4.9/docs/src/refman/primitives.txt 2010-10-23 00:38:12 UTC (rev 13835) @@ -347,12 +347,21 @@ * vtxs - Pointer to an array of vertices * decl - Pointer to a vertex declaration. If set to NULL, the vertices are assumed to be of the ALLEGRO_VERTEX type -* start, end - Start and end of the subset of the vertex buffer to draw +* start - Start index of the subset of the vertex buffer to draw +* end - One past the last index of subset of the vertex buffer to draw * type - Primitive type to draw *Returns:* Number of primitives drawn +For example to draw a textured triangle you could use: + + ALLEGRO_VERTEX v[] = { + {.x = 128, .y = 0, .z = 0, .u = 128, .v = 0}, + {.x = 0, .y = 256, .z = 0, .u = 0, .v = 256}, + {.x = 256, .y = 256, .z = 0, .u = 256, .v = 256}}; + al_draw_prim(v, NULL, texture, 0, 3, ALLEGRO_PRIM_TRIANGLE_LIST); + *See Also:* [ALLEGRO_VERTEX], [ALLEGRO_PRIM_TYPE], [ALLEGRO_VERTEX_DECL], [al_draw_indexed_prim] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |