added helpers for instance duplication;

basic font update
This commit is contained in:
turanszkij
2016-09-19 23:56:23 +02:00
parent f9da039e14
commit 45b3f7d8a6
6 changed files with 62 additions and 22 deletions
Binary file not shown.
+1
View File
@@ -91,3 +91,4 @@
61 4 9 25
94 5 9 25
126 6 9 25
42 9 9 25
+49 -17
View File
@@ -4213,23 +4213,8 @@ void wiRenderer::AddModel(Model* model)
Update();
if (spTree) {
spTree->AddObjects(spTree->root, vector<Cullable*>(model->objects.begin(), model->objects.end()));
}
else
{
GenerateSPTree(spTree, vector<Cullable*>(model->objects.begin(), model->objects.end()), SPTREE_GENERATE_OCTREE);
}
if (spTree_lights) {
spTree_lights->AddObjects(spTree_lights->root, vector<Cullable*>(model->lights.begin(), model->lights.end()));
}
else
{
GenerateSPTree(spTree_lights, vector<Cullable*>(model->lights.begin(), model->lights.end()), SPTREE_GENERATE_OCTREE);
}
Add(model->objects);
Add(model->lights);
//UpdateRenderData(nullptr);
@@ -4239,6 +4224,53 @@ void wiRenderer::AddModel(Model* model)
GetDevice()->UNLOCK();
}
void wiRenderer::Add(Object* value)
{
list<Object*> collection(0);
collection.push_back(value);
Add(collection);
}
void wiRenderer::Add(Light* value)
{
list<Light*> collection(0);
collection.push_back(value);
Add(collection);
}
void wiRenderer::Add(const list<Object*>& objects)
{
for (Object* x : objects)
{
if (x->parent == nullptr)
{
GetScene().GetWorldNode()->Add(x);
}
}
if (spTree) {
spTree->AddObjects(spTree->root, vector<Cullable*>(objects.begin(), objects.end()));
}
else
{
GenerateSPTree(spTree, vector<Cullable*>(objects.begin(), objects.end()), SPTREE_GENERATE_OCTREE);
}
}
void wiRenderer::Add(const list<Light*>& lights)
{
for (Light* x : lights)
{
if (x->parent == nullptr)
{
GetScene().GetWorldNode()->Add(x);
}
}
if (spTree_lights) {
spTree_lights->AddObjects(spTree_lights->root, vector<Cullable*>(lights.begin(), lights.end()));
}
else
{
GenerateSPTree(spTree_lights, vector<Cullable*>(lights.begin(), lights.end()), SPTREE_GENERATE_OCTREE);
}
}
void wiRenderer::Remove(Object* value)
{
if (value != nullptr)
+7
View File
@@ -494,6 +494,13 @@ public:
// Add model to the scene
static void AddModel(Model* value);
// Add Object Instance
static void Add(Object* value);
static void Add(const list<Object*>& objects);
// Add Light Instance
static void Add(Light* value);
static void Add(const list<Light*>& lights);
// Remove from the scene
static void Remove(Object* value);
static void Remove(Light* value);
+1 -1
View File
@@ -7,7 +7,7 @@ namespace wiVersion
// minor features, major bug fixes
const int minor = 8;
// minor bug fixes, alterations, refactors
const int revision = 49;
const int revision = 50;
long GetVersion()
+4 -4
View File
@@ -1029,7 +1029,7 @@ void wiColorPicker::Render(wiGUI* gui)
GPUBufferDesc desc = { 0 };
desc.BindFlags = BIND_VERTEX_BUFFER;
desc.ByteWidth = vertices.size() * sizeof(Vertex);
desc.ByteWidth = (UINT)(vertices.size() * sizeof(Vertex));
desc.CPUAccessFlags = CPU_ACCESS_WRITE;
desc.MiscFlags = 0;
desc.StructureByteStride = 0;
@@ -1055,7 +1055,7 @@ void wiColorPicker::Render(wiGUI* gui)
GPUBufferDesc desc = { 0 };
desc.BindFlags = BIND_VERTEX_BUFFER;
desc.ByteWidth = vertices.size() * sizeof(Vertex);
desc.ByteWidth = (UINT)(vertices.size() * sizeof(Vertex));
desc.CPUAccessFlags = CPU_ACCESS_WRITE;
desc.MiscFlags = 0;
desc.StructureByteStride = 0;
@@ -1081,7 +1081,7 @@ void wiColorPicker::Render(wiGUI* gui)
GPUBufferDesc desc = { 0 };
desc.BindFlags = BIND_VERTEX_BUFFER;
desc.ByteWidth = vertices.size() * sizeof(Vertex);
desc.ByteWidth = (UINT)(vertices.size() * sizeof(Vertex));
desc.CPUAccessFlags = 0;
desc.MiscFlags = 0;
desc.StructureByteStride = 0;
@@ -1104,7 +1104,7 @@ void wiColorPicker::Render(wiGUI* gui)
GPUBufferDesc desc = { 0 };
desc.BindFlags = BIND_VERTEX_BUFFER;
desc.ByteWidth = vertices.size() * sizeof(Vertex);
desc.ByteWidth = (UINT)(vertices.size() * sizeof(Vertex));
desc.CPUAccessFlags = 0;
desc.MiscFlags = 0;
desc.StructureByteStride = 0;