Jump to content

SpiderPig

Members
  • Posts

    2,411
  • Joined

  • Last visited

Posts posted by SpiderPig

  1. I think for Meshes there needs to be something like this

    vector<Vertex> vertices;
    vector<Indice> indices;
    
    vertices.resize(10000);
    indices.resize(5000);
    
    //Build mesh
    
    my_mesh->SetVertices(vertices);
    my_mesh->SetIndices(indices);

     

    I've built some terrains and some very deep octree visualizations using the Mesh class and I know AddVertex() and AddPrimitive() take a very long time if you call a lot of them.  Indexing the vertex and indices arrays brought creating them down to a bearably time frame.

  2. 10 minutes ago, Josh said:

    1, 2. Use Widget::SetShape() instead of SetPosition and SetSize().
    3. Mouseposition Z is the wheel position.
    4. Z is the distance in front of the camera
    5. iVec3 is an integer vector, and should not be multiplied by a float, only an integer.
    6. Just call ATan() with two parameters. GLSL does it the same way.
    7. Entity->Listen(). No listener class. :)
    8. Model::SetHidden(true). 
    9. Entity::SetValue...try SetField()
    10. String::Length() not Len().
    11. You don't need to call Mesh::Finalize() anymore, it will be done automatically when you modify a mesh, before the world render.

    1. I like SetShape() - but most of the time I find myself needing to set the position OR the size.  Rarely I find myself needing to do both unless I'm creating the widget.  With SetShape() I'd first have to retrieve the position or size and set it to what it already is just to satisfy the function.  Too much typing! :P

    2.  How does Entity::Listen() work?  Do we call it on Camera setup for example?  my_camera->Listen()?

    3.  SetHidden(true).  Too many letters to type :P  Show() and Hide() are just easier and instantly makes sense when you read them.

    4.  String::length() with a lower case exists.  Is that intentional?

  3. 2 minutes ago, Josh said:

    1. The Mesh::vertices member is read-only by design. Use the mesh commands to modify the mesh.
    2. Why would ListDisplays() be redundant?
    3. There is no Canvas class.
    4. CreateInterface(shared_ptr<World> world, shared_ptr<Font> font, const iVec2& size)

    1.  Adding vertices and primitives one at a time is slow for large meshes (if nothings changed under the hood since the Steam BETA)  I'm talking terrain chunks that could be 500k to 1 million vertices strong.  Resizing the vector once is faster than 1million resizes.

    2.  It says it is undefined...

    3. Is it just the Interface class then?

    9 minutes ago, Josh said:

    The non-critical errors might just be because intellisense hasn't finished updating.

    Maybe... they are in fresh project with only main.cpp open.  The build succeeds... but there's 97 errors (debug and release).  I'll list the source files if you need me too.

  4. For my large project I have found a few things -

     

    I have this error being shown once compiled yet it still seems to run.

    ExternCError.png.e10f38db7a07bb2d9d35de9aaf039f95.png

    Widget::SetPosition() missing

    Widget::SetSize() missing

    Widget::Hide() and Show() is inaccessible

    Window::GetMousePosition returns an iVec3 but SetMousePosition only takes an iVec2 or two integers

    Camera->UnProject() still takes a Vec3 for mouse position.

    no * operator for iVec3 multiplied by a  float

    ATan2() missing?

    Listener class missing?

    Model::Hide() missing

    Entity::SetValue() missing

    String::Len() missing

    Mesh::Finalize() inaccessible

    Mesh::vertices.resize(my_vertex_count);  Won't let me resize the vertex or indices of a mesh anymore.  I like to resize the array then use indexing to place them.  Faster on large meshes.  Or push_back().

    Is ListDisplays() redundant?

    Is the "Canvas" class redundant?

    CreateInterface() is declared thusly;  3rd parameter is for something?

    friend shared_ptr<Interface> CreateInterface(shared_ptr<World> world, shared_ptr<Framebuffer>, const float);

     

     

     

  5. Just burnt my first bluray with 12GB of data for my project!  It made my wonder what methods others might use to save their work, if there is something better than a collection of blurays every few months or weather you might use online services or perhaps you've never thought about it?  Just curious... :)

  6. So I got it working to a degree... I can use commands from Ultra via the DLL but some things like you say rely on hidden globals.  I'm guessing one of those things is creating a model box?   Could these globals be passed to the DLL?  Anyway I've uploaded the project if you wanted to take a look.  You have to compile the DLL in rExport mode first then you comment / uncomment USE_PLUGIN to test the exported plugin or create it.  You probably have to change the path to include ultra too...

    EaseFunctions.zip

  7. I have the PluginSDK compiling and my own plugin loading in a program and a I'm able to get the description I've set.  I know how to export functions into the DLL but I want to be sure I'm doing this right.  How do I then get those functions into the program using the plugin?  Don't I need to include a header file that declares those functions and imports them from the DLL?

×
×
  • Create New...