[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