0

いくつかのコードを見つけようとしましたが、古いものしか見つかりませんでした。頂点とインデックスの配列のみを作成しました (正しいことを願っています):

const SDL_Point blocksCount = { 4, 16 }; //I have texture with 4x16 squares 8x8 px.
f32 *verts = new f32[(blocksCount.x + 1) * (blocksCount.y + 1) * 2];
for (f32 y = 1; y >= -1; y -= 0.125f) //So I can automatize.
    for (f32 x = -1; x <= 1; x += 0.5f)
    {
        static u32 i = 0;
        verts[i] = x;
        i++;
        verts[i] = y;
        i++;
    }
u16 *indices = new u16[blocksCount.x * blocksCount.y * 4];
for (s32 y = 0; y < blocksCount.y; y++) //I've used TRIANGLE_STRIP.
    for (s32 x = 0; x < blocksCount.x; x++)
    {
        static u32 i = 0;
        indices[i] = x + y * (blocksCount.x + 1);
        indices[i + 1] = x + 1 + blocksCount.x + y * (blocksCount.x + 1);
        indices[i + 2] = x + 1 + y * (blocksCount.x + 1);
        indices[i + 3] = x + 2 + blocksCount.x + y * (blocksCount.x + 1);
        i += 4;
    }

では、次は何ですか?SDL 2 & OpenGL 4+ 用のコードが必要です。また、新しいアイデアも受け入れられます。

4

0 に答える 0