forked from bartvdbraak/blender
Migration of Freestyle to Blender 2.5 codebase (continued):
- proper Freestyle initialization, with support for undo/redo - re-added FreestyleStyleConfig data structure - Freestyle Python interpreter updated This commit should compile without errors. More work is necessary to complete the migration: - add Freestyle in the UI - set up RNA support
This commit is contained in:
parent
1ff038397f
commit
002ac28643
@ -9,6 +9,7 @@ SConscript(['avi/SConscript',
|
||||
'blenpluginapi/SConscript',
|
||||
'gpu/SConscript',
|
||||
'editors/SConscript',
|
||||
'freestyle/SConscript',
|
||||
'imbuf/SConscript',
|
||||
'imbuf/intern/cineon/SConscript',
|
||||
'makesdna/SConscript',
|
||||
@ -31,7 +32,4 @@ if env['WITH_BF_OPENEXR']:
|
||||
SConscript (['imbuf/intern/openexr/SConscript'])
|
||||
|
||||
if env['WITH_BF_QUICKTIME']:
|
||||
SConscript (['quicktime/SConscript'])
|
||||
|
||||
if env['WITH_BF_FREESTYLE']:
|
||||
SConscript (['freestyle/SConscript'])
|
||||
SConscript (['quicktime/SConscript'])
|
@ -30,7 +30,7 @@ SET(INC
|
||||
. ../../../intern/guardedalloc ../../../intern/memutil ../editors/include ../blenlib ../makesdna
|
||||
../render/extern/include ../../../intern/decimation/extern
|
||||
../imbuf ../avi ../../../intern/elbeem/extern ../../../intern/opennl/extern
|
||||
../../../intern/iksolver/extern ../blenloader
|
||||
../../../intern/iksolver/extern ../blenloader ../freestyle
|
||||
../nodes ../../../extern/glew/include ../gpu ../makesrna ../../../intern/smoke/extern
|
||||
../../../intern/bsp/extern ../blenfont
|
||||
../../../intern/audaspace/intern
|
||||
|
@ -6,7 +6,7 @@ sources = env.Glob('intern/*.c')
|
||||
incs = '. #/intern/guardedalloc #/intern/memutil ../editors/include ../blenlib ../blenfont ../makesdna'
|
||||
incs += ' ../render/extern/include #/intern/decimation/extern ../makesrna'
|
||||
incs += ' ../imbuf ../avi #/intern/elbeem/extern ../nodes'
|
||||
incs += ' #/intern/iksolver/extern ../blenloader'
|
||||
incs += ' #/intern/iksolver/extern ../blenloader ../freestyle'
|
||||
incs += ' #/extern/bullet2/src'
|
||||
incs += ' #/intern/opennl/extern #/intern/bsp/extern'
|
||||
incs += ' ../gpu #/extern/glew/include'
|
||||
|
@ -93,6 +93,8 @@
|
||||
|
||||
#include "BKE_utildefines.h" // O_BINARY FALSE
|
||||
|
||||
#include "FRS_freestyle.h"
|
||||
|
||||
Global G;
|
||||
UserDef U;
|
||||
ListBase WMlist= {NULL, NULL};
|
||||
@ -630,6 +632,8 @@ void BKE_write_undo(bContext *C, char *name)
|
||||
void BKE_undo_step(bContext *C, int step)
|
||||
{
|
||||
|
||||
FRS_initialize(C);
|
||||
|
||||
if(step==0) {
|
||||
read_undosave(C, curundo);
|
||||
}
|
||||
|
@ -11,6 +11,8 @@ extern "C" {
|
||||
#include "DNA_listBase.h"
|
||||
#include "DNA_scene_types.h"
|
||||
|
||||
#include "BKE_context.h"
|
||||
|
||||
extern short freestyle_is_initialized;
|
||||
|
||||
extern float freestyle_viewpoint[3];
|
||||
@ -26,8 +28,8 @@ extern "C" {
|
||||
extern float* freestyle_dkr_epsilon;
|
||||
|
||||
// Rendering
|
||||
void FRS_initialize();
|
||||
void FRS_add_Freestyle(struct Render* re);
|
||||
void FRS_initialize(bContext* C);
|
||||
void FRS_add_Freestyle( struct Render* re);
|
||||
void FRS_exit();
|
||||
|
||||
// Panel configuration
|
||||
|
@ -6,7 +6,7 @@ sources = []
|
||||
defs = []
|
||||
incs = ''
|
||||
|
||||
incs += '../blenkernel ../blenloader ../blenlib ../imbuf ../makesdna ../python '
|
||||
incs += '../blenkernel ../blenloader ../blenlib ../imbuf ../makesdna ../makesrna ../python '
|
||||
incs += '../render/extern/include ../render/intern/include ../include ../src'
|
||||
incs += ' #/extern/glew/include #/intern/guardedalloc'
|
||||
incs += ' ' + env['BF_PYTHON_INC']
|
||||
@ -67,7 +67,7 @@ env.BlenderLib (libname="bf_freestyle",
|
||||
sources=sources,
|
||||
includes=Split(incs),
|
||||
defines=defs,
|
||||
libtype=['blender'],
|
||||
libtype=['core'],
|
||||
priority = [25]
|
||||
)
|
||||
|
||||
|
@ -25,7 +25,7 @@
|
||||
using namespace std;
|
||||
|
||||
extern "C" {
|
||||
#include "api2_2x/EXPP_interface.h"
|
||||
#include "BLI_util.h"
|
||||
}
|
||||
|
||||
namespace Config {
|
||||
@ -33,7 +33,7 @@ Path* Path::_pInstance = 0;
|
||||
Path::Path() {
|
||||
// get the root directory
|
||||
//soc
|
||||
setRootDir( bpy_gethome(1) );
|
||||
setRootDir( BLI_gethome_folder("scripts") );
|
||||
|
||||
_pInstance = this;
|
||||
}
|
||||
|
@ -656,7 +656,7 @@ void Controller::DrawStrokes()
|
||||
}
|
||||
|
||||
Render* Controller::RenderStrokes(Render *re) {
|
||||
BlenderStrokeRenderer* blenderRenderer = new BlenderStrokeRenderer;
|
||||
BlenderStrokeRenderer* blenderRenderer = new BlenderStrokeRenderer(re);
|
||||
_Canvas->Render( blenderRenderer );
|
||||
Render* freestyle_render = blenderRenderer->RenderScene(re);
|
||||
delete blenderRenderer;
|
||||
|
@ -17,9 +17,8 @@ extern "C" {
|
||||
#include "DNA_camera_types.h"
|
||||
#include "DNA_freestyle_types.h"
|
||||
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_main.h"
|
||||
#include "BLI_blenlib.h"
|
||||
#include "BIF_renderwin.h"
|
||||
#include "BPY_extern.h"
|
||||
|
||||
#include "renderpipeline.h"
|
||||
@ -33,6 +32,7 @@ extern "C" {
|
||||
static Config::Path *pathconfig = NULL;
|
||||
static Controller *controller = NULL;
|
||||
static AppView *view = NULL;
|
||||
static Scene *current_scene = NULL;
|
||||
|
||||
// camera information
|
||||
float freestyle_viewpoint[3];
|
||||
@ -55,7 +55,7 @@ extern "C" {
|
||||
// Initialization
|
||||
//=======================================================
|
||||
|
||||
void FRS_initialize(){
|
||||
void FRS_initialize(bContext* C){
|
||||
|
||||
if( !freestyle_is_initialized ) {
|
||||
|
||||
@ -69,7 +69,11 @@ extern "C" {
|
||||
freestyle_is_initialized = 1;
|
||||
}
|
||||
|
||||
FRS_select_layer( (SceneRenderLayer*) BLI_findlink(&G.scene->r.layers, G.scene->r.actlay) );
|
||||
current_scene = CTX_data_scene(C);
|
||||
if( !current_scene )
|
||||
current_scene = (Scene*) CTX_data_main(C)->scene.first;
|
||||
|
||||
FRS_select_layer( (SceneRenderLayer*) BLI_findlink(¤t_scene->r.layers, current_scene->r.actlay) );
|
||||
|
||||
}
|
||||
|
||||
@ -212,7 +216,7 @@ extern "C" {
|
||||
init_view(re);
|
||||
init_camera(re);
|
||||
|
||||
for(srl= (SceneRenderLayer *)G.scene->r.layers.first; srl; srl= srl->next) {
|
||||
for(srl= (SceneRenderLayer *)current_scene->r.layers.first; srl; srl= srl->next) {
|
||||
if( !(srl->layflag & SCE_LAY_DISABLE) &&
|
||||
srl->layflag & SCE_LAY_FRS &&
|
||||
displayed_layer_count(srl) > 0 )
|
||||
@ -277,7 +281,7 @@ extern "C" {
|
||||
freestyle_dkr_epsilon = &config->dkr_epsilon;
|
||||
|
||||
freestyle_current_layer = srl;
|
||||
G.scene->freestyle_current_layer_number = BLI_findindex(&G.scene->r.layers, freestyle_current_layer);
|
||||
current_scene->freestyle_current_layer_number = BLI_findindex(¤t_scene->r.layers, freestyle_current_layer);
|
||||
}
|
||||
|
||||
void FRS_add_module()
|
||||
|
@ -66,7 +66,7 @@ void BlenderFileLoader::insertShapeNode(ObjectRen *obr, int id)
|
||||
// M allows to recover world coordinates from camera coordinates
|
||||
// M => obr->ob->imat * obr->obmat (multiplication from left to right)
|
||||
float M[4][4];
|
||||
MTC_Mat4MulMat4(M, obr->ob->imat, obr->ob->obmat);
|
||||
Mat4MulMat4(M, obr->ob->imat, obr->ob->obmat);
|
||||
|
||||
// We compute a normal per vertex and manages the smoothing of the shape:
|
||||
// Lib3dsVector *normalL=(Lib3dsVector*)malloc(3*sizeof(Lib3dsVector)*mesh->faces);
|
||||
@ -128,7 +128,7 @@ void BlenderFileLoader::insertShapeNode(ObjectRen *obr, int id)
|
||||
pvtmp[1] = obr->vertnodes[0].vert->co[1];
|
||||
pvtmp[2] = obr->vertnodes[0].vert->co[2];
|
||||
|
||||
MTC_Mat4MulVecfl( M, pvtmp);
|
||||
Mat4MulVecfl( M, pvtmp);
|
||||
|
||||
minBBox[0] = pvtmp[0];
|
||||
maxBBox[0] = pvtmp[0];
|
||||
@ -197,7 +197,7 @@ void BlenderFileLoader::insertShapeNode(ObjectRen *obr, int id)
|
||||
//lib3ds_vector_transform(pv, M, mesh->pointL[f->points[i]].pos); //fills the cells of the pv array
|
||||
for(j=0; j<3; j++)
|
||||
pv[j] = fv[i]->co[j];
|
||||
MTC_Mat4MulVecfl( M, pv);
|
||||
Mat4MulVecfl( M, pv);
|
||||
|
||||
for(j=0; j<3; j++) // we parse the xyz coordinates of the vertex i
|
||||
{
|
||||
@ -234,8 +234,8 @@ void BlenderFileLoader::insertShapeNode(ObjectRen *obr, int id)
|
||||
vec02[2] = pv_ptr[2][2] - pv_ptr[0][2];
|
||||
|
||||
float n[3];
|
||||
MTC_cross3Float(n, vec01, vec02);
|
||||
MTC_normalize3DF(n);
|
||||
Crossf(n, vec01, vec02);
|
||||
Normalize(n);
|
||||
|
||||
for(i=0; i<3; ++i) {
|
||||
for(j=0; j<3; ++j) {
|
||||
@ -277,7 +277,7 @@ void BlenderFileLoader::insertShapeNode(ObjectRen *obr, int id)
|
||||
//lib3ds_vector_transform(pv, M, mesh->pointL[f->points[i]].pos); //fills the cells of the pv array
|
||||
for(j=0; j<3; j++)
|
||||
pv[j] = fv[i]->co[j];
|
||||
MTC_Mat4MulVecfl( M, pv);
|
||||
Mat4MulVecfl( M, pv);
|
||||
|
||||
for(j=0; j<3; j++) // we parse the xyz coordinates of the vertex i
|
||||
{
|
||||
@ -314,8 +314,8 @@ void BlenderFileLoader::insertShapeNode(ObjectRen *obr, int id)
|
||||
vec02[2] = pv_ptr[2][2] - pv_ptr[0][2];
|
||||
|
||||
float n[3];
|
||||
MTC_cross3Float(n, vec01, vec02);
|
||||
MTC_normalize3DF(n);
|
||||
Crossf(n, vec01, vec02);
|
||||
Normalize(n);
|
||||
|
||||
for(i=0; i<3; ++i) {
|
||||
for(j=0; j<3; ++j) {
|
||||
|
@ -24,8 +24,7 @@ extern "C" {
|
||||
|
||||
#include "BKE_mesh.h"
|
||||
#include "BKE_scene.h"
|
||||
#include "MTC_matrixops.h"
|
||||
#include "MTC_vectorops.h"
|
||||
#include "BLI_arithb.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -17,10 +17,6 @@ extern "C" {
|
||||
#include "DNA_meshdata_types.h"
|
||||
#include "DNA_screen_types.h"
|
||||
|
||||
#include "BIF_drawscene.h"
|
||||
#include "BIF_renderwin.h"
|
||||
#include "BIF_writeimage.h"
|
||||
|
||||
#include "BKE_customdata.h"
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_library.h" /* free_libblock */
|
||||
@ -28,9 +24,6 @@ extern "C" {
|
||||
#include "BKE_main.h" /* struct Main */
|
||||
#include "BKE_object.h"
|
||||
#include "BKE_scene.h"
|
||||
#include "BSE_sequence.h" /* to clear_scene_in_allseqs */
|
||||
#include "BSE_node.h" /* to clear_scene_in_nodes */
|
||||
#include "BSE_edit.h" /* countall */
|
||||
|
||||
#include "RE_pipeline.h"
|
||||
|
||||
@ -39,9 +32,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
BlenderStrokeRenderer::BlenderStrokeRenderer()
|
||||
BlenderStrokeRenderer::BlenderStrokeRenderer(Render* re)
|
||||
:StrokeRenderer(){
|
||||
|
||||
// TEMPORARY - need a texture manager
|
||||
@ -49,23 +40,23 @@ BlenderStrokeRenderer::BlenderStrokeRenderer()
|
||||
_textureManager->load();
|
||||
|
||||
// Scene.New("FreestyleStrokes")
|
||||
old_scene = G.scene;
|
||||
old_scene = re->scene;
|
||||
|
||||
objects.first = objects.last = NULL;
|
||||
|
||||
ListBase lb;
|
||||
scene = add_scene("freestyle_strokes");
|
||||
lb = scene->r.layers;
|
||||
scene->r= old_scene->r;
|
||||
scene->r.layers= lb;
|
||||
set_scene_bg( scene );
|
||||
freestyle_scene = add_scene("freestyle_strokes");
|
||||
lb = freestyle_scene->r.layers;
|
||||
freestyle_scene->r= old_scene->r;
|
||||
freestyle_scene->r.layers= lb;
|
||||
set_scene_bg( freestyle_scene );
|
||||
|
||||
// image dimensions
|
||||
float width = scene->r.xsch;
|
||||
float height = scene->r.ysch;
|
||||
float width = freestyle_scene->r.xsch;
|
||||
float height = freestyle_scene->r.ysch;
|
||||
|
||||
// Camera
|
||||
Object* object_camera = add_object(OB_CAMERA);
|
||||
Object* object_camera = add_object(freestyle_scene, OB_CAMERA);
|
||||
|
||||
Camera* camera = (Camera *) object_camera->data;
|
||||
camera->type = CAM_ORTHO;
|
||||
@ -75,7 +66,7 @@ BlenderStrokeRenderer::BlenderStrokeRenderer()
|
||||
object_camera->loc[1] = 0.5 * height;
|
||||
object_camera->loc[2] = 1.0;
|
||||
|
||||
scene->camera = object_camera;
|
||||
freestyle_scene->camera = object_camera;
|
||||
|
||||
store_object(object_camera);
|
||||
|
||||
@ -94,7 +85,7 @@ BlenderStrokeRenderer::~BlenderStrokeRenderer(){
|
||||
}
|
||||
|
||||
// release scene
|
||||
free_libblock( &G.main->scene, scene );
|
||||
free_libblock( &G.main->scene, freestyle_scene );
|
||||
|
||||
// release objects and data blocks
|
||||
LinkData *link = (LinkData *)objects.first;
|
||||
@ -154,7 +145,7 @@ void BlenderStrokeRenderer::RenderStrokeRepBasic(StrokeRep *iStrokeRep) const{
|
||||
++s){
|
||||
|
||||
// me = Mesh.New()
|
||||
Object* object_mesh = add_object(OB_MESH);
|
||||
Object* object_mesh = add_object(freestyle_scene, OB_MESH);
|
||||
Mesh* mesh = (Mesh *) object_mesh->data;
|
||||
MEM_freeN(mesh->bb);
|
||||
mesh->bb= NULL;
|
||||
@ -270,13 +261,13 @@ void BlenderStrokeRenderer::RenderStrokeRepBasic(StrokeRep *iStrokeRep) const{
|
||||
}
|
||||
|
||||
Render* BlenderStrokeRenderer::RenderScene( Render *re ) {
|
||||
scene->r.mode &= ~( R_EDGE_FRS | R_SHADOW | R_SSS | R_PANORAMA | R_ENVMAP | R_MBLUR );
|
||||
scene->r.scemode &= ~( R_SINGLE_LAYER );
|
||||
scene->r.planes = R_PLANES32;
|
||||
scene->r.imtype = R_PNG;
|
||||
freestyle_scene->r.mode &= ~( R_EDGE_FRS | R_SHADOW | R_SSS | R_PANORAMA | R_ENVMAP | R_MBLUR );
|
||||
freestyle_scene->r.scemode &= ~( R_SINGLE_LAYER );
|
||||
freestyle_scene->r.planes = R_PLANES32;
|
||||
freestyle_scene->r.imtype = R_PNG;
|
||||
|
||||
Render* freestyle_render = RE_NewRender(scene->id.name);
|
||||
Render* freestyle_render = RE_NewRender(freestyle_scene->id.name);
|
||||
|
||||
RE_BlenderFrame( freestyle_render, scene, 1);
|
||||
RE_BlenderFrame( freestyle_render, freestyle_scene, 1);
|
||||
return freestyle_render;
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ extern "C" {
|
||||
class LIB_STROKE_EXPORT BlenderStrokeRenderer : public StrokeRenderer
|
||||
{
|
||||
public:
|
||||
BlenderStrokeRenderer();
|
||||
BlenderStrokeRenderer(Render *re);
|
||||
virtual ~BlenderStrokeRenderer();
|
||||
|
||||
/*! Renders a stroke rep */
|
||||
@ -33,8 +33,8 @@ public:
|
||||
Render* RenderScene(Render *re);
|
||||
|
||||
protected:
|
||||
Scene* scene;
|
||||
Scene* old_scene;
|
||||
Scene* freestyle_scene;
|
||||
Material* material;
|
||||
ListBase objects;
|
||||
|
||||
|
@ -68,9 +68,9 @@ public:
|
||||
}
|
||||
|
||||
Operators::reset();
|
||||
int errorCode;
|
||||
if( (errorCode = _inter->interpretFile(_file_name)) ) {
|
||||
cerr << "Error: interpretation failed with code " << errorCode << endl;
|
||||
|
||||
if( _inter->interpretFile(_file_name) ) {
|
||||
cerr << "Error: interpretation failed" << endl;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -42,8 +42,6 @@ class LIB_SYSTEM_EXPORT Interpreter
|
||||
|
||||
virtual ~Interpreter() {}; //soc
|
||||
|
||||
virtual int interpretCmd(const string& cmd) = 0;
|
||||
|
||||
virtual int interpretFile(const string& filename) = 0;
|
||||
|
||||
virtual string getLanguage() const { return _language; }
|
||||
|
@ -37,12 +37,14 @@
|
||||
|
||||
//soc
|
||||
extern "C" {
|
||||
#include "MEM_guardedalloc.h"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_context.h"
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_report.h"
|
||||
#include "BKE_text.h"
|
||||
#include "BKE_library.h"
|
||||
#include "BPY_extern.h"
|
||||
#include "BIF_drawtext.h"
|
||||
}
|
||||
|
||||
class LIB_SYSTEM_EXPORT PythonInterpreter : public Interpreter
|
||||
@ -58,35 +60,32 @@ class LIB_SYSTEM_EXPORT PythonInterpreter : public Interpreter
|
||||
//Py_Finalize();
|
||||
}
|
||||
|
||||
int interpretCmd(const string& cmd) {
|
||||
initPath();
|
||||
char* c_cmd = strdup(cmd.c_str());
|
||||
int err = PyRun_SimpleString(c_cmd);
|
||||
free(c_cmd);
|
||||
return err;
|
||||
}
|
||||
|
||||
int interpretFile(const string& filename) {
|
||||
initPath();
|
||||
|
||||
char *fn = const_cast<char*>(filename.c_str());
|
||||
struct Text *text = add_text( fn );
|
||||
bContext* C = CTX_create();
|
||||
ReportList* reports = (ReportList*) MEM_mallocN(sizeof(ReportList), "freestyleExecutionReportList");
|
||||
|
||||
if (text == NULL) {
|
||||
cout << "\nError in PythonInterpreter::interpretFile:" << endl;
|
||||
cout << "couldn't create Blender text from" << fn << endl;
|
||||
initPath(C);
|
||||
|
||||
BKE_reports_init(reports, RPT_ERROR);
|
||||
char *fn = const_cast<char*>(filename.c_str());
|
||||
|
||||
int status = BPY_run_python_script( C, fn, NULL, reports);
|
||||
|
||||
if (status != 1) {
|
||||
cout << "\nError executing Python script from PythonInterpreter::interpretFile" << endl;
|
||||
cout << "File: " << fn << endl;
|
||||
cout << "Errors: " << endl;
|
||||
BKE_reports_print(reports, RPT_ERROR);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int status = BPY_txt_do_python_Text(text);
|
||||
|
||||
// cleaning up
|
||||
unlink_text(text);
|
||||
free_libblock(&G.main->text, text);
|
||||
|
||||
if (status != 1) {
|
||||
cout << "\nError executing Python script from PythonInterpreter::interpretFile:" << endl;
|
||||
cout << fn << " (at line " << BPY_Err_getLinenumber() << ")" << endl;
|
||||
return BPY_Err_getLinenumber();
|
||||
CTX_free( C );
|
||||
BKE_reports_clear(reports);
|
||||
if ((reports->flag & RPT_FREE) == 0)
|
||||
{
|
||||
MEM_freeN(reports);
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -111,7 +110,7 @@ class LIB_SYSTEM_EXPORT PythonInterpreter : public Interpreter
|
||||
|
||||
private:
|
||||
|
||||
static void initPath() {
|
||||
static void initPath(bContext* C) {
|
||||
if (_initialized)
|
||||
return;
|
||||
|
||||
@ -130,10 +129,10 @@ private:
|
||||
}
|
||||
}
|
||||
|
||||
BPY_txt_do_python_Text(text);
|
||||
BPY_run_python_script( C, NULL, text, NULL);
|
||||
|
||||
// cleaning up
|
||||
unlink_text(text);
|
||||
unlink_text(G.main, text);
|
||||
free_libblock(&G.main->text, text);
|
||||
|
||||
//PyRun_SimpleString("from Freestyle import *");
|
||||
|
28
source/blender/makesdna/DNA_freestyle_types.h
Normal file
28
source/blender/makesdna/DNA_freestyle_types.h
Normal file
@ -0,0 +1,28 @@
|
||||
#ifndef DNA_FREESTYLE_TYPES_H
|
||||
#define DNA_FREESTYLE_TYPES_H
|
||||
|
||||
#include "DNA_listBase.h"
|
||||
|
||||
typedef struct FreestyleModuleConfig {
|
||||
struct FreestyleModuleConfig *next, *prev;
|
||||
|
||||
char module_path[256];
|
||||
short is_displayed;
|
||||
short pad[3];
|
||||
|
||||
} FreestyleModuleConfig;
|
||||
|
||||
typedef struct FreestyleConfig {
|
||||
ListBase modules;
|
||||
|
||||
int flags;
|
||||
float sphere_radius;
|
||||
float dkr_epsilon;
|
||||
int pad;
|
||||
|
||||
} FreestyleConfig;
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
@ -37,6 +37,7 @@ extern "C" {
|
||||
#include "DNA_vec_types.h"
|
||||
#include "DNA_listBase.h"
|
||||
#include "DNA_ID.h"
|
||||
#include "DNA_freestyle_types.h"
|
||||
|
||||
struct Object;
|
||||
struct World;
|
||||
@ -128,6 +129,9 @@ typedef struct SceneRenderLayer {
|
||||
|
||||
int passflag; /* pass_xor has to be after passflag */
|
||||
int pass_xor;
|
||||
|
||||
struct FreestyleConfig freestyleConfig;
|
||||
|
||||
} SceneRenderLayer;
|
||||
|
||||
/* srl->layflag */
|
||||
@ -137,6 +141,7 @@ typedef struct SceneRenderLayer {
|
||||
#define SCE_LAY_EDGE 8
|
||||
#define SCE_LAY_SKY 16
|
||||
#define SCE_LAY_STRAND 32
|
||||
#define SCE_LAY_FRS 64
|
||||
/* flags between 32 and 0x8000 are set to 1 already, for future options */
|
||||
|
||||
#define SCE_LAY_ALL_Z 0x8000
|
||||
@ -727,6 +732,11 @@ typedef struct Scene {
|
||||
|
||||
/* Grease Pencil */
|
||||
struct bGPdata *gpd;
|
||||
|
||||
/* Freestyle */
|
||||
short freestyle_current_layer_number;
|
||||
short pad[3];
|
||||
|
||||
} Scene;
|
||||
|
||||
|
||||
@ -770,6 +780,7 @@ typedef struct Scene {
|
||||
#define R_NO_OVERWRITE 0x400000 /* skip existing files */
|
||||
#define R_TOUCH 0x800000 /* touch files before rendering */
|
||||
#define R_SIMPLIFY 0x1000000
|
||||
#define R_EDGE_FRS 0x2000000 /* R_EDGE for Freestyle */
|
||||
|
||||
/* displaymode */
|
||||
|
||||
|
@ -133,6 +133,7 @@ char *includefiles[] = {
|
||||
"DNA_anim_types.h",
|
||||
"DNA_boid_types.h",
|
||||
"DNA_smoke_types.h",
|
||||
"DNA_freestyle_types.h",
|
||||
|
||||
// empty string to indicate end of includefiles
|
||||
""
|
||||
@ -1159,4 +1160,5 @@ int main(int argc, char ** argv)
|
||||
#include "DNA_anim_types.h"
|
||||
#include "DNA_boid_types.h"
|
||||
#include "DNA_smoke_types.h"
|
||||
#include "DNA_freestyle_types.h"
|
||||
/* end of list */
|
||||
|
@ -262,6 +262,8 @@ void WM_read_file(bContext *C, char *name, ReportList *reports)
|
||||
writeBlog();
|
||||
}
|
||||
|
||||
FRS_initialize(C);
|
||||
|
||||
// XXX undo_editmode_clear();
|
||||
BKE_reset_undo();
|
||||
BKE_write_undo(C, "original"); /* save current state */
|
||||
@ -321,6 +323,8 @@ int WM_read_homefile(bContext *C, wmOperator *op)
|
||||
strcpy(G.sce, scestr); /* restore */
|
||||
|
||||
wm_init_userdef();
|
||||
FRS_initialize(C);
|
||||
|
||||
|
||||
/* When loading factory settings, the reset solid OpenGL lights need to be applied. */
|
||||
GPU_default_lights();
|
||||
|
@ -821,6 +821,7 @@ int main(int argc, char **argv)
|
||||
|
||||
if (G.background) {
|
||||
int retval = BKE_read_file(C, argv[a], NULL, NULL);
|
||||
FRS_initialize(C);
|
||||
|
||||
/*we successfully loaded a blend file, get sure that
|
||||
pointcache works */
|
||||
|
Loading…
Reference in New Issue
Block a user