Menu

Get the GLHandle for a the Vertices VBO in TGLMeshObject.

Help
dyspd
2017-09-24
2017-09-24
  • dyspd

    dyspd - 2017-09-24

    Hi,

    I am looking to get the GLHandle for a VBO buffer object suitable for a call to clCreateFromGLBuffer in OpenCL.

    I realise that this is not in the interface of any class I have found so far that deals with VBOs, but cannot determine which private member of which class actually holds the GLHandle so I can hack the code to expose it for some performance testing of directly manipulating the mesh vertex points from OpenCL kernels.

    Peter

     
  • Jerome.D (BeanzMaster)

    Hi, Peter you can't gain acces to VBO directly but you can through TFGVertexIndexList (private property FIndex ) for verticeslist.

    Also with VBO for multi-texturing you must pass through a TextureEX

    see :*procedure TFGVertexIndexList.BuildList(var mrci: TGLRenderContextInfo); *

    In GLVectorFileObject.pas in private section of TGLMeshObject you can see

        FUseVBO: boolean;
        FVerticesVBO: TGLVBOHandle;
        FNormalsVBO: TGLVBOHandle;
        FColorsVBO: TGLVBOHandle;
        FTexCoordsVBO: array of TGLVBOHandle;
        FLightmapTexCoordsVBO: TGLVBOHandle;
        FValidBuffers: TVBOBuffers;
    

    You can also take a look to the demos in Examples\SceneObjects\cube\

    For doing what you want i think the best it will create Own Object derived from GLMeshObject (like your GLFreeFormRevolution ) or the other solution it will to create public properties in GLMeshObject

    Just little question Have you resolved the bug with the TabControl and TGLSceneViewer under Linux ?

    Jérôme

     

    Last edit: Jerome.D (BeanzMaster) 2017-09-27
  • dyspd

    dyspd - 2017-09-28

    Hi Jérôme,

    Thanks for the info, may try that at some time in the near future, but as I have gained acceptable performance through sparse array and and multi-threading it may go on the back burner for a while, until my list of vertices grows much larger. (brute force was ~ 8 sec - now less than a second for twice the work). The work unit is quite small and am now memory bandwidth limited on 8 cpu cores, so this probably means that GPU increase will only be in the order of 3-5 and only IF I can work out a decent partitioning algo for my problem that would work with GPU kernels.

    The bug with gtk2 linux seems worse than first described, I tried placing a TGLSceneViewer on a panel on a form and the scene was rendering to the form with a blank panel on top . I t would seem that the 'HDC' equivalent is not set/valid when the scene viewer is trying to store all the handles it requires. To be honest I am not very au fait with gtk2 internals and do not have a clue how to trace it down.

    Peter

     

    Last edit: dyspd 2017-09-28

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.