[Bf-blender-cvs] [63921c65e94] soc-2018-npr: changed most of the list API into BLI_'s. Removed many unused functions
Nick Wu
noreply at git.blender.org
Mon Jul 30 12:26:57 CEST 2018
Commit: 63921c65e9480b8004c2807a96fa8cc3835dc1d8
Author: Nick Wu
Date: Mon Jul 30 18:26:15 2018 +0800
Branches: soc-2018-npr
https://developer.blender.org/rB63921c65e9480b8004c2807a96fa8cc3835dc1d8
changed most of the list API into BLI_'s. Removed many unused functions
===================================================================
M source/blender/draw/engines/lanpr/lanpr_all.h
M source/blender/draw/engines/lanpr/lanpr_chain.c
M source/blender/draw/engines/lanpr/lanpr_dpix.c
M source/blender/draw/engines/lanpr/lanpr_ops.c
M source/blender/draw/engines/lanpr/lanpr_util.c
M source/blender/draw/engines/lanpr/lanpr_util.h
===================================================================
diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h
index 50365298de7..4e2b50c432b 100644
--- a/source/blender/draw/engines/lanpr/lanpr_all.h
+++ b/source/blender/draw/engines/lanpr/lanpr_all.h
@@ -264,16 +264,16 @@ typedef struct LANPR_RenderTaskInfo {
int ThreadID;
struct nListItemPointer *Contour;
- nListHandle ContourPointers;
+ ListBase ContourPointers;
struct nListItemPointer *Intersection;
- nListHandle IntersectionPointers;
+ ListBase IntersectionPointers;
struct nListItemPointer *Crease;
- nListHandle CreasePointers;
+ ListBase CreasePointers;
struct nListItemPointer *Material;
- nListHandle MaterialPointers;
+ ListBase MaterialPointers;
} LANPR_RenderTaskInfo;
@@ -304,12 +304,12 @@ typedef struct LANPR_RenderBuffer {
//u32bit BaVBO;
//u32bit BaFillVBO;
- nListHandle VertexBufferPointers;
- nListHandle LineBufferPointers;
- nListHandle TriangleBufferPointers;
- nListHandle AllRenderLines;
+ ListBase VertexBufferPointers;
+ ListBase LineBufferPointers;
+ ListBase TriangleBufferPointers;
+ ListBase AllRenderLines;
- nListHandle IntersectingVertexBuffer;
+ ListBase IntersectingVertexBuffer;
struct GPUBatch *DPIXIntersectionTransformBatch;
struct GPUBatch *DPIXIntersectionBatch;
@@ -330,29 +330,29 @@ typedef struct LANPR_RenderBuffer {
u32bit ContourCount;
u32bit ContourProcessed;
nListItemPointer *ContourManaged;
- nListHandle Contours;
+ ListBase Contours;
u32bit IntersectionCount;
u32bit IntersectionProcessed;
nListItemPointer *IntersectionManaged;
- nListHandle IntersectionLines;
+ ListBase IntersectionLines;
u32bit CreaseCount;
u32bit CreaseProcessed;
nListItemPointer *CreaseManaged;
- nListHandle CreaseLines;
+ ListBase CreaseLines;
u32bit MaterialLineCount;
u32bit MaterialProcessed;
nListItemPointer *MaterialManaged;
- nListHandle MaterialLines;
+ ListBase MaterialLines;
u32bit EdgeMarkCount;
u32bit EdgeMarkProcessed;
nListItemPointer *EdgeMarkManaged;
- nListHandle EdgeMarks;
+ ListBase EdgeMarks;
- nListHandle Chains;
+ ListBase Chains;
GPUBatch* ChainDrawBatch;
DRWShadingGroup* ChainShgrp;
@@ -407,7 +407,7 @@ typedef struct LANPR_RenderTriangle {
real GC[3];
//struct BMFace *F;
short MaterialID;
- nListHandle IntersectingVerts;
+ ListBase IntersectingVerts;
char CullStatus;
struct LANPR_RenderTriangle *Testing; //Should Be tRT** Testing[NumOfThreads]
}LANPR_RenderTriangle;
@@ -460,7 +460,7 @@ typedef struct LANPR_RenderLine {
nListItem Item;
struct LANPR_RenderVert *L, *R;
struct LANPR_RenderTriangle *TL, *TR;
- nListHandle Segments;
+ ListBase Segments;
//tnsEdge* Edge;//should be edge material
//tnsRenderTriangle* Testing;//Should Be tRT** Testing[NumOfThreads]
char MinOcclude;
@@ -470,7 +470,7 @@ typedef struct LANPR_RenderLine {
typedef struct LANPR_RenderLineChain {
nListItem Item;
- nListHandle Chain;
+ ListBase Chain;
//int SegmentCount; // we count before draw cmd.
float Length; // calculated before draw cmd.
}LANPR_RenderLineChain;
@@ -488,15 +488,15 @@ typedef struct LANPR_BoundingArea {
struct LANPR_BoundingArea *Child;//1,2,3,4 quadrant
- nListHandle LP;
- nListHandle RP;
- nListHandle UP;
- nListHandle BP;
+ ListBase LP;
+ ListBase RP;
+ ListBase UP;
+ ListBase BP;
int TriangleCount;
- nListHandle LinkedTriangles;
- nListHandle LinkedLines;
- nListHandle LinkedChains;//reserved for multithread chainning
+ ListBase LinkedTriangles;
+ ListBase LinkedLines;
+ ListBase LinkedChains;//reserved for multithread chainning
}LANPR_BoundingArea;
diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c b/source/blender/draw/engines/lanpr/lanpr_chain.c
index 45a1c2063c9..8b8aede8f53 100644
--- a/source/blender/draw/engines/lanpr/lanpr_chain.c
+++ b/source/blender/draw/engines/lanpr/lanpr_chain.c
@@ -36,7 +36,7 @@ LANPR_RenderLine* lanpr_get_connected_render_line(LANPR_BoundingArea* ba, LANPR_
LANPR_RenderLine* nrl;
real cosine;
- for (lip = ba->LinkedLines.pFirst; lip; lip = lip->pNext) {
+ for (lip = ba->LinkedLines.first; lip; lip = lip->pNext) {
nrl = lip->p;
if ((!(nrl->Flags&LANPR_EDGE_FLAG_ALL_TYPE)) || (nrl->Flags & LANPR_EDGE_FLAG_CHAIN_PICKED)) continue;
@@ -72,22 +72,22 @@ int lanpr_get_nearby_render_line(LANPR_BoundingArea* ba, LANPR_RenderLine* rl){
LANPR_RenderLineChain* lanpr_create_render_line_chain(LANPR_RenderBuffer *rb){
LANPR_RenderLineChain* rlc;
- rlc = memStaticAquire(&rb->RenderDataPool, sizeof(LANPR_RenderLineChain));
+ rlc = mem_static_aquire(&rb->RenderDataPool, sizeof(LANPR_RenderLineChain));
- lstAppendItem(&rb->Chains,rlc);
+ BLI_addtail(&rb->Chains,rlc);
return rlc;
}
LANPR_RenderLineChainItem* lanpr_append_render_line_chain_point(LANPR_RenderBuffer *rb, LANPR_RenderLineChain* rlc, float x, float y, char type, int level){
LANPR_RenderLineChainItem* rlci;
- rlci = memStaticAquire(&rb->RenderDataPool, sizeof(LANPR_RenderLineChainItem));
+ rlci = mem_static_aquire(&rb->RenderDataPool, sizeof(LANPR_RenderLineChainItem));
rlci->pos[0] = x;
rlci->pos[1] = y;
rlci->LineType = type&LANPR_EDGE_FLAG_ALL_TYPE;
rlci->OcclusionLevel = level;
- lstAppendItem(&rlc->Chain,rlci);
+ BLI_addtail(&rlc->Chain,rlci);
//printf("a %f,%f %d\n", x, y, level);
@@ -96,13 +96,13 @@ LANPR_RenderLineChainItem* lanpr_append_render_line_chain_point(LANPR_RenderBuff
LANPR_RenderLineChainItem* lanpr_push_render_line_chain_point(LANPR_RenderBuffer *rb, LANPR_RenderLineChain* rlc, float x, float y, char type, int level){
LANPR_RenderLineChainItem* rlci;
- rlci = memStaticAquire(&rb->RenderDataPool, sizeof(LANPR_RenderLineChainItem));
+ rlci = mem_static_aquire(&rb->RenderDataPool, sizeof(LANPR_RenderLineChainItem));
rlci->pos[0] = x;
rlci->pos[1] = y;
rlci->LineType = type&LANPR_EDGE_FLAG_ALL_TYPE;
rlci->OcclusionLevel = level;
- lstPushItem(&rlc->Chain,rlci);
+ BLI_addhead(&rlc->Chain,rlci);
//printf("p %f,%f %d\n", x, y, level);
@@ -124,7 +124,7 @@ void lanpr_reduce_render_line_chain_recursive(LANPR_RenderLineChain* rlc, LANPR_
float dist = dist_to_line_segment_v2(rlci->pos, from->pos, to->pos);
if (dist>dist_threshold && dist>max_dist) { max_dist = dist; max_rlci = rlci; }
- //if (dist <= dist_threshold) lstRemoveItem(&rlc->Chain, (void*)rlci);
+ //if (dist <= dist_threshold) BLI_remlink(&rlc->Chain, (void*)rlci);
}
if (!max_rlci) {
@@ -132,7 +132,7 @@ void lanpr_reduce_render_line_chain_recursive(LANPR_RenderLineChain* rlc, LANPR_
for (rlci = from->Item.pNext; rlci != to; rlci = next_rlci) {
next_rlci = rlci->Item.pNext;
if (next_rlci && (next_rlci->OcclusionLevel != rlci->OcclusionLevel || next_rlci->LineType != rlci->LineType)) continue;
- lstRemoveItem(&rlc->Chain, (void*)rlci);
+ BLI_remlink(&rlc->Chain, (void*)rlci);
}
}else {
if (from->Item.pNext != max_rlci) lanpr_reduce_render_line_chain_recursive(rlc, from, max_rlci, dist_threshold);
@@ -148,7 +148,7 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_thre
LANPR_BoundingArea* ba;
LANPR_RenderLineSegment* rls;
- for(rl = rb->AllRenderLines.pFirst; rl;rl=rl->Item.pNext){
+ for(rl = rb->AllRenderLines.first; rl;rl=rl->Item.pNext){
if((!(rl->Flags&LANPR_EDGE_FLAG_ALL_TYPE)) || (rl->Flags & LANPR_EDGE_FLAG_CHAIN_PICKED)) continue;
@@ -163,7 +163,7 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_thre
// step 1: grow left
ba = lanpr_get_point_bounding_area(rb,rl->L->FrameBufferCoord[0], rl->L->FrameBufferCoord[1]);
new_rv = rl->L;
- rls = rl->Segments.pFirst;
+ rls = rl->Segments.first;
lanpr_push_render_line_chain_point(rb,rlc,new_rv->FrameBufferCoord[0],new_rv->FrameBufferCoord[1],rl->Flags, rls->OcclusionLevel);
while(ba &&(new_rl = lanpr_get_connected_render_line(ba,new_rv,&new_rv))){
new_rl->Flags |= LANPR_EDGE_FLAG_CHAIN_PICKED;
@@ -171,14 +171,14 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_thre
int last_occlusion;
if(new_rv==new_rl->L){
- for(rls = new_rl->Segments.pLast; rls;rls=rls->Item.pPrev){
+ for(rls = new_rl->Segments.last; rls;rls=rls->Item.pPrev){
float px,py;
px = tnsLinearItp(new_rl->L->FrameBufferCoord[0], new_rl->R->FrameBufferCoord[0], rls->at);
py = tnsLinearItp(new_rl->L->FrameBufferCoord[1], new_rl->R->FrameBufferCoord[1], rls->at);
lanpr_push_render_line_chain_point(rb,rlc,px,py, new_rl->Flags, rls->OcclusionLevel);
}
}elif(new_rv==new_rl->R){
- rls = new_rl->Segments.pFirst;
+ rls = new_rl->Segments.first;
last_occlusion = rls->OcclusionLevel;
rls=rls->Item.pNext;
for(rls; rls; rls= rls->Item.pNext){
@@ -194,7 +194,7 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_thre
}
// step 2: this line
- rls = rl->Segments.pFirst;
+ rls = rl->Segments.first;
for(rls = rls->Item.pNext; rls;rls=rls->Item.pNext){
float px,py;
px = tnsLinearItp(rl->L->FrameBufferCoord[0], rl->R->FrameBufferCoord[0], rls->at);
@@ -214,16 +214,16 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_thre
int last_occlusion;
// fix leading vertex type
- rlci = rlc->Chain.pLast;
+ rlci = rlc->Chain.last;
rlci->LineType = new_rl->Flags&LANPR_EDGE_FLAG_ALL_TYPE;
if (new_rv == new_rl->L) {
- rls = new_rl->Segments.pLast;
+ rls = new_rl->Segments.last;
last_occlusion = rls->OcclusionLevel;
rlci->OcclusionLevel = last_occlusion;
rls = rls->Item.pPrev;
if (rls) last_occlusion = rls->OcclusionLevel;
- for (rls = new_rl->Segments.pLast; rls; rls = rls->Item.pPrev) {
+ for (rls = new_rl->Segments.last; rls; rls = rls->Item.pPrev) {
float px, py;
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list