[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [46617] branches/soc-2011-tomato/intern/ raskter/raskter.c: style cleanup: comments and whitespace
Campbell Barton
ideasman42 at gmail.com
Sun May 13 23:46:18 CEST 2012
Revision: 46617
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46617
Author: campbellbarton
Date: 2012-05-13 21:46:18 +0000 (Sun, 13 May 2012)
Log Message:
-----------
style cleanup: comments and whitespace
Modified Paths:
--------------
branches/soc-2011-tomato/intern/raskter/raskter.c
Modified: branches/soc-2011-tomato/intern/raskter/raskter.c
===================================================================
--- branches/soc-2011-tomato/intern/raskter/raskter.c 2012-05-13 21:36:42 UTC (rev 46616)
+++ branches/soc-2011-tomato/intern/raskter/raskter.c 2012-05-13 21:46:18 UTC (rev 46617)
@@ -31,7 +31,7 @@
#include <malloc.h>
#include "raskter.h"
-// from BLI_utildefines.h
+/* from BLI_utildefines.h */
#define MIN2(x, y) ( (x) < (y) ? (x) : (y) )
#define MAX2(x, y) ( (x) > (y) ? (x) : (y) )
@@ -64,7 +64,8 @@
* just the poly. Since the DEM code could end up being coupled with this, we'll keep it separate
* for now.
*/
-static void preprocess_all_edges(struct poly_vert *verts, int num_verts, struct e_status *open_edge) {
+static void preprocess_all_edges(struct poly_vert *verts, int num_verts, struct e_status *open_edge)
+{
int i;
int xbeg;
int ybeg;
@@ -78,44 +79,44 @@
struct e_status *next_edge;
struct e_status **next_edge_ref;
struct poly_vert *v;
- // set up pointers
+ /* set up pointers */
v = verts;
all_edges = NULL;
- // loop all verts
+ /* loop all verts */
for (i = 0; i < num_verts; i++) {
- // determine beginnings and endings of edges, linking last vertex to first vertex
+ /* determine beginnings and endings of edges, linking last vertex to first vertex */
xbeg = v[i].x;
ybeg = v[i].y;
if (i) {
- // we're not at the last vert, so end of the edge is the previous vertex
+ /* we're not at the last vert, so end of the edge is the previous vertex */
xend = v[i - 1].x;
yend = v[i - 1].y;
}
else {
- // we're at the first vertex, so the "end" of this edge is the last vertex
+ /* we're at the first vertex, so the "end" of this edge is the last vertex */
xend = v[num_verts - 1].x;
yend = v[num_verts - 1].y;
}
- // make sure our edges are facing the correct direction
+ /* make sure our edges are facing the correct direction */
if (ybeg > yend) {
- // flip the Xs
+ /* flip the Xs */
temp_pos = xbeg;
xbeg = xend;
xend = temp_pos;
- // flip the Ys
+ /* flip the Ys */
temp_pos = ybeg;
ybeg = yend;
yend = temp_pos;
}
- // calculate y delta
+ /* calculate y delta */
dy = yend - ybeg;
- // dont draw horizontal lines directly, they are scanned as part of the edges they connect, so skip em. :)
+ /* dont draw horizontal lines directly, they are scanned as part of the edges they connect, so skip em. :) */
if (dy) {
- // create the edge and determine it's slope (for incremental line drawing)
+ /* create the edge and determine it's slope (for incremental line drawing) */
e_new = open_edge++;
- // calculate x delta
+ /* calculate x delta */
dx = xend - xbeg;
if (dx > 0) {
e_new->xdir = 1;
@@ -131,7 +132,7 @@
e_new->num = dy;
e_new->drift_dec = dy;
- // calculate deltas for incremental drawing
+ /* calculate deltas for incremental drawing */
if (dx >= 0) {
e_new->drift = 0;
}
@@ -147,7 +148,7 @@
e_new->xshift = (xdist / dy) * e_new->xdir;
}
next_edge_ref = &all_edges;
- // link in all the edges, in sorted order
+ /* link in all the edges, in sorted order */
for (;; ) {
next_edge = *next_edge_ref;
if (!next_edge || (next_edge->ybeg > ybeg) || ((next_edge->ybeg == ybeg) && (next_edge->x >= xbeg))) {
@@ -166,150 +167,152 @@
* for speed, but waiting on final design choices for curve-data before eliminating data the DEM code will need
* if it ends up being coupled with this function.
*/
-int rast_scan_fill(struct poly_vert *verts, int num_verts) {
- int x_curr; // current pixel position in X
- int y_curr; // current scan line being drawn
- int yp; // y-pixel's position in frame buffer
- int swixd = 0; // whether or not edges switched position in X
- float *cpxl; // pixel pointers...
+int rast_scan_fill(struct poly_vert *verts, int num_verts)
+{
+ int x_curr; /* current pixel position in X */
+ int y_curr; /* current scan line being drawn */
+ int yp; /* y-pixel's position in frame buffer */
+ int swixd = 0; /* whether or not edges switched position in X */
+ float *cpxl; /* pixel pointers... */
float *mpxl;
float *spxl;
- struct e_status *e_curr; // edge pointers...
+ struct e_status *e_curr; /* edge pointers... */
struct e_status *e_temp;
struct e_status *edgbuf;
struct e_status **edgec;
/*
- If the number of verts specified to render as a polygon is less than 3,
- return immediately. Obviously we cant render a poly with sides < 3. The
- return for this we set to 1, simply so it can be distinguished from the
- next place we could return, which is a failure to allocate memory.
+ * If the number of verts specified to render as a polygon is less than 3,
+ * return immediately. Obviously we cant render a poly with sides < 3. The
+ * return for this we set to 1, simply so it can be distinguished from the
+ * next place we could return, /home/guest/blender-svn/soc-2011-tomato/intern/raskter/raskter.cwhich is a failure to allocate memory.
*/
if (num_verts < 3) {
return(1);
}
/*
- Try to allocate an edge buffer in memory. needs to be the size of the edge tracking data
- multiplied by the number of edges, which is always equal to the number of verts in
- a 2D polygon. Here we return 0 to indicate a memory allocation failure, as opposed to a 1 for
- the preceeding error, which was a rasterization request on a 2D poly with less than
- 3 sides.
+ * Try to allocate an edge buffer in memory. needs to be the size of the edge tracking data
+ * multiplied by the number of edges, which is always equal to the number of verts in
+ * a 2D polygon. Here we return 0 to indicate a memory allocation failure, as opposed to a 1 for
+ * the preceeding error, which was a rasterization request on a 2D poly with less than
+ * 3 sides.
*/
if ((edgbuf = (struct e_status *)(malloc(sizeof(struct e_status) * num_verts))) == NULL) {
return(0);
}
/*
- Do some preprocessing on all edges. This constructs a table structure in memory of all
- the edge properties and can "flip" some edges so sorting works correctly.
+ * Do some preprocessing on all edges. This constructs a table structure in memory of all
+ * the edge properties and can "flip" some edges so sorting works correctly.
*/
preprocess_all_edges(verts, num_verts, edgbuf);
/*
- Set the pointer for tracking the edges currently in processing to NULL to make sure
- we don't get some crazy value after initialization.
+ * Set the pointer for tracking the edges currently in processing to NULL to make sure
+ * we don't get some crazy value after initialization.
*/
possible_edges = NULL;
/*
- Loop through all scan lines to be drawn. Since we sorted by Y values during
- preprocess_all_edges(), we can already exact values for the lowest and
- highest Y values we could possibly need by induction. The preprocessing sorted
- out edges by Y position, we can cycle the current edge being processed once
- it runs out of Y pixels. When we have no more edges, meaning the current edge
- is NULL after setting the "current" edge to be the previous current edge's
- "next" edge in the Y sorted edge connection chain, we can stop looping Y values,
- since we can't possibly have more scan lines if we ran out of edges. :)
-
- TODO: This clips Y to the frame buffer, which should be done in the preprocessor, but for now is done here.
- Will get changed once DEM code gets in.
+ * Loop through all scan lines to be drawn. Since we sorted by Y values during
+ * preprocess_all_edges(), we can already exact values for the lowest and
+ * highest Y values we could possibly need by induction. The preprocessing sorted
+ * out edges by Y position, we can cycle the current edge being processed once
+ * it runs out of Y pixels. When we have no more edges, meaning the current edge
+ * is NULL after setting the "current" edge to be the previous current edge's
+ * "next" edge in the Y sorted edge connection chain, we can stop looping Y values,
+ * since we can't possibly have more scan lines if we ran out of edges. :)
+ *
+ * TODO: This clips Y to the frame buffer, which should be done in the preprocessor, but for now is done here.
+ * Will get changed once DEM code gets in.
*/
for (y_curr = MAX2(all_edges->ybeg, 0); (all_edges || possible_edges) && (y_curr < rb.sizey); y_curr++) {
/*
- Link any edges that start on the current scan line into the list of
- edges currently needed to draw at least this, if not several, scan lines.
+ * Link any edges that start on the current scan line into the list of
+ * edges currently needed to draw at least this, if not several, scan lines.
*/
/*
- Set the current edge to the beginning of the list of edges to be rasterized
- into this scan line.
-
- We could have lots of edge here, so iterate over all the edges needed. The
- preprocess_all_edges() function sorted edges by X within each chunk of Y sorting
- so we safely cycle edges to thier own "next" edges in order.
-
- At each iteration, make sure we still have a non-NULL edge.
+ * Set the current edge to the beginning of the list of edges to be rasterized
+ * into this scan line.
+ *
+ * We could have lots of edge here, so iterate over all the edges needed. The
+ * preprocess_all_edges() function sorted edges by X within each chunk of Y sorting
+ * so we safely cycle edges to thier own "next" edges in order.
+ *
+ * At each iteration, make sure we still have a non-NULL edge.
*/
for (edgec = &possible_edges; all_edges && (all_edges->ybeg == y_curr); ) {
- x_curr = all_edges->x; // Set current X position.
- for (;; ) { // Start looping edges. Will break when edges run out.
- e_curr = *edgec; // Set up a current edge pointer.
- if (!e_curr || (e_curr->x >= x_curr)) { // If we have an no edge, or we need to skip some X-span,
- e_temp = all_edges->e_next; // set a temp "next" edge to test.
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list