Cogs.Core
ClipmapGeometry.h
1#pragma once
2
3#include "Rendering/IBuffers.h"
4
5namespace Cogs
6{
8 {
9 VertexBufferHandle vertexBuffer;
10 IndexBufferHandle indexBuffer;
11
12 uint32_t stride;
13
14 int width;
15 int height;
16 };
17
19 {
20 ClipmapGeometry() : initialized(false) {}
21
22 ClipmapMesh fieldBlockMesh;
23 ClipmapMesh ringFixupHorizontalMesh;
24 ClipmapMesh ringFixupVerticalMesh;
25
26 ClipmapMesh offsetStripHorizontalMesh;
27 ClipmapMesh offsetStripVerticalMesh;
28
29 ClipmapMesh centerMesh;
30
31 ClipmapMesh degenerateTriangleMesh;
32
33 ClipmapMesh worldMesh;
34 ClipmapMesh simpleWorldMesh;
35
36 ClipmapMesh simpleMesh;
37
38 bool initialized;
39
40 IBuffers * buffers;
41
42 VertexFormatHandle meshFormat;
43 uint32_t stride;
44 };
45
46 ClipmapMesh createMesh(IBuffers * buffers, double left, double bottom, double right, double top, size_t numberOfPartitionsX, size_t numberOfPartitionsY, const VertexFormatHandle & vertexFormat);
47 ClipmapMesh createSimpleMesh(IBuffers * buffers, double left, double bottom, double right, double top, size_t numberOfPartitionsX, size_t numberOfPartitionsY, const VertexFormatHandle & vertexFormat);
48 ClipmapMesh createDegenerateMesh(IBuffers * buffers, size_t clipmapSegments, size_t clipmapPosts, const VertexFormatHandle & vertexFormat);
49
50 void initializeGeometry(ClipmapGeometry & clipmapGeometry, IBuffers * buffers, size_t fillPatchPosts, size_t fillPatchSegments, size_t clipmapSegments, size_t clipmapPosts);
51
52 void releaseMesh(ClipmapMesh & mesh, IBuffers * buffers);
53
54 void releaseGeometry(ClipmapGeometry & clipmapGeometry, IBuffers * buffers);
55}
Contains all Cogs related functionality.
Definition: FieldSetter.h:23
Provides buffer management functionality.
Definition: IBuffers.h:13