Jump to content

codeape

Members
  • Posts

    183
  • Joined

  • Last visited

Everything posted by codeape

  1. Also this lock free c++ queue could probably come in handy for Leadwerks (BSD license): http://moodycamel.com/blog/2014/a-fast-general-purpose-lock-free-queue-for-c++
  2. Looking forward to Leadwerks 5 ... some questions though: 1. Can you use Leadwerks GUI in your game or will it only be for the editor? 2. Will Windows, Linux, and Mac support be released at the same time? Thanks for the update
  3. So I think you could take a look at https://github.com/igagis/svgren it uses https://github.com/igagis/svgdom to create a SVG document object model and render it with cairo. Maybe you could use only the object model and do the rest directly in leadwerks. Maybe SVG++ could maybe be of help http://svgpp.org/.
  4. We also support Blender by doing this ... that is nice. I am in the same spot. I need to get more hours in to Blender.
  5. Pretty good and inexpensive Blender introduction video tutorial series (51 episodes): http://store.steampowered.com/app/373020/ Section 1 - Understanding the Interface. Chapter 01 - First encounters 5 mins Chapter 02 - Navigation 6 mins Chapter 03 - Layout Customizing 8 mins Chapter 04 - User Preference Changes 6 mins (Autodepth, Autoperspective, Addon - Layers, VBO’s.) Section 2 - 3D View. Chapter 01 - Menus, Modes and Display. 5 mins Chapter 02 - Pivot Point and 3d Manipulator 8 mins Chapter 03 - Layers and Snapping 7 mins Section 3 - Modeling Chapter 01 - Mesh Data, Object Data 7 mins Chapter 02 - Object Tools 7 mins Chapter 03 - Mesh Tools - Extrude 2 mins Chapter 04 - Mesh Tools - Bevel 1 min Chapter 05 - Mesh Tools - Subdivide 2 mins Chapter 06 - Mesh Tools - Working With Loops. 5 mins Chapter 07 - Mesh Tools - Vertex Connect 2 mins Chapter 08 - Mesh Tools - Inset. 2 mins Chapter 09 - Mesh Tools - Merging 2 mins Chapter 10 - Mesh Tools - Knife Tool 2 mins Section 4 - Modeling A Game Asset Chapter 01 - Ref Images & Traffic Cone Blockout 10 mins Chapter 02 - Traffic Cone Modeling 8 mins Chapter 03 - Normal Editing - Smooth/Hard Edges 5 mins Chapter 04 - High Res Traffic Cone 5 mins Chapter 05 - Camera Modeling 15 mins Chapter 06 - Modeling With Curves 7 mins Chapter 07 - Camera Modeling Finish 2 mins Chapter 08 - Removing NGons 4 mins Chapter 09 - Hi Res Lens And Ribbed Cable 6 mins Chapter 10 - Organizing And Naming Objects 3 mins Section 5 - UV’s. Chapter 01 - UV’s Overview 12 mins Chapter 02 - Mirror Modifier 5 mins Chapter 03 - UV Unwrapping The Base 7 mins Chapter 04 - UV Unwrapping The Cable 10 mins Chapter 05 - UV Unwrapping The Cone 9 mins Chapter 06 - UV Final Layout 8 mins Section 6 - Baking Chapter 01 - Baking Setup And Creating Images 4 mins Chapter 02 - Baking Ambient Occlusion 10 mins Chapter 03 - Baking Normal Maps 9 mins Chapter 04 - Creating The Base Color Materials 5 mins Chapter 05 - Baking The Base Color 2 mins Chapter 06 - Setting Up A Complete Material 3 mins Chapter 07 - Cord Baking And Multiple UV Sets 9 mins Chapter 08 - Baking The Camera Lens 7 mins Section 7 - 3D Painting Chapter 01 - 3D Painting Setup 6 mins Chapter 02 - Painting A Vertical Gradient 6 mins Chapter 03 - Multi Layered Painting 18 mins Chapter 04 - Worn Edges With Cavity Masking 13 mins Chapter 05 - Baking All Layers Down To 1. 7 mins Section 8 - Importing And Exporting Chapter 01 - Importing A TF2 Character 3 mins Chapter 02 - Rigging And Placing The Asset 2 mins Chapter 03 - LOD Creation 6 mins Chapter 04 - Exporting As OBJ 1 min Chapter 05 - Importing Into Team Fortress 2. 5 mins
  6. Josh, should I post this to the Bug forum? Thanks for the help by the way
  7. Sorry for the late answer but I have been busy with my kids I can confirm that window->takeownership work. I have changed my code to this and I can now create a new window and get the old window destroyed: if (window->KeyHit(Key::R)) { window->takeownership = true; if (window->style == Leadwerks::Window::FullScreen) { System::Print("Go Resizable"); window->Release(); window = Leadwerks::Window::Create("test", 0, 0, 1024, 768, Leadwerks::Window::Resizable); } else { System::Print("Go FullScreen"); window->Release(); window = Leadwerks::Window::Create("test", 0, 0, 1920, 1200, Leadwerks::Window::FullScreen); } //Create a context context = Context::Create(window); window->HideMouse(); window->SetMousePosition(context->GetWidth()/2,context->GetHeight()/2); } Thanks
  8. I want to be able to toggle between diffren windows styles (FullScreen and Resizable). For all examples I have created I have used a new project and only added the if (window->KeyHit(Key::R)) block and I create the window in App::Start() with Leadwerks::Window::Create("test", 0, 0, 1024, 768, Leadwerks::Window::Resizable); Example one. I can toggle from windowed mode to full screen mode but not back to windowed mode with this code: bool App::Loop() { //Close the window to end the program if (window->Closed()) return false; //Press escape to end freelook mode if (window->KeyHit(Key::Escape)) { if (!freelookmode) return false; freelookmode=false; window->ShowMouse(); } if (freelookmode) { //Keyboard movement float strafe = (window->KeyDown(Key:) - window->KeyDown(Key::A))*Leadwerks::Time::GetSpeed() * 0.05; float move = (window->KeyDown(Key::W) - window->KeyDown(Key::S))*Leadwerks::Time::GetSpeed() * 0.05; camera->Move(strafe,0,move); //Get the mouse movement float sx = context->GetWidth()/2; float sy = context->GetHeight()/2; Vec3 mouseposition = window->GetMousePosition(); float dx = mouseposition.x - sx; float dy = mouseposition.y - sy; //Adjust and set the camera rotation camerarotation.x += dy / 10.0; camerarotation.y += dx / 10.0; camera->SetRotation(camerarotation); //Move the mouse to the center of the screen window->SetMousePosition(sx,sy); } if (window->KeyHit(Key::R)) { if (window->style == Leadwerks::Window::FullScreen) { System::Print("Go Resizable"); window->Release(); window = Leadwerks::Window::Create("test", 0, 0, 800, 600, Leadwerks::Window::Resizable); } else { System::Print("Go FullScreen"); window->Release(); window = Leadwerks::Window::Create("test", 0, 0, 1920, 1200, Leadwerks::Window::FullScreen); } //Create a context context = Context::Create(window); window->HideMouse(); window->SetMousePosition(context->GetWidth()/2,context->GetHeight()/2); } Leadwerks::Time::Update(); world->Update(); world->Render(); context->Sync(false); return true; } So when I hit R i get in to full screen but when I hit R again I do not get back to windowed mode. When I hit ESC twice I get back my desktop by exiting the application. Example 2. So to test what happens behind the sceens I changed the if (window->KeyHit(Key::R)) block to this: if (window->KeyHit(Key::R)) { if (window->style == Leadwerks::Window::Titlebar) { System::Print("Go Resizable"); window->Release(); window = Leadwerks::Window::Create("test", 0, 0, 1024, 768, Leadwerks::Window::Resizable); } else { System::Print("Go other size"); window->Release(); window = Leadwerks::Window::Create("test", 0, 0, 800, 600, Leadwerks::Window::Titlebar); } //Create a context context = Context::Create(window); window->HideMouse(); window->SetMousePosition(context->GetWidth()/2,context->GetHeight()/2); } Everytime I hit R I get a new window but the old window is not removed (so I get a large amount os windows). What am I doing wrong? or is this a bug?
  9. I notice that the class uses XSetStandardProperties but that one has been superseded by XSetWMProperties.
  10. I think this article show the differences of OpenGL and Vulcan quite well: http://www.phoronix.com/scan.php?page=article&item=khronos-vulcan-spirv&num=1 There is already a nice Vulcan debug tool in the works called GLAVE: http://www.phoronix.com/image-viewer.php?id=khronos-vulcan-spirvℑ=vulkan_announce_2_lrg
  11. So I really like Leadwerks. However, I see that a lot of problems tracked back to GTK and capabilities of different UI toolkits. So why not doing things the Blender way? Create your own OpenGL UI toolkit with a event system and/or a message system and create an editor that uses the same UI toolkit for all platforms. OK, I am not stupid ... this is not a small thing and maybe not the most fun thing to do. However it could be a long time goal and a nice evolution of Leadwerks. There are many pros: + Same UI code for all platforms. + The UI could be used by both the editor and in the games we make with Leadwerks. + You will be using your own UI that you have 100% control over. + UI is a feature people want + No more OS dependent UI bugs. The con: - More things to do. - It will take a loooooooooooooong time to accomplish.
  12. Freetype-gl uses SDF: https://github.com/rougier/freetype-gl The result look good.
  13. Ok this is pretty cool. I sugested that Limit Theory (a awesomely looking and upcoming space game) to implement SDF: http://forums.ltheory.com/viewtopic.php?f=6&t=2137&p=28611&hilit=sdf#p28611 After a couple of months he did it! With better font render quality and performance than the old solution (through SFML): http://forums.ltheory.com/viewtopic.php?f=12&t=3875&p=75231&hilit=sdf#p75231 Here is the result (30:01 in to the dev video ... the link point to that part of the video ): I think you should do what he did. Implement SDF your self and do not use third party stuff.
  14. You are starting to get good at this YouGroove!
  15. Indeed, the distance from Stockholm to Seattle is sadly 7587 km. Hmmm need to make a game so I can afford the trip
  16. Very nice indeed. Thank you for all the help guys
  17. Thnx, got it. Another question about reference counting. If I do like this: class A { ... Shader aShader1 = Shader::Load("shaders/my.shader") ... } ... class B { ... Shader sameShade = Shader::Load("shaders/my.shader") ... } Will this result in a ref count of 2 for the same instace of a Shader instance using "shaders/my.shader" or will this result in 2 instances of Shader with a refcount of 1 each. I can not find any info about that in the doc. Thank you again.
  18. Yes of course ... but I am a tidy person
  19. If I do not do shader->Release() but have done shader->AddRef(), wouldn't I get a memory leak? Isn't the point that when shader->Release() make the ref count go to 0 the Leadwerks::Object sub-class freed? Have I misunderstood Leadwerks ref count completely?
  20. I understand the concept of reference counting and I have read this: http://www.leadwerks.com/werkspace/page/documentation/_/user-guide/getting-started/reference-counting-r613 As I understand it I can get the total amount of references to a Leadwerks::Object sub-class instance by doing this (C++): shader = material->GetShader(); int count = shader->GetRefCount() My question is if it is possible to get the total amount of references for all instances of Leadwerks::Object and sub-classes. I want to print it right before I exit my game so that I know that all my resources has been released (avoid memory leaks). Thanks for any help in advance.
  21. Hello, This is not a suggestion on a new feature directly. I suggest you read this paper and see if it could be of any use for Leadwerks: http://www.cse.chalmers.se/~olaolss/get_file.php?filename=papers/clustered_with_shadows.pdf Here is a page with some slides about the paper too: http://www.cse.chalmers.se/~olaolss/main_frame.php?contents=publication&id=clustered_with_shadows I have not read it in detail but it looks like a good optimization that could work with deferred rendering. I hope It can be of help.
×
×
  • Create New...