❄️🎁⛄ The Winter Games Tournament is Live! 🎄🎅❄️
Jump to content

Josh

Staff
  • Posts

    26,801
  • Joined

  • Last visited

Profile Information

  • Location
    USA

Recent Profile Visitors

1,527,081 profile views

Josh's Achievements

Grand Master

Grand Master (14/14)

  • Well Followed
  • Dedicated
  • Conversation Starter
  • Reacting Well
  • Problem Solver

Recent Badges

17.2k

Reputation

1.2k

Community Answers

  1. @Vladimir Sabantsev I really appreciate your in-depth feedback. I am planning to fix all bugs that can be fixed right now (a few things depend on internal refactoring) before I proceed with a new deep dive into modifications to the renderer for 5.1. The plan is to move lighting shader code into a deferred step (as Leadwerks 4 does) which I think will probably provide better optimization for low-end hardware and simpler shader code.
  2. Carving a 32-sided cylinder out of another one, at a 90 degree angle...this may be as good as it gets. Every other CSG program I've ever seen has simi;ar issues when the geometry gets complex. The crash is fixed on the beta branch, so I will call this finished for now.
  3. 5.0.2 beta Several bugs fixed.
  4. 6 should work just fine. 1 is not very deep. Is it possible to upload your project so I can try it out? Maybe it is somehow going into an infinite loop, although I don't think that is possible?
  5. Set the debug levels to something like 6. 16 is very high and it might just be taking a long time to iterate through the stack.
  6. That's just the result of slicing objects to make multiple convex shapes. Brushes must be convex, so concave shapes are made out of multiple convex shapes.
  7. In the next build, tags will automatically get converted to lower-case.
  8. Will be fixed in tomorrow's update.
  9. Docs updated: https://github.com/Leadwerks/Documentation/blob/master/Lua/CreateInterface.md#remarks https://github.com/Leadwerks/Documentation/blob/master/Lua/CreateTile.md#remarks
  10. Okay, there's probably no bug but the documentation could use some extra explaination. You can create a tile or an Interface from both a single camera or a world. If it is created on a camera it will be drawn at the end of the camera render routine. If it is created on the world, it will just get drawn last, after all cameras have drawn. You had one object being created on a camera and one on the world, so it switched the drawing order around. Additionally, when you position a tile you can just provide two coordinates (x and y) unless you are using Z to sort the order. #include "Leadwerks.h" using namespace Leadwerks; int main(int argc, const char* argv[]) { //Get the displays auto displays = GetDisplays(); //Create a window auto window = CreateWindow("Leadwerks", 0, 0, 1280 * displays[0]->scale, 720 * displays[0]->scale, displays[0], WINDOW_TITLEBAR | WINDOW_CENTER); auto framebuffer = CreateFramebuffer(window); auto world = CreateWorld(); auto camera = CreateCamera(world); camera->SetClearColor(Vec4(0.125f, 0.125f, 0.125f, 1)); //Load a font auto font = LoadFont("Fonts/arial.ttf"); //Create user interface auto ui = CreateInterface(camera, font, framebuffer->size); ui->background->SetColor(0,0,0,0);// make background transparent //Create widget iVec2 sz = ui->background->ClientSize(); auto button = CreateButton("Button", sz.x / 2 - 75, sz.y / 2 - 15, 150, 30, ui->background); auto tile = CreateTile(camera, 100, 100); tile->SetColor(0, 1, 0); float x = framebuffer->size.x / 2 - tile->size.x / 2; float y = framebuffer->size.y / 2 - tile->size.y / 2; auto target = Vec2(x, y); while (!window->KeyDown(KEY_ESCAPE) && !window->Closed()) { while (PeekEvent()) { const Event event = WaitEvent(); switch (event.id) { case EVENT_KEYDOWN: if (event.data == KEY_RIGHT) { target.x = x + tile->size.x; } else if (event.data == KEY_LEFT) { target.x = x - tile->size.y; } else if (event.data == KEY_UP) { target.y = y - tile->size.y; } else if (event.data == KEY_DOWN) { target.y = y + tile->size.y; } break; default: ui->ProcessEvent(event); break; } } x = Mix(x, target.x, 0.05f); y = Mix(y, target.y, 0.05f); if (abs(x - target.x) < 0.1f) x = target.x; if (abs(y - target.y) < 0.1f) y = target.y; tile->SetPosition(x, y); world->Update(); world->Render(framebuffer, true); } return 0; }
  11. I right-clicked on each of these files, selected "Convert to DDS", and each one worked with no issues. What steps do I have to perform to make an error occur?
  12. Some more information: The GUI system uses tiles to draw, when used with a 3D framebuffer. The tile order starts at 10,000. Perhaps I accidentally reversed the sort order? I will test further and solve this...
  13. I was able to prevent the crash. This isn't perfect, because there are some gaps being created by the carve operation. However, thsi always happens with complex boolean operations, and it is much preferable to making the application crash. This will be included in the next build that goes up on the beta branch.
  14. Done, wait for the docs system to recache.
  15. It appears the breakpoint is hit but the information is not being received by the editor, so those menu items and buttons never get enabled. In Tools > Options > General, what is you debug level setting set to? Do you have antivirus software preventing the game or editor from accessing the network? This is how they communicate with each other. If you just set a breakpoint somewhere near the beginning of main.lua, does the debugger ever display in the script editor? Is it possible to upload this project so that I can test it?
×
×
  • Create New...