-
Posts
24,629 -
Joined
-
Last visited
Content Type
Blogs
Forums
Store
Gallery
Videos
Downloads
Everything posted by Josh
-
That button should not appear at all. Removing...
-
Back in the day, there was one version of Leadwerks that appeared on MacOS. Because Ultra uses our own GUI (seen in UAK) Ultra is in a much better position for Mac support. I ran an earlier build of it on a Mac and MoltenVK worked perfectly. However, multiplatform support takes an enormous amount of time to make builds for. It takes about half a day to compile and update Windows, Linux, and Mac. Since updates are coming almost every day right now, it makes sense to focus on Windows until a final version is established, and then expand to multiplatform.
-
Sorry about that. 0.9.3 will go onto the stable branch in a week, and at the point some people may wish to switch off the beta.
-
Full update with lots of fixes. See bug reports forum for recent changes.
-
Update is coming.
-
Already fixed.
-
Undo / redo seems to be working fine for me, on beta branch
-
Does this adequately answer your question?
-
use_count() in smart_ptr<Window> increments with each input event
Josh replied to Lupin's topic in Bug Reports
Okay, here is a working example that proves the window and framebuffer reference counting are working correctly. Note you must call PeekEvent / WaitEvent or FlushEvents to clear the event queue each frame. It is also necessary to call World::Render if you create a framebuffer, because otherwise the rendering command buffer never gets cleared and it keeps the old framebuffer in memory. #include "UltraEngine.h" using namespace UltraEngine; int main(int argc, const char* argv[]) { int n = 0; //Get the displays auto displays = GetDisplays(); //Create a window auto window = CreateWindow(String(n), 0, 0, 800, 600, displays[0], WINDOW_TITLEBAR); //Create a framebuffer auto framebuffer = CreateFramebuffer(window); auto world = CreateWorld(); auto camera = CreateCamera(world); //Main loop while (window->Closed() == false and window->KeyDown(KEY_ESCAPE) == false) { while (PeekEvent()) WaitEvent(); if (window->KeyDown(KEY_SPACE)) { ++n; int count = window.use_count(); window = CreateWindow(String(n), window->position.x + 50, window->position.y + 50, window->size.x, window->size.y, window->display, window->style); framebuffer = CreateFramebuffer(window); } world->Update(); world->Render(framebuffer); } return 0; } -
use_count() in smart_ptr<Window> increments with each input event
Josh replied to Lupin's topic in Bug Reports
@Lupin In your example above the window gets sent to the rendering thread, which will keep it in memory until a different window is sent to replace it. This example is a variation of @Dreikblack and it shows that the last window is somehow remaining in memory. It always keeps two windows open, but removes the earlier one when I create a new one: #include "UltraEngine.h" using namespace UltraEngine; int main(int argc, const char* argv[]) { int n = 0; //Get the displays auto displays = GetDisplays(); //Create a window auto window = CreateWindow(String(n), 0, 0, 800, 600, displays[0], WINDOW_TITLEBAR); //Create a world auto world = CreateWorld(); //Create a framebuffer auto framebuffer = CreateFramebuffer(window); //Create a camera auto camera = CreateCamera(world); camera->SetClearColor(0.125); //Main loop while (window->Closed() == false and window->KeyDown(KEY_ESCAPE) == false) { if (window->KeyDown(KEY_E)) { FlushEvents(); ++n; window = CreateWindow(String(n), window->position.x + 50, window->position.y + 50, window->size.x, window->size.y, window->display, window->style); framebuffer = CreateFramebuffer(window); } //window->SetText(WString(window.use_count())); world->Update(); world->Render(framebuffer); } return 0; } -
use_count() in smart_ptr<Window> increments with each input event
Josh replied to Lupin's topic in Bug Reports
The simplest case seems to work correctly: #include "UltraEngine.h" using namespace UltraEngine; int main(int argc, const char* argv[]) { //Get the displays auto displays = GetDisplays(); //Create a window auto window = CreateWindow("Ultra Engine", 0, 0, 1280, 720, displays[0], WINDOW_CENTER | WINDOW_TITLEBAR); Print(uint64_t(window.use_count())); FlushEvents(); Print(uint64_t(window.use_count())); return 0; } Prints: 3 1 -
Okay, great. Thanks to your detailed instructions I was able to identify the issue and solve it pretty easily. The change I made to the multselect treeview automatically fixed the renaming issue, and the other was easy to fix.
-
String field in custom component does not save new value in editor.
Josh replied to Dreikblack's topic in Bug Reports
Fixed. -
Component is not shown correctly with double nesting
Josh replied to Dreikblack's topic in Bug Reports
I fixed it so sub-sub-folders won't get loaded. -
Quake code for light flicker options: https://github.com/id-Software/Quake/blob/bf4ac424ce754894ac8f1dae6a3981954bc9852d/qw-qc/world.qc#L338
-
I think this is fixed. Update will be in the next build that goes up. Also, cool looking props!
-
Okay, I added some logic in RealPath that gets rid of double-slashes and it seems to work now. Will be available in the next build that goes up.
-
Here are some resources to get ideas for general-purpose components we might want to make. https://developer.valvesoftware.com/wiki/List_of_entities https://quakewiki.org/wiki/Entity_guide https://minecraft.fandom.com/wiki/Entity#Types_of_entities
-
First, I recommend using the beta branch. This has improved object creation. If you are on that, open the drop-down menu that appears under the button on the left that says "Box" and you can select the terrain to create.
-
I did. My game's directory, including the game folder, is C:\New Project
-
Yes, navmeshes update automatically on a separate thread.
-
Based on our discussion during this week's call, I think we are going to look more at Valve games and their entities / components, as they seem to be more abstract and reusable than the way Unity does things. Minecraft and Roblox might also be worth looking into. I think some of that stuff is also very I/O like Leadwerks and Ultra are. I have no objection to including some ideas inspired by Unity, but I think Valve's games provide a very comprehensive base layer of functionality.