summaryrefslogtreecommitdiffstats
path: root/Tools/QtBiomeVisualiser/BiomeView.h
diff options
context:
space:
mode:
authorMattes D <github@xoft.cz>2014-09-14 01:32:00 +0200
committerMattes D <github@xoft.cz>2014-09-14 01:33:05 +0200
commite3a2dc5a1391d8aaaa3fdb83e946838540a07e75 (patch)
tree1a665fcc4ae0ea097ba476f70dddb5ef03539a28 /Tools/QtBiomeVisualiser/BiomeView.h
parentOSSupport: Fixed UNICODE Windows builds. (diff)
downloadcuberite-e3a2dc5a1391d8aaaa3fdb83e946838540a07e75.tar
cuberite-e3a2dc5a1391d8aaaa3fdb83e946838540a07e75.tar.gz
cuberite-e3a2dc5a1391d8aaaa3fdb83e946838540a07e75.tar.bz2
cuberite-e3a2dc5a1391d8aaaa3fdb83e946838540a07e75.tar.lz
cuberite-e3a2dc5a1391d8aaaa3fdb83e946838540a07e75.tar.xz
cuberite-e3a2dc5a1391d8aaaa3fdb83e946838540a07e75.tar.zst
cuberite-e3a2dc5a1391d8aaaa3fdb83e946838540a07e75.zip
Diffstat (limited to 'Tools/QtBiomeVisualiser/BiomeView.h')
-rw-r--r--Tools/QtBiomeVisualiser/BiomeView.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/Tools/QtBiomeVisualiser/BiomeView.h b/Tools/QtBiomeVisualiser/BiomeView.h
new file mode 100644
index 000000000..c54c66491
--- /dev/null
+++ b/Tools/QtBiomeVisualiser/BiomeView.h
@@ -0,0 +1,65 @@
+#pragma once
+
+#include <QWidget>
+#include "ChunkCache.h"
+#include "ChunkSource.h"
+
+
+
+
+
+class BiomeView :
+ public QWidget
+{
+ typedef QWidget super;
+ Q_OBJECT
+
+public:
+ explicit BiomeView(QWidget * parent = NULL);
+
+ QSize minimumSizeHint() const;
+ QSize sizeHint() const;
+
+ /** Replaces the chunk source used by the biome view to get the chunk biome data.
+ The entire view is then invalidated and regenerated. */
+ void setChunkSource(std::shared_ptr<ChunkSource> a_ChunkSource);
+
+signals:
+
+public slots:
+ /** Redraw the entire widget area. */
+ void redraw();
+
+ /** A specified chunk has become available, redraw it. */
+ void chunkAvailable(int a_ChunkX, int a_ChunkZ);
+
+protected:
+ double m_X, m_Z;
+ int m_Zoom;
+ ChunkCache m_Cache;
+ QImage m_Image;
+
+ /** Data used for rendering a chunk that hasn't been loaded yet */
+ uchar m_EmptyChunkImage[16 * 16 * 4];
+
+
+ /** Draws the specified chunk into m_Image */
+ void drawChunk(int a_ChunkX, int a_ChunkZ);
+
+ /** Returns true iff the biome view has been initialized to contain proper biome data. */
+ bool hasData(void) const { return m_Cache.hasData(); }
+
+ /** Called when the widget is resized */
+ virtual void resizeEvent(QResizeEvent *) override;
+
+ /** Paints the entire widget */
+ virtual void paintEvent(QPaintEvent *) override;
+
+ /** Queues the chunk for rendering. */
+ void queueChunkRender(ChunkPtr a_Chunk);
+};
+
+
+
+
+