[Bf-blender-cvs] [0efecba957e] blender2.8: Merge branch 'master' into blender2.8
Campbell Barton
noreply at git.blender.org
Wed Aug 29 17:31:07 CEST 2018
Commit: 0efecba957eea45621c004217a76448f11f0376d
Author: Campbell Barton
Date: Thu Aug 30 01:36:52 2018 +1000
Branches: blender2.8
https://developer.blender.org/rB0efecba957eea45621c004217a76448f11f0376d
Merge branch 'master' into blender2.8
===================================================================
===================================================================
diff --cc source/blender/blenloader/intern/readfile.c
index fb9739d8842,08a45f367f4..1d030610bf2
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@@ -10138,91 -9883,86 +10138,91 @@@ void BLO_expand_main(void *fdhandle, Ma
expand_idprops(fd, mainvar, id->properties);
switch (GS(id->name)) {
- case ID_OB:
- expand_object(fd, mainvar, (Object *)id);
- break;
- case ID_ME:
- expand_mesh(fd, mainvar, (Mesh *)id);
- break;
- case ID_CU:
- expand_curve(fd, mainvar, (Curve *)id);
- break;
- case ID_MB:
- expand_mball(fd, mainvar, (MetaBall *)id);
- break;
- case ID_SCE:
- expand_scene(fd, mainvar, (Scene *)id);
- break;
- case ID_MA:
- expand_material(fd, mainvar, (Material *)id);
- break;
- case ID_TE:
- expand_texture(fd, mainvar, (Tex *)id);
- break;
- case ID_WO:
- expand_world(fd, mainvar, (World *)id);
- break;
- case ID_LT:
- expand_lattice(fd, mainvar, (Lattice *)id);
- break;
- case ID_LA:
- expand_lamp(fd, mainvar, (Lamp *)id);
- break;
- case ID_KE:
- expand_key(fd, mainvar, (Key *)id);
- break;
- case ID_CA:
- expand_camera(fd, mainvar, (Camera *)id);
- break;
- case ID_SPK:
- expand_speaker(fd, mainvar, (Speaker *)id);
- break;
- case ID_SO:
- expand_sound(fd, mainvar, (bSound *)id);
- break;
- case ID_LP:
- expand_lightprobe(fd, mainvar, (LightProbe *)id);
- break;
- case ID_AR:
- expand_armature(fd, mainvar, (bArmature *)id);
- break;
- case ID_AC:
- expand_action(fd, mainvar, (bAction *)id); // XXX deprecated - old animation system
- break;
- case ID_GR:
- expand_collection(fd, mainvar, (Collection *)id);
- break;
- case ID_NT:
- expand_nodetree(fd, mainvar, (bNodeTree *)id);
- break;
- case ID_BR:
- expand_brush(fd, mainvar, (Brush *)id);
- break;
- case ID_IP:
- expand_ipo(fd, mainvar, (Ipo *)id); // XXX deprecated - old animation system
- break;
- case ID_PA:
- expand_particlesettings(fd, mainvar, (ParticleSettings *)id);
- break;
- case ID_MC:
- expand_movieclip(fd, mainvar, (MovieClip *)id);
- break;
- case ID_MSK:
- expand_mask(fd, mainvar, (Mask *)id);
- break;
- case ID_LS:
- expand_linestyle(fd, mainvar, (FreestyleLineStyle *)id);
- break;
- case ID_GD:
- expand_gpencil(fd, mainvar, (bGPdata *)id);
- break;
- case ID_CF:
- expand_cachefile(fd, mainvar, (CacheFile *)id);
- break;
- case ID_WS:
- expand_workspace(fd, mainvar, (WorkSpace *)id);
- default:
- break;
+ case ID_OB:
+ expand_object(fd, mainvar, (Object *)id);
+ break;
+ case ID_ME:
+ expand_mesh(fd, mainvar, (Mesh *)id);
+ break;
+ case ID_CU:
+ expand_curve(fd, mainvar, (Curve *)id);
+ break;
+ case ID_MB:
+ expand_mball(fd, mainvar, (MetaBall *)id);
+ break;
+ case ID_SCE:
+ expand_scene(fd, mainvar, (Scene *)id);
+ break;
+ case ID_MA:
+ expand_material(fd, mainvar, (Material *)id);
+ break;
+ case ID_TE:
+ expand_texture(fd, mainvar, (Tex *)id);
+ break;
+ case ID_WO:
+ expand_world(fd, mainvar, (World *)id);
+ break;
+ case ID_LT:
+ expand_lattice(fd, mainvar, (Lattice *)id);
+ break;
+ case ID_LA:
+ expand_lamp(fd, mainvar, (Lamp *)id);
+ break;
+ case ID_KE:
+ expand_key(fd, mainvar, (Key *)id);
+ break;
+ case ID_CA:
+ expand_camera(fd, mainvar, (Camera *)id);
+ break;
+ case ID_SPK:
+ expand_speaker(fd, mainvar, (Speaker *)id);
+ break;
+ case ID_SO:
+ expand_sound(fd, mainvar, (bSound *)id);
+ break;
++ case ID_LP:
++ expand_lightprobe(fd, mainvar, (LightProbe *)id);
++ break;
+ case ID_AR:
+ expand_armature(fd, mainvar, (bArmature *)id);
+ break;
+ case ID_AC:
+ expand_action(fd, mainvar, (bAction *)id); // XXX deprecated - old animation system
+ break;
+ case ID_GR:
- expand_group(fd, mainvar, (Group *)id);
++ expand_collection(fd, mainvar, (Collection *)id);
+ break;
+ case ID_NT:
+ expand_nodetree(fd, mainvar, (bNodeTree *)id);
+ break;
+ case ID_BR:
+ expand_brush(fd, mainvar, (Brush *)id);
+ break;
+ case ID_IP:
+ expand_ipo(fd, mainvar, (Ipo *)id); // XXX deprecated - old animation system
+ break;
+ case ID_PA:
+ expand_particlesettings(fd, mainvar, (ParticleSettings *)id);
+ break;
+ case ID_MC:
+ expand_movieclip(fd, mainvar, (MovieClip *)id);
+ break;
+ case ID_MSK:
+ expand_mask(fd, mainvar, (Mask *)id);
+ break;
+ case ID_LS:
+ expand_linestyle(fd, mainvar, (FreestyleLineStyle *)id);
+ break;
+ case ID_GD:
+ expand_gpencil(fd, mainvar, (bGPdata *)id);
+ break;
+ case ID_CF:
+ expand_cachefile(fd, mainvar, (CacheFile *)id);
+ break;
++ case ID_WS:
++ expand_workspace(fd, mainvar, (WorkSpace *)id);
+ default:
+ break;
}
do_it = true;
diff --cc source/blender/draw/engines/gpencil/gpencil_render.c
index 0b90de88ec1,00000000000..3aa94c346df
mode 100644,000000..100644
--- a/source/blender/draw/engines/gpencil/gpencil_render.c
+++ b/source/blender/draw/engines/gpencil/gpencil_render.c
@@@ -1,356 -1,0 +1,356 @@@
+/*
+ * Copyright 2017, Blender Foundation.
+ *
+ * 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.
+ *
+ * Contributor(s): Antonio Vazquez
+ *
+ */
+
+/** \file blender/draw/engines/gpencil/gpencil_render.c
+ * \ingroup draw
+ */
+#include "BLI_rect.h"
+
+#include "DRW_engine.h"
+#include "DRW_render.h"
+
+#include "BKE_camera.h"
+
+#include "DNA_gpencil_types.h"
+
+#include "DEG_depsgraph_query.h"
+
+#include "draw_mode_engines.h"
+
+#include "RE_pipeline.h"
+
+#include "gpencil_engine.h"
+
+/* Get pixel size for render
+* This function uses the same calculation used for viewport, because if use
+* camera pixelsize, the result is not correct.
+*/
+static float get_render_pixelsize(float persmat[4][4], int winx, int winy)
+{
+ float v1[3], v2[3];
+ float len_px, len_sc;
+
+ v1[0] = persmat[0][0];
+ v1[1] = persmat[1][0];
+ v1[2] = persmat[2][0];
+
+ v2[0] = persmat[0][1];
+ v2[1] = persmat[1][1];
+ v2[2] = persmat[2][1];
+
+ len_px = 2.0f / sqrtf(min_ff(len_squared_v3(v1), len_squared_v3(v2)));
+ len_sc = (float)MAX2(winx, winy);
+
+ return len_px / len_sc;
+}
+
+/* init render data */
+void GPENCIL_render_init(GPENCIL_Data *ved, RenderEngine *engine, struct Depsgraph *depsgraph)
+{
+ GPENCIL_Data *vedata = (GPENCIL_Data *)ved;
+ GPENCIL_StorageList *stl = vedata->stl;
+ GPENCIL_FramebufferList *fbl = vedata->fbl;
+
+ Scene *scene = DEG_get_evaluated_scene(depsgraph);
+ const float *viewport_size = DRW_viewport_size_get();
+ const int size[2] = { (int)viewport_size[0], (int)viewport_size[1] };
+
+ /* In render mode the default framebuffer is not generated
+ * because there is no viewport. So we need to manually create one
+ * NOTE : use 32 bit format for precision in render mode.
+ */
+ /* create multiframe framebuffer for AA */
+ if (U.gpencil_multisamples > 0) {
+ int rect_w = (int)viewport_size[0];
+ int rect_h = (int)viewport_size[1];
+ DRW_gpencil_multisample_ensure(vedata, rect_w, rect_h);
+ }
+
+ vedata->render_depth_tx = DRW_texture_pool_query_2D(
+ size[0], size[1], GPU_DEPTH24_STENCIL8,
+ &draw_engine_gpencil_type);
+ vedata->render_color_tx = DRW_texture_pool_query_2D(
+ size[0], size[1], GPU_RGBA32F,
+ &draw_engine_gpencil_type);
+ GPU_framebuffer_ensure_config(
+ &fbl->main, {
+ GPU_ATTACHMENT_TEXTURE(vedata->render_depth_tx),
+ GPU_ATTACHMENT_TEXTURE(vedata->render_color_tx)
+ });
+
+ /* Alloc transient data. */
+ if (!stl->g_data) {
+ stl->g_data = MEM_callocN(sizeof(*stl->g_data), __func__);
+ }
+
+ /* Set the pers & view matrix. */
+ struct Object *camera = DEG_get_evaluated_object(depsgraph, RE_GetCamera(engine->re));
+ float frame = BKE_scene_frame_get(scene);
+ RE_GetCameraWindow(engine->re, camera, frame, stl->storage->winmat);
+ RE_GetCameraModelMatrix(engine->re, camera, stl->storage->viewinv);
+
+ invert_m4_m4(stl->storage->viewmat, stl->storage->viewinv);
+ mul_m4_m4m4(stl->storage->persmat, stl->storage->winmat, stl->storage->viewmat);
+ invert_m4_m4(stl->storage->persinv, stl->storage->persmat);
+ invert_m4_m4(stl->storage->wininv, stl->storage->winmat);
+
+ DRW_viewport_matrix_override_set(stl->storage->persmat, DRW_MAT_PERS);
+ DRW_viewport_matrix_override_set(stl->storage->persinv, DRW_MAT_PERSINV);
+ DRW_viewport_matrix_override_set(stl->storage->winmat, DRW_MAT_WIN);
+ DRW_viewport_matrix_override_set(stl->storage->wininv, DRW_MAT_WININV);
+ DRW_viewport_matrix_override_set(stl->storage->viewmat, DRW_MAT_VIEW);
+ DRW_viewport_matrix_override_set(stl->storage->viewinv, DRW_MAT_VIEWINV);
+
+ /* calculate pixel size for render */
+ stl->storage
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list