[Bf-blender-cvs] [8fc5c61974c] soc-2019-npr: LANPR: Move data defs and the svg modifier into editor/lanpr.
YimingWu
noreply at git.blender.org
Wed Jul 10 15:10:35 CEST 2019
Commit: 8fc5c61974c7b2e866fb850376e20d4226efd350
Author: YimingWu
Date: Wed Jul 10 21:09:39 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB8fc5c61974c7b2e866fb850376e20d4226efd350
LANPR: Move data defs and the svg modifier into editor/lanpr.
===================================================================
M source/blender/draw/CMakeLists.txt
M source/blender/draw/engines/lanpr/lanpr_all.h
D source/blender/draw/engines/lanpr/lanpr_data_types.h
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
M source/blender/editors/CMakeLists.txt
A source/blender/editors/include/ED_lanpr.h
M source/blender/editors/io/io_svg.c
A source/blender/editors/lanpr/CMakeLists.txt
A source/blender/editors/lanpr/lanpr_ops.c
===================================================================
diff --git a/source/blender/draw/CMakeLists.txt b/source/blender/draw/CMakeLists.txt
index f50cb8be979..7d8b8c6c7bd 100644
--- a/source/blender/draw/CMakeLists.txt
+++ b/source/blender/draw/CMakeLists.txt
@@ -160,7 +160,6 @@ set(SRC
engines/lanpr/lanpr_util.h
engines/lanpr/lanpr_all.h
engines/lanpr/lanpr_access.h
- engines/lanpr/lanpr_data_types.h
)
set(LIB
diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h
index b8ce39af596..ace31e976bd 100644
--- a/source/blender/draw/engines/lanpr/lanpr_all.h
+++ b/source/blender/draw/engines/lanpr/lanpr_all.h
@@ -26,8 +26,7 @@
#ifndef __LANPR_ALL_H__
#define __LANPR_ALL_H__
-#include "lanpr_util.h"
-#include "lanpr_data_types.h"
+#include "ED_lanpr.h"
#include "BLI_mempool.h"
#include "BLI_utildefines.h"
/* #include "GPU_framebuffer.h" */
@@ -74,45 +73,6 @@ extern struct DrawEngineType draw_engine_lanpr_type;
typedef struct LANPR_RenderBuffer LANPR_RenderBuffer;
-typedef struct LANPR_SharedResource {
-
- /* We only allocate once for all */
- LANPR_RenderBuffer *render_buffer_shared;
-
- /* cache */
- BLI_mempool *mp_sample;
- BLI_mempool *mp_line_strip;
- BLI_mempool *mp_line_strip_point;
- BLI_mempool *mp_batch_list;
-
- /* Snake */
- GPUShader *multichannel_shader;
- GPUShader *edge_detect_shader;
- GPUShader *edge_thinning_shader;
- GPUShader *snake_connection_shader;
-
- /* DPIX */
- GPUShader *dpix_transform_shader;
- GPUShader *dpix_preview_shader;
- int dpix_shader_error;
- int texture_size;
-
- /* Software */
- GPUShader *software_shader;
- GPUShader *software_chaining_shader;
-
- void *ved_viewport;
- void *ved_render;
-
- int init_complete;
-
- SpinLock render_flag_lock;
- int during_render; /* get/set using access funcion which uses render_flag_lock to lock. */
- /* this prevents duplicate too much resource. (no render preview in viewport */
- /* while rendering) */
-
-} LANPR_SharedResource;
-
typedef struct LANPR_PassList {
/* Snake */
struct DRWPass *depth_pass;
diff --git a/source/blender/draw/engines/lanpr/lanpr_data_types.h b/source/blender/draw/engines/lanpr/lanpr_data_types.h
deleted file mode 100644
index 60cb97d30c1..00000000000
--- a/source/blender/draw/engines/lanpr/lanpr_data_types.h
+++ /dev/null
@@ -1,252 +0,0 @@
-#ifndef __LANPR_DATA_TYPES_H__
-#define __LANPR_DATA_TYPES_H__
-/*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Copyright 2016, Blender Foundation.
- *
- * Contributor(s): Yiming Wu
- *
- */
-
-/** \file
- * \ingroup draw
- */
-
-#include "lanpr_util.h"
-
-typedef struct LANPR_TextureSample {
- struct LANPR_TextureSample *next, *prev;
- int X, Y;
- float Z; /* for future usage */
-} LANPR_TextureSample;
-
-typedef struct LANPR_LineStripPoint {
- struct LANPR_LineStripPoint *next, *prev;
- float P[3];
-} LANPR_LineStripPoint;
-
-typedef struct LANPR_LineStrip {
- struct LANPR_LineStrip *next, *prev;
- ListBase points;
- int point_count;
- float total_length;
-} LANPR_LineStrip;
-
-typedef struct LANPR_RenderTriangle {
- struct LANPR_RenderTriangle *next, *prev;
- struct LANPR_RenderVert *v[3];
- struct LANPR_RenderLine *rl[3];
- real gn[3];
- real gc[3];
- /* struct BMFace *F; */
- short material_id;
- ListBase intersecting_verts;
- char cull_status;
- struct LANPR_RenderTriangle *testing; /* Should Be tRT** testing[NumOfThreads] */
-} LANPR_RenderTriangle;
-
-typedef struct LANPR_RenderTriangleThread {
- struct LANPR_RenderTriangle base;
- struct LANPR_RenderLine *testing[127]; /* max thread support; */
-} LANPR_RenderTriangleThread;
-
-typedef struct LANPR_RenderElementLinkNode {
- struct LANPR_RenderElementLinkNode *next, *prev;
- void *pointer;
- int element_count;
- void *object_ref;
- char additional;
-} LANPR_RenderElementLinkNode;
-
-typedef struct LANPR_RenderLineSegment {
- struct LANPR_RenderLineSegment *next, *prev;
- real at; /* at==0: left at==1: right (this is in 2D projected space) */
- real at_global; /* to reconstruct 3d stroke (XXX: implement global space?) */
- u8bit occlusion; /* after "at" point */
- short material_mask_mark; /* e.g. to determine lines beind a glass window material. */
-} LANPR_RenderLineSegment;
-
-typedef struct LANPR_RenderVert {
- struct LANPR_RenderVert *next, *prev;
- real gloc[4];
- real fbcoord[4];
- int fbcoordi[2];
- struct BMVert *v; /* Used As r When Intersecting */
- struct LANPR_RenderLine *intersecting_line;
- struct LANPR_RenderLine *intersecting_line2;
- struct LANPR_RenderTriangle *intersecting_with; /* positive 1 Negative 0 */
- /* tnsRenderTriangle* IntersectingOnFace; /* <| |> */
- char positive; /* l---->|----->r l---->|----->r */
- char edge_used; /* <| |> */
-} LANPR_RenderVert;
-
-#define LANPR_EDGE_FLAG_EDGE_MARK 1
-#define LANPR_EDGE_FLAG_CONTOUR 2
-#define LANPR_EDGE_FLAG_CREASE 4
-#define LANPR_EDGE_FLAG_MATERIAL 8
-#define LANPR_EDGE_FLAG_INTERSECTION 16
-#define LANPR_EDGE_FLAG_FLOATING 32 /* floating edge, unimplemented yet */
-#define LANPR_EDGE_FLAG_CHAIN_PICKED 64
-
-#define LANPR_EDGE_FLAG_ALL_TYPE 0x3f
-
-typedef struct LANPR_RenderLine {
- struct LANPR_RenderLine *next, *prev;
- struct LANPR_RenderVert *l, *r;
- struct LANPR_RenderTriangle *tl, *tr;
- ListBase segments;
- /* tnsEdge* Edge;/* should be edge material */
- /* tnsRenderTriangle* testing;/* Should Be tRT** testing[NumOfThreads] struct Materil */
- /* *MaterialRef; */
- char min_occ;
- char flags; /* also for line type determination on chainning */
-
- /* still need this entry because culled lines will not add to object reln node */
- struct Object *object_ref;
-
- int edge_idx; /* for gpencil stroke modifier */
-} LANPR_RenderLine;
-
-typedef struct LANPR_RenderLineChain {
- struct LANPR_RenderLineChain *next, *prev;
- ListBase chain;
- /* int SegmentCount; /* we count before draw cmd. */
- float length; /* calculated before draw cmd. */
- char picked; /* used when re-connecting and gp stroke generation */
- char level;
- int type; /* Chain now only contains one type of segments */
- struct Object *object_ref;
-} LANPR_RenderLineChain;
-
-typedef struct LANPR_RenderLineChainItem {
- struct LANPR_RenderLineChainItem *next, *prev;
- float pos[3]; /* need z value for fading */
- float gpos[3]; /* for restore position to 3d space */
- float normal[3];
- char line_type; /* style of [1] style of [2] */
- char occlusion; /* [1]--------------->[2]---------------->[3]--.... */
-} LANPR_RenderLineChainItem;
-
-typedef struct LANPR_ChainRegisterEntry {
- struct LANPR_ChainRegisterEntry *next, *prev;
- LANPR_RenderLineChain *rlc;
- LANPR_RenderLineChainItem *rlci;
- char picked;
- char is_left; /* left/right mark. Because we revert list in chaining and we need the flag. */
-} LANPR_ChainRegisterEntry;
-
-typedef struct LANPR_RenderBuffer {
- struct LANPR_RenderBuffer *prev, *next;
-
- int is_copied; /* for render. */
-
- int w, h;
- int tile_size_w, tile_size_h;
- int tile_count_x, tile_count_y;
- real width_per_tile, height_per_tile;
- tnsMatrix44d view_projection;
- tnsMatrix44d vp_inverse;
-
- int output_mode;
- int output_aa_level;
-
- struct LANPR_BoundingArea *initial_bounding_areas;
- u32bit bounding_area_count;
-
- ListBase vertex_buffer_pointers;
- ListBase line_buffer_pointers;
- ListBase triangle_buffer_pointers;
- ListBase all_render_lines;
-
- ListBase intersecting_vertex_buffer;
-
- struct GPUBatch *DPIXIntersectionTransformBatch;
- struct GPUBatch *DPIXIntersectionBatch;
-
- /* use own-implemented one */
- LANPR_StaticMemPool render_data_pool;
-
- struct Material *material_pointers[2048];
-
- /* render status */
-
- int cached_for_frame;
-
- real view_vector[3];
-
- int triangle_size;
-
- u32bit contour_count;
- u32bit contour_processed;
- LinkData *contour_managed;
- ListBase contours;
-
- u32bit intersection_count;
- u32bit intersection_processed;
- LinkData *intersection_managed;
- ListBase intersection_lines;
-
- u32bit crease_count;
- u32bit crease_processed;
- LinkData *crease_managed;
- ListBase crease_lines;
-
- u32bit material_line_count;
- u32bit material_processed;
- LinkData *material_managed;
- ListBase material_lines;
-
- u32bit edge_mark_count;
- u32bit edge_mark_processed;
- LinkData *edge_mark_managed;
- ListBase edge_marks;
-
- ListBase chains;
- struct GPUBatch *chain_draw_batch;
-
- struct DRWShadingGroup *ChainShgrp;
-
- SpinLock cs_info;
- SpinLock cs_data;
- SpinLock cs_management;
-
- /* settings */
-
- int max_occlusion_level;
- real crease_angle;
- real crease_cos;
- int thread_count;
-
- real overall_progress;
- int calculation_status;
-
- int draw_material_preview;
- real material_transparency;
-
- int show_line;
- int show_fast;
- int show_material;
- int override_display;
-
- struct Scene *scene;
- struct Object *camera;
-
- int enable_intersections;
- int _pad;
-
-} LANPR_RenderBuffer;
-
-#endif
\ No newline at end of file
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c
index 874abb2ba90..c96cbe5918a 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -6,7 +6,7 @@
#include "BLI_task.h"
#include "BLI_utildefines.h"
#include "lanpr_all.h"
-#include "lanpr_util
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list