BiomeVisualiser: Added zooming using the 1 - 8 keys.
This commit is contained in:
parent
00af5d4d6e
commit
8104f611f1
1
Tools/BiomeVisualiser/.gitignore
vendored
1
Tools/BiomeVisualiser/.gitignore
vendored
@ -1,3 +1,4 @@
|
|||||||
Debug/
|
Debug/
|
||||||
logs/
|
logs/
|
||||||
Release/
|
Release/
|
||||||
|
Release profiled/
|
||||||
|
@ -40,10 +40,10 @@ bool cBiomeRenderer::Render(cPixmap & a_Pixmap)
|
|||||||
int Hei = a_Pixmap.GetHeight();
|
int Hei = a_Pixmap.GetHeight();
|
||||||
|
|
||||||
// Hint the approximate view area to the biome source so that it can adjust its caches:
|
// Hint the approximate view area to the biome source so that it can adjust its caches:
|
||||||
int MinBlockX = ( - m_OriginX) / m_Zoom;
|
int MinBlockX = ( - m_OriginX) * m_Zoom;
|
||||||
int MaxBlockX = (Wid - m_OriginX) / m_Zoom;
|
int MaxBlockX = (Wid - m_OriginX) * m_Zoom;
|
||||||
int MinBlockZ = ( - m_OriginY) / m_Zoom;
|
int MinBlockZ = ( - m_OriginY) * m_Zoom;
|
||||||
int MaxBlockZ = (Hei - m_OriginY) / m_Zoom;
|
int MaxBlockZ = (Hei - m_OriginY) * m_Zoom;
|
||||||
m_Cache.HintViewArea(MinBlockX / 16 - 1, MaxBlockX / 16 + 1, MinBlockZ / 16 - 1, MaxBlockZ / 16 + 1);
|
m_Cache.HintViewArea(MinBlockX / 16 - 1, MaxBlockX / 16 + 1, MinBlockZ / 16 - 1, MaxBlockZ / 16 + 1);
|
||||||
|
|
||||||
// Hold one current chunk of biome data:
|
// Hold one current chunk of biome data:
|
||||||
@ -55,12 +55,12 @@ bool cBiomeRenderer::Render(cPixmap & a_Pixmap)
|
|||||||
|
|
||||||
for (int y = 0; y < Hei; y++)
|
for (int y = 0; y < Hei; y++)
|
||||||
{
|
{
|
||||||
int BlockZ = (y - m_OriginY) / m_Zoom;
|
int BlockZ = (y - m_OriginY) * m_Zoom;
|
||||||
int ChunkZ = (BlockZ >= 0) ? (BlockZ / 16) : ((BlockZ + 1) / 16 - 1);
|
int ChunkZ = (BlockZ >= 0) ? (BlockZ / 16) : ((BlockZ + 1) / 16 - 1);
|
||||||
int RelZ = BlockZ - ChunkZ * 16;
|
int RelZ = BlockZ - ChunkZ * 16;
|
||||||
for (int x = 0; x < Wid; x++)
|
for (int x = 0; x < Wid; x++)
|
||||||
{
|
{
|
||||||
int BlockX = (x - m_OriginX) / m_Zoom;
|
int BlockX = (x - m_OriginX) * m_Zoom;
|
||||||
int ChunkX = (BlockX >= 0) ? (BlockX / 16) : ((BlockX + 1) / 16 - 1);
|
int ChunkX = (BlockX >= 0) ? (BlockX / 16) : ((BlockX + 1) / 16 - 1);
|
||||||
int RelX = BlockX - ChunkX * 16;
|
int RelX = BlockX - ChunkX * 16;
|
||||||
if ((ChunkZ != CurChunkZ) || (ChunkX != CurChunkX))
|
if ((ChunkZ != CurChunkZ) || (ChunkX != CurChunkX))
|
||||||
|
@ -37,6 +37,11 @@ public:
|
|||||||
|
|
||||||
void MoveViewBy(int a_OffsX, int a_OffsY);
|
void MoveViewBy(int a_OffsX, int a_OffsY);
|
||||||
|
|
||||||
|
void SetZoom(int a_NewZoom)
|
||||||
|
{
|
||||||
|
m_Zoom = a_NewZoom;
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
cBiomeCache m_Cache;
|
cBiomeCache m_Cache;
|
||||||
|
|
||||||
|
@ -67,17 +67,41 @@ void cBiomeViewWnd::InitBiomeView(void)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void cBiomeViewWnd::SetZoom(int a_NewZoom)
|
||||||
|
{
|
||||||
|
m_Renderer.SetZoom(a_NewZoom);
|
||||||
|
Redraw();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void cBiomeViewWnd::Redraw(void)
|
||||||
|
{
|
||||||
|
if (m_Renderer.Render(m_Pixmap))
|
||||||
|
{
|
||||||
|
SetTimer(m_Wnd, TIMER_RERENDER, 200, NULL);
|
||||||
|
}
|
||||||
|
InvalidateRect(m_Wnd, NULL, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
LRESULT cBiomeViewWnd::WndProc(HWND a_Wnd, UINT a_Msg, WPARAM wParam, LPARAM lParam)
|
LRESULT cBiomeViewWnd::WndProc(HWND a_Wnd, UINT a_Msg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
switch (a_Msg)
|
switch (a_Msg)
|
||||||
{
|
{
|
||||||
case WM_CLOSE: return OnClose();
|
case WM_CHAR: return OnChar (wParam, lParam);
|
||||||
case WM_COMMAND: return OnCommand(wParam, lParam);
|
case WM_CLOSE: return OnClose ();
|
||||||
|
case WM_COMMAND: return OnCommand (wParam, lParam);
|
||||||
case WM_LBUTTONDOWN: return OnLButtonDown(wParam, lParam);
|
case WM_LBUTTONDOWN: return OnLButtonDown(wParam, lParam);
|
||||||
case WM_LBUTTONUP: return OnLButtonUp (wParam, lParam);
|
case WM_LBUTTONUP: return OnLButtonUp (wParam, lParam);
|
||||||
case WM_MOUSEMOVE: return OnMouseMove (wParam, lParam);
|
case WM_MOUSEMOVE: return OnMouseMove (wParam, lParam);
|
||||||
case WM_PAINT: return OnPaint();
|
case WM_PAINT: return OnPaint ();
|
||||||
case WM_TIMER: return OnTimer(wParam);
|
case WM_TIMER: return OnTimer (wParam);
|
||||||
}
|
}
|
||||||
return ::DefWindowProc(a_Wnd, a_Msg, wParam, lParam);
|
return ::DefWindowProc(a_Wnd, a_Msg, wParam, lParam);
|
||||||
}
|
}
|
||||||
@ -86,6 +110,32 @@ LRESULT cBiomeViewWnd::WndProc(HWND a_Wnd, UINT a_Msg, WPARAM wParam, LPARAM lPa
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
LRESULT cBiomeViewWnd::OnChar(WPARAM wParam, LPARAM lParam)
|
||||||
|
{
|
||||||
|
switch (wParam)
|
||||||
|
{
|
||||||
|
case '1': SetZoom(1); break;
|
||||||
|
case '2': SetZoom(2); break;
|
||||||
|
case '3': SetZoom(3); break;
|
||||||
|
case '4': SetZoom(4); break;
|
||||||
|
case '5': SetZoom(5); break;
|
||||||
|
case '6': SetZoom(6); break;
|
||||||
|
case '7': SetZoom(7); break;
|
||||||
|
case '8': SetZoom(8); break;
|
||||||
|
case 27:
|
||||||
|
{
|
||||||
|
// Esc pressed, exit
|
||||||
|
PostQuitMessage(0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
LRESULT cBiomeViewWnd::OnClose(void)
|
LRESULT cBiomeViewWnd::OnClose(void)
|
||||||
{
|
{
|
||||||
PostQuitMessage(0);
|
PostQuitMessage(0);
|
||||||
@ -126,12 +176,8 @@ LRESULT cBiomeViewWnd::OnMouseMove(WPARAM wParam, LPARAM lParam)
|
|||||||
POINT pnt;
|
POINT pnt;
|
||||||
GetCursorPos(&pnt);
|
GetCursorPos(&pnt);
|
||||||
m_Renderer.MoveViewBy(pnt.x - m_MouseDown.x, pnt.y - m_MouseDown.y);
|
m_Renderer.MoveViewBy(pnt.x - m_MouseDown.x, pnt.y - m_MouseDown.y);
|
||||||
if (m_Renderer.Render(m_Pixmap))
|
|
||||||
{
|
|
||||||
SetTimer(m_Wnd, TIMER_RERENDER, 200, NULL);
|
|
||||||
}
|
|
||||||
m_MouseDown = pnt;
|
m_MouseDown = pnt;
|
||||||
InvalidateRect(m_Wnd, NULL, FALSE);
|
Redraw();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,9 +48,13 @@ protected:
|
|||||||
|
|
||||||
void InitBiomeView(void);
|
void InitBiomeView(void);
|
||||||
|
|
||||||
|
void SetZoom(int a_NewZoom);
|
||||||
|
void Redraw(void);
|
||||||
|
|
||||||
LRESULT WndProc(HWND a_Wnd, UINT a_Msg, WPARAM wParam, LPARAM lParam);
|
LRESULT WndProc(HWND a_Wnd, UINT a_Msg, WPARAM wParam, LPARAM lParam);
|
||||||
|
|
||||||
// Message handlers:
|
// Message handlers:
|
||||||
|
LRESULT OnChar (WPARAM wParam, LPARAM lParam);
|
||||||
LRESULT OnClose (void);
|
LRESULT OnClose (void);
|
||||||
LRESULT OnCommand (WPARAM wParam, LPARAM lParam);
|
LRESULT OnCommand (WPARAM wParam, LPARAM lParam);
|
||||||
LRESULT OnLButtonDown(WPARAM wParam, LPARAM lParam);
|
LRESULT OnLButtonDown(WPARAM wParam, LPARAM lParam);
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="windows-1250"?>
|
<?xml version="1.0" encoding="windows-1250"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="9,00"
|
Version="9.00"
|
||||||
Name="BiomeVisualiser"
|
Name="BiomeVisualiser"
|
||||||
ProjectGUID="{6DF3D88B-AD47-45B6-B831-1BDE74F86B5C}"
|
ProjectGUID="{6DF3D88B-AD47-45B6-B831-1BDE74F86B5C}"
|
||||||
RootNamespace="BiomeVisualiser"
|
RootNamespace="BiomeVisualiser"
|
||||||
@ -272,6 +272,10 @@
|
|||||||
RelativePath=".\BiomeColors.cpp"
|
RelativePath=".\BiomeColors.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\BiomeColors.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\BiomeRenderer.cpp"
|
RelativePath=".\BiomeRenderer.cpp"
|
||||||
>
|
>
|
||||||
@ -501,10 +505,6 @@
|
|||||||
</Filter>
|
</Filter>
|
||||||
</Filter>
|
</Filter>
|
||||||
</Filter>
|
</Filter>
|
||||||
<File
|
|
||||||
RelativePath=".\BiomeColors.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
</Files>
|
</Files>
|
||||||
<Globals>
|
<Globals>
|
||||||
</Globals>
|
</Globals>
|
||||||
|
Loading…
Reference in New Issue
Block a user