Visualizzazione dei risultati da 1 a 10 su 10

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Scusa, ma ho l'impressione che tu ti stia complicando la vita. Non è più semplice creare un vettore di puntatori a data, fare delle funzioni che riversino i dati dai vettori_pos, vettori_col, vettori_uv nei rispettivi campi data_pos, data_col, data_uv e poi passare il tutto all'API, come il codice che hai mostrato (tra l'altro leggermente errato)?
    In uscita avresti i dati formattati direttamente nei campi di ogni singola struttura data.

    Non che non si possa fare in modo alternativo, ma in tal caso devi considerare che, mettiamo, per 5 strutture data devi allocare
    sizeof(data) * 5 = 160 bytes. I singoli pacchetti da 32 bytes ( ossia sizeof(data) ) sono la struttura simulata, di cui i primi 3*sizeof(float) sono il campo pos, i successivi 3 * sizeof(float) sono il campo col, e gli ultimi 2 * sizeof(float) sono il campo uv. E questo solo per la prima struttura simulata. In pratica accollandoti il lavoro che fa il compilatore.

    Non credo che l'API in questione sia così poco furba da fare una parserizzazione del genere. Più probabile faccia qualcosa del genere:
    codice:
         apivulkan(..., void* buffer, size_t num_bytes) {
             
             size_t num_struct = num_bytes / sizeof(data);
             struct data **tante_data = (struct data**) buffer;
             tante_data[0]->pos[0] = 0.1;
             tante_data[0]->pos[1] = 0.2;
             etc...
         }
    E poi non capisco
    Il problema � che uso i byte per creare qualsiasi tipo di dato possibile
    I dati sono vincolati dalla struttura data. Di che parliamo?
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    Quote Originariamente inviata da shodan Visualizza il messaggio
    Scusa, ma ho l'impressione che tu ti stia complicando la vita. Non � pi� semplice creare un vettore di puntatori a data, fare delle funzioni che riversino i dati dai vettori_pos, vettori_col, vettori_uv nei rispettivi campi data_pos, data_col, data_uv e poi passare il tutto all'API, come il codice che hai mostrato (tra l'altro leggermente errato)?
    In uscita avresti i dati formattati direttamente nei campi di ogni singola struttura data.

    Non che non si possa fare in modo alternativo, ma in tal caso devi considerare che, mettiamo, per 5 strutture data devi allocare
    sizeof(data) * 5 = 160 bytes. I singoli pacchetti da 32 bytes ( ossia sizeof(data) ) sono la struttura simulata, di cui i primi 3*sizeof(float) sono il campo pos, i successivi 3 * sizeof(float) sono il campo col, e gli ultimi 2 * sizeof(float) sono il campo uv. E questo solo per la prima struttura simulata. In pratica accollandoti il lavoro che fa il compilatore.

    Non credo che l'API in questione sia cos� poco furba da fare una parserizzazione del genere. Pi� probabile faccia qualcosa del genere:
    codice:
         apivulkan(..., void* buffer, size_t num_bytes) {
             
             size_t num_struct = num_bytes / sizeof(data);
             struct data **tante_data = (struct data**) buffer;
             tante_data[0]->pos[0] = 0.1;
             tante_data[0]->pos[1] = 0.2;
             etc...
         }
    E poi non capisco

    I dati sono vincolati dalla struttura data. Di che parliamo?
    si hai ragione , scusa avevo poco tempo e ho buttato giu velocemente dicendo delle cavolate.
    1.Cosa Voglio fare?
    vorrei creare una libreria template che mi assista e mi aiuti a configurare vulkan (il nuovo opengl)
    Come hai intuito e mi hai detto che mi sto complicando la vita � che serve una struttura vertex dl genere:
    codice:
    struct vertex
    {
       glm::vec3 pos;
       glm::vec2 UV
    }
    ecc....
    
    io vorrei aggiungere un wrapper attorno ai tipi che mi consenta di poter inserire altri dati che servono per la configurazione. una cosa cosi:
    struct vertex
    {
       wrapper<glm::vec3> pos;
       wrapper<glm::vec2> UV
    }
    e poi passare il vertex come argomento template ad un altra classe manager.
    cosi :
    codice:
    template <class V>
    class CManager{
    typedef typename V dati
    
    }
    in modo che possa fare una cosa del genere :
    CManager<Vertex> manager;
    manager.dati.pos.setBinding(.....
    manager.dati.UV.setBinding....
    manager.dati.pos.setvalue(glm::vec3(1.0f,1.0f,1.0f,1.0f)
    cosi che estendendo il wrapper posso inserire tutte le propriet� che voglio.
    Il mio problema � "portarle a casa" il wrapper � indipendente all interno della struttura e non ho accesso ai suoi risultati senza complicarmi appunto la vita.
    � una cosa che faccio nel tempo libero per imparare un po i template e ho visto che esistono le typelist posso fare qualcosa di meglio con le typelist secondo te?
    HO scelto i template in vulkan perch� ha un ampia fase di configurazione a design time e praticamente la parte dinamica � piccolissima.
    In pratica per velocizzare l'api si configura tutto in anticipo e poi si richiama la funzione draw per intenderci e minimizzare.

    Ora se per te le typelist non sono la soluzione dimmelo subito altrimenti senza loky con il c++ 11 si possono utilizzare?
    Ho visto in modern c++ programming che spiega come creare oggetti da una typelist e accederci tranquillamente con un indice.
    ciao.
    ps.non ho obblighi di tempo o consegne � solo una cosa che faccio io per imparare quindi non c'� fretta
    Grazie e scusa shodan

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.