[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