[Bf-blender-cvs] [2a15303a8f6] soc-2019-npr: LANPR: GPU mode now supports all three usage flags in objects and collections.

YimingWu noreply at git.blender.org
Mon Jul 8 10:30:40 CEST 2019


Commit: 2a15303a8f65ece2ad7411578fe2273d98b0f783
Author: YimingWu
Date:   Mon Jul 8 16:24:35 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB2a15303a8f65ece2ad7411578fe2273d98b0f783

LANPR: GPU mode now supports all three usage flags in objects and collections.

===================================================================

M	source/blender/draw/engines/lanpr/lanpr_engine.c

===================================================================

diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c
index 937145e3c71..8a0f3ca12be 100644
--- a/source/blender/draw/engines/lanpr/lanpr_engine.c
+++ b/source/blender/draw/engines/lanpr/lanpr_engine.c
@@ -451,6 +451,7 @@ static void lanpr_cache_populate(void *vedata, Object *ob)
   const DRWContextState *draw_ctx = DRW_context_state_get();
   View3D *v3d = draw_ctx->v3d;
   SceneLANPR *lanpr = &draw_ctx->scene->lanpr;
+  int usage, dpix_ok;
 
   if (!DRW_object_is_renderable(ob)) {
     return;
@@ -464,15 +465,23 @@ static void lanpr_cache_populate(void *vedata, Object *ob)
 
   struct GPUBatch *geom = DRW_cache_object_surface_get(ob);
   if (geom) {
+    if(dpix_ok = (lanpr->master_mode == LANPR_MASTER_MODE_DPIX && lanpr->active_layer &&
+      !lanpr_share.dpix_shader_error)){
+      usage = lanpr_object_collection_usage_check(draw_ctx->scene->master_collection, ob);
+      if(usage == OBJECT_FEATURE_LINE_EXCLUDE){
+        return;
+      }
+    }
     DRW_shgroup_call_no_cull(stl->g_data->multipass_shgrp, geom, ob);
   }
 
-  if (lanpr->master_mode == LANPR_MASTER_MODE_DPIX && lanpr->active_layer &&
-      !lanpr_share.dpix_shader_error) {
-    int usage = lanpr_object_collection_usage_check(draw_ctx->scene->master_collection, ob);
-    if(usage != OBJECT_FEATURE_LINE_INHERENT){
+  if (dpix_ok) {
+
+    /* usage already set */
+    if(usage == OBJECT_FEATURE_LINE_OCCLUSION_ONLY){
       return;
     }
+    
     int idx = pd->begin_index;
     if (lanpr->reloaded) {
       pd->begin_index = lanpr_feed_atlas_data_obj(vedata,



More information about the Bf-blender-cvs mailing list