Implement tile-targeted road route construction and OpenGL 3D layered road rendering
This commit is contained in:
@@ -10,9 +10,13 @@
|
||||
#include <QPointF>
|
||||
#include <vector>
|
||||
#include <memory>
|
||||
#include <map>
|
||||
#include "unit.h"
|
||||
#include "player.h"
|
||||
#include "city.h"
|
||||
#include "roadconfig.h"
|
||||
#include "matrix2d.h"
|
||||
#include "terrain.h"
|
||||
|
||||
class UnitRenderer : protected QOpenGLFunctions_4_0_Core {
|
||||
public:
|
||||
@@ -20,6 +24,18 @@ public:
|
||||
~UnitRenderer();
|
||||
|
||||
void initialize();
|
||||
void renderRoads(
|
||||
const std::map<std::pair<int, int>, TileRoad> &roads,
|
||||
const RoadConfigManager &roadConfigs,
|
||||
Matrix2D<TerrainPoint> *mapPoints,
|
||||
int numPoints05,
|
||||
const QMatrix4x4 &projection,
|
||||
const QMatrix4x4 &vMatrix,
|
||||
const QVector3D &lightDir,
|
||||
int cityViewRadius = -1,
|
||||
int cityViewTileX = -1,
|
||||
int cityViewTileY = -1
|
||||
);
|
||||
void renderUnits(
|
||||
const std::vector<std::shared_ptr<Unit>> &units,
|
||||
const std::vector<City> &cities,
|
||||
@@ -49,6 +65,10 @@ private:
|
||||
QOpenGLVertexArrayObject m_vao;
|
||||
int m_vertexCount;
|
||||
bool m_initialized;
|
||||
|
||||
QOpenGLBuffer m_roadVbo;
|
||||
QOpenGLVertexArrayObject m_roadVao;
|
||||
bool m_roadBuffersInitialized;
|
||||
};
|
||||
|
||||
#endif // UNITRENDERER_H
|
||||
|
||||
Reference in New Issue
Block a user