diff --git a/WickedEngine/fonts/basic.dds b/WickedEngine/fonts/basic.dds index c2c0c6bf7..1768e0030 100644 Binary files a/WickedEngine/fonts/basic.dds and b/WickedEngine/fonts/basic.dds differ diff --git a/WickedEngine/fonts/basic.wifont b/WickedEngine/fonts/basic.wifont index f5ae4d3f8..dac8c9db5 100644 --- a/WickedEngine/fonts/basic.wifont +++ b/WickedEngine/fonts/basic.wifont @@ -91,3 +91,4 @@ 61 4 9 25 94 5 9 25 126 6 9 25 +42 9 9 25 diff --git a/WickedEngine/wiRenderer.cpp b/WickedEngine/wiRenderer.cpp index 7223a85e2..2214eb95a 100644 --- a/WickedEngine/wiRenderer.cpp +++ b/WickedEngine/wiRenderer.cpp @@ -4213,23 +4213,8 @@ void wiRenderer::AddModel(Model* model) Update(); - if (spTree) { - spTree->AddObjects(spTree->root, vector(model->objects.begin(), model->objects.end())); - } - else - { - GenerateSPTree(spTree, vector(model->objects.begin(), model->objects.end()), SPTREE_GENERATE_OCTREE); - } - if (spTree_lights) { - spTree_lights->AddObjects(spTree_lights->root, vector(model->lights.begin(), model->lights.end())); - } - else - { - GenerateSPTree(spTree_lights, vector(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 collection(0); + collection.push_back(value); + Add(collection); +} +void wiRenderer::Add(Light* value) +{ + list collection(0); + collection.push_back(value); + Add(collection); +} +void wiRenderer::Add(const list& objects) +{ + for (Object* x : objects) + { + if (x->parent == nullptr) + { + GetScene().GetWorldNode()->Add(x); + } + } + if (spTree) { + spTree->AddObjects(spTree->root, vector(objects.begin(), objects.end())); + } + else + { + GenerateSPTree(spTree, vector(objects.begin(), objects.end()), SPTREE_GENERATE_OCTREE); + } +} +void wiRenderer::Add(const list& lights) +{ + for (Light* x : lights) + { + if (x->parent == nullptr) + { + GetScene().GetWorldNode()->Add(x); + } + } + if (spTree_lights) { + spTree_lights->AddObjects(spTree_lights->root, vector(lights.begin(), lights.end())); + } + else + { + GenerateSPTree(spTree_lights, vector(lights.begin(), lights.end()), SPTREE_GENERATE_OCTREE); + } +} + void wiRenderer::Remove(Object* value) { if (value != nullptr) diff --git a/WickedEngine/wiRenderer.h b/WickedEngine/wiRenderer.h index 38cc319bd..66c4b3d7a 100644 --- a/WickedEngine/wiRenderer.h +++ b/WickedEngine/wiRenderer.h @@ -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& objects); + // Add Light Instance + static void Add(Light* value); + static void Add(const list& lights); + // Remove from the scene static void Remove(Object* value); static void Remove(Light* value); diff --git a/WickedEngine/wiVersion.cpp b/WickedEngine/wiVersion.cpp index fa712ea5a..c950f47f7 100644 --- a/WickedEngine/wiVersion.cpp +++ b/WickedEngine/wiVersion.cpp @@ -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() diff --git a/WickedEngine/wiWidget.cpp b/WickedEngine/wiWidget.cpp index a8c868bfa..8da0ba2a4 100644 --- a/WickedEngine/wiWidget.cpp +++ b/WickedEngine/wiWidget.cpp @@ -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;