Josh Posted February 7 Author Share Posted February 7 0.9.9 Added some menu icons and more tool tips. Full update. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted February 8 Author Share Posted February 8 0.9.9 Added initial implementation of screenshot tool. Added screenshot publishing (Steam only) Added Publish Video tool (Steam only) 2 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted February 11 Author Share Posted February 11 0.9.9 This update adds the Tile class, which is used for 2D drawing. A new shader family is required. This has not been tested with render-to-texture (it will probably draw upside down) or complex multiple camera setups. Example: #include "UltraEngine.h" using namespace UltraEngine; int main(int argc, const char* argv[]) { auto displays = GetDisplays(); auto window = CreateWindow("", 0, 0, 1280, 720, displays[0], WINDOW_CENTER | WINDOW_TITLEBAR); auto framebuffer = CreateFramebuffer(window); auto world = CreateWorld(); //Create a camera auto camera = CreateCamera(world); camera->SetClearColor(0.125); camera->SetLighting(false); auto rect = CreateTile(camera, 100, 100, false); rect->SetColor(0, 1, 1, 1); auto mtl = CreateMaterial(); mtl->SetTransparent(true); mtl->SetTexture(LoadTexture("Materials/Decals/default.dds")); rect->SetMaterial(mtl); rect->SetColor(0, 1, 1, 1); rect->SetPosition(1, 1); auto font = LoadFont("Fonts/arial.ttf"); auto rect2 = CreateTile(camera, font, 24, "Hello, how are you today?\nI am feeling good\n2D is cool", TEXT_CENTER | TEXT_MIDDLE, 1.5); while (window->Closed() == false and window->KeyHit(KEY_ESCAPE) == false) { auto pos = window->GetMousePosition(); rect2->SetPosition(pos.x, pos.y); rect2->SetRotation(Millisecs() / 100.0f); rect2->SetClipRegion(100, 100, framebuffer->size.x - 200, framebuffer->size.y - 200); world->Update(); world->Render(framebuffer); } return 0; } 1 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted February 11 Author Share Posted February 11 0.9.9 GUI system now can be created on a camera instead of on a world, for 3D rendering., and will use the new 2D drawing system. Some wireframe boxes are one pixel off and still need adjustment. Here is an example that shows a GUI automatically resizing when the window is recreated. #include "UltraEngine.h" using namespace UltraEngine; int main(int argc, const char* argv[]) { //Get the displays auto displays = GetDisplays(); //Create window auto window = CreateWindow("Ultra Engine", 0, 0, 1280, 720, displays[0]); //Create framebuffer auto framebuffer = CreateFramebuffer(window); //Create world auto world = CreateWorld(); //Create main camera auto camera = CreateCamera(world); camera->SetPosition(0, 0, -3); camera->SetClearColor(0, 0, 1); //Create a model auto box = CreateBox(world); //Create a light auto light = CreateBoxLight(world); light->SetRange(-5, 5); light->SetRotation(34, 45, 0); //Load a font auto font = LoadFont("Fonts/arial.ttf"); //Create user interface with a semi-transparent background shared_ptr<Interface> ui; ui = CreateInterface(camera, font, framebuffer->size); ui->background->SetColor(0, 0, 0, 0.5); //Create widget auto sz = ui->root->ClientSize(); auto treeview = CreateTreeView(10, 10, sz.x - 20, sz.y - 20, ui->root, TREEVIEW_DRAGANDDROP | TREEVIEW_DRAGINSERT); treeview->SetLayout(1, 1, 1, 1); auto node = treeview->root->AddNode("Node 1"); node->AddNode("Subnode 1"); node->AddNode("Subnode 2"); node->AddNode("Subnode 3"); node = treeview->root->AddNode("Node 2"); node->AddNode("Subnode 1"); node->AddNode("Subnode 2"); node->AddNode("Subnode 3"); node = treeview->root->AddNode("Node 3"); node->AddNode("Subnode 1"); node->AddNode("Subnode 2"); node->AddNode("Subnode 3"); while (true) { if (window->KeyHit(KEY_SPACE)) { window = CreateWindow("Ultra Engine", 0, 0, 800, 600, displays[0]); framebuffer = CreateFramebuffer(window); } if (window->KeyHit(KEY_ESCAPE)) break; box->Turn(0, 1, 0); while (PeekEvent()) { const Event ev = WaitEvent(); switch (ev.id) { case EVENT_WINDOWCLOSE: if (ev.source == window) { return 0; } break; default: if (ui) ui->ProcessEvent(ev); break; } } world->Update(); world->Render(framebuffer); } return 0; } 1 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted February 12 Author Share Posted February 12 0.9.9 3D GUI system is updated, should now be pixel-perfect, and working in combination with post effects and render-to-texture. A shader update is required. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted February 13 Author Share Posted February 13 0.9.9 Editor will now automatically insert C++ and header files into Visual Studio projects when a new component is added in the editor. This feature can be disabled in Options > General > Modify Visual Studio files. The vcxproj and vcxproj.filters flles get backed up in the project's /Backup folder before they are modified. The ComponentSystem.h header does not yet get updated automatically. Tomorrow? 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted February 13 Author Share Posted February 13 0.9.9 If the above setting is enabled, then the ComponentSystem.h file will get automatically generated any time a new header file is added. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted February 13 Author Share Posted February 13 0.9.9 Added File > Open Code Editor menu item. Added new toolbar button group. At this point, all the features I want in the full release are implemented. Now I will switch over to fixing bugs and writing documentation. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted February 13 Author Share Posted February 13 0.9.9 Replaced the selection overlay and label in the editor viewports with 2D tiles. This simplified some of my complicated multi-camera code, and as a bonus it eliminated a grid rendering bug I only saw on AMD cards. A shader update is required. Added texture anisotropy setting in Tools > Options. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted February 14 Author Share Posted February 14 0.9.9 Vertex and face editing tools are updated to work with the new 2D drawing system. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted February 14 Author Share Posted February 14 0.9.9 Updated with some UI fixes. Added World::GetPaused() 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted Friday at 10:13 PM Author Share Posted Friday at 10:13 PM 0.9.9 Fixed render screenshot tool not working. Fixed selection size labesl not visible. Fixed cut tool indicator not visible. Fixed drag-to-select indicator not visible. 1 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted Sunday at 12:39 AM Author Share Posted Sunday at 12:39 AM 0.9.9 Added "Save as Model" menu item in scene browser right-click menu. Right click on any node and select "Save as Model". All selected objects will be saved. If there is no single top-level model, a new one will be created, positioned at the center bottom of the selected objects. 2 1 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted Sunday at 06:49 PM Author Share Posted Sunday at 06:49 PM 0.9.9 Some improvements were made for support of non-latin alphabets in Lua. Double-clicking on a Lua file in the asset browser will now open VS code with the current project loaded. Added object icons to Create menu. Added ability to save to TEXTURE_ALPHA format. Added program log, found in C:/ProgramData/Ultra Engine/log.txt Added setting to flush log immediately after write (in General options) 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted Monday at 07:06 PM Author Share Posted Monday at 07:06 PM 0.9.9 Improved handling if 2d.fam is missing. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted Monday at 10:03 PM Author Share Posted Monday at 10:03 PM 0.9.9 Revised the way post-processing effects work internally, as there were some problems in the previous two builds. Fixed a bug when the world settings window closing would not activate the main window. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted Tuesday at 04:02 PM Author Share Posted Tuesday at 04:02 PM 0.9.9 Added Camera::EnablePostEffect(int index) and Camera::DisablePostEffect(). The return type of CreateMenu will now be cast to a Widget, making it more consistent with the rest of the API. If you need to cast it to a menu, you can add ->As<Menu>() at the end of the CreateMenu() command. Lua binding of Camera::AddPostEffect will now return 1 for the first effect added instead of zero. Variious bug fixes. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted yesterday at 12:00 AM Author Share Posted yesterday at 12:00 AM 0.9.9 Many bug fixes. 1 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted yesterday at 05:11 PM Author Share Posted yesterday at 05:11 PM 0.9.9 New C++ projects will include the "Leadwerks.h" header and use an environment variable called "LEADWERKS" for the install path. Existing projects should still compile seamlessly. Program settings moved to C:/ProgramData/Leadwerks. Everything should go seamlessly. My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted 19 hours ago Author Share Posted 19 hours ago 0.9.9 Default shadow map size is now 512 x 512 for lights other than directional. World::SetShadowQuality temporarily disabled. Bug fixes. My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Josh Posted 2 hours ago Author Share Posted 2 hours ago 0.9.9 The PBR shader family now supports a separate opacity map, and the way decals blend is modified. Decals will only override color, normal, and AO/metal/roughness if the decal material has a texture in that slot. If it does not have a texture, it will not override the underlying color value. This allows you to do things like decals that change normals but do not affect the color, or only affect metal/roughness/occlusion. The material painting blending does not yet work this way, but I plan to revise that as well. 2 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
Recommended Posts