mirror of
https://github.com/The-Powder-Toy/The-Powder-Toy.git
synced 2025-08-10 02:16:37 +02:00
Render options
This commit is contained in:
@@ -5,6 +5,7 @@
|
|||||||
#include "GameController.h"
|
#include "GameController.h"
|
||||||
#include "GameModel.h"
|
#include "GameModel.h"
|
||||||
#include "search/SearchController.h"
|
#include "search/SearchController.h"
|
||||||
|
#include "render/RenderController.h"
|
||||||
#include "interface/Point.h"
|
#include "interface/Point.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
@@ -134,7 +135,8 @@ void GameController::OpenDisplayOptions()
|
|||||||
|
|
||||||
void GameController::OpenRenderOptions()
|
void GameController::OpenRenderOptions()
|
||||||
{
|
{
|
||||||
//TODO: Implement
|
RenderController * renderController = new RenderController(gameModel->GetRenderer());
|
||||||
|
ui::Engine::Ref().ShowWindow(renderController->GetView());
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameController::OpenSaveWindow()
|
void GameController::OpenSaveWindow()
|
||||||
|
24
src/render/RenderController.cpp
Normal file
24
src/render/RenderController.cpp
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
/*
|
||||||
|
* RenderController.cpp
|
||||||
|
*
|
||||||
|
* Created on: Jan 23, 2012
|
||||||
|
* Author: Simon
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "RenderController.h"
|
||||||
|
|
||||||
|
RenderController::RenderController(Renderer * ren) {
|
||||||
|
renderView = new RenderView();
|
||||||
|
renderModel = new RenderModel();
|
||||||
|
|
||||||
|
renderView->AttachController(this);
|
||||||
|
renderModel->AddObserver(renderView);
|
||||||
|
|
||||||
|
renderModel->SetRenderer(ren);
|
||||||
|
}
|
||||||
|
|
||||||
|
RenderController::~RenderController() {
|
||||||
|
delete renderView;
|
||||||
|
delete renderModel;
|
||||||
|
}
|
||||||
|
|
26
src/render/RenderController.h
Normal file
26
src/render/RenderController.h
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
/*
|
||||||
|
* RenderController.h
|
||||||
|
*
|
||||||
|
* Created on: Jan 23, 2012
|
||||||
|
* Author: Simon
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef RENDERCONTROLLER_H_
|
||||||
|
#define RENDERCONTROLLER_H_
|
||||||
|
|
||||||
|
#include "RenderView.h"
|
||||||
|
#include "RenderModel.h"
|
||||||
|
#include "Renderer.h"
|
||||||
|
|
||||||
|
class RenderView;
|
||||||
|
class RenderModel;
|
||||||
|
class RenderController {
|
||||||
|
RenderView * renderView;
|
||||||
|
RenderModel * renderModel;
|
||||||
|
public:
|
||||||
|
RenderController(Renderer * ren);
|
||||||
|
RenderView * GetView() { return renderView; }
|
||||||
|
virtual ~RenderController();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* RENDERCONTROLLER_H_ */
|
42
src/render/RenderModel.cpp
Normal file
42
src/render/RenderModel.cpp
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
* RenderModel.cpp
|
||||||
|
*
|
||||||
|
* Created on: Jan 23, 2012
|
||||||
|
* Author: Simon
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "RenderModel.h"
|
||||||
|
|
||||||
|
RenderModel::RenderModel() {
|
||||||
|
// TODO Auto-generated constructor stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void RenderModel::AddObserver(RenderView * observer)
|
||||||
|
{
|
||||||
|
observers.push_back(observer);
|
||||||
|
observer->NotifyRendererChanged(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
void RenderModel::SetRenderer(Renderer * ren)
|
||||||
|
{
|
||||||
|
renderer = ren;
|
||||||
|
notifyRendererChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
Renderer * RenderModel::GetRenderer()
|
||||||
|
{
|
||||||
|
return renderer;
|
||||||
|
}
|
||||||
|
|
||||||
|
void RenderModel::notifyRendererChanged()
|
||||||
|
{
|
||||||
|
for(int i = 0; i < observers.size(); i++)
|
||||||
|
{
|
||||||
|
observers[i]->NotifyRendererChanged(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
RenderModel::~RenderModel() {
|
||||||
|
// TODO Auto-generated destructor stub
|
||||||
|
}
|
30
src/render/RenderModel.h
Normal file
30
src/render/RenderModel.h
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
/*
|
||||||
|
* RenderModel.h
|
||||||
|
*
|
||||||
|
* Created on: Jan 23, 2012
|
||||||
|
* Author: Simon
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef RENDERMODEL_H_
|
||||||
|
#define RENDERMODEL_H_
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
#include "RenderView.h"
|
||||||
|
#include "Renderer.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
class RenderView;
|
||||||
|
class RenderModel {
|
||||||
|
vector<RenderView*> observers;
|
||||||
|
Renderer * renderer;
|
||||||
|
void notifyRendererChanged();
|
||||||
|
public:
|
||||||
|
RenderModel();
|
||||||
|
Renderer * GetRenderer();
|
||||||
|
void AddObserver(RenderView * observer);
|
||||||
|
void SetRenderer(Renderer * ren);
|
||||||
|
virtual ~RenderModel();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* RENDERMODEL_H_ */
|
38
src/render/RenderView.cpp
Normal file
38
src/render/RenderView.cpp
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* RenderView.cpp
|
||||||
|
*
|
||||||
|
* Created on: Jan 23, 2012
|
||||||
|
* Author: Simon
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "RenderView.h"
|
||||||
|
#include "Graphics.h"
|
||||||
|
|
||||||
|
RenderView::RenderView():
|
||||||
|
ui::Window(ui::Point(0, 0), ui::Point(XRES, YRES+MENUSIZE)),
|
||||||
|
ren(NULL)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated constructor stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void RenderView::NotifyRendererChanged(RenderModel * sender)
|
||||||
|
{
|
||||||
|
ren = sender->GetRenderer();
|
||||||
|
}
|
||||||
|
|
||||||
|
void RenderView::OnDraw()
|
||||||
|
{
|
||||||
|
Graphics * g = ui::Engine::Ref().g;
|
||||||
|
g->clearrect(0, 0, XRES, YRES+MENUSIZE);
|
||||||
|
g->draw_line(XRES-1, 0, XRES-1, YRES+MENUSIZE, 255, 255, 255, XRES+BARSIZE);
|
||||||
|
if(ren)
|
||||||
|
{
|
||||||
|
ren->render_parts();
|
||||||
|
ren->render_fire();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
RenderView::~RenderView() {
|
||||||
|
// TODO Auto-generated destructor stub
|
||||||
|
}
|
29
src/render/RenderView.h
Normal file
29
src/render/RenderView.h
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
/*
|
||||||
|
* RenderView.h
|
||||||
|
*
|
||||||
|
* Created on: Jan 23, 2012
|
||||||
|
* Author: Simon
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef RENDERVIEW_H_
|
||||||
|
#define RENDERVIEW_H_
|
||||||
|
|
||||||
|
#include "interface/Window.h"
|
||||||
|
#include "RenderController.h"
|
||||||
|
#include "RenderModel.h"
|
||||||
|
#include "Renderer.h"
|
||||||
|
|
||||||
|
class RenderController;
|
||||||
|
class RenderModel;
|
||||||
|
class RenderView: public ui::Window {
|
||||||
|
RenderController * c;
|
||||||
|
Renderer * ren;
|
||||||
|
public:
|
||||||
|
RenderView();
|
||||||
|
void NotifyRendererChanged(RenderModel * sender);
|
||||||
|
void AttachController(RenderController * c_) { c = c_; }
|
||||||
|
virtual void OnDraw();
|
||||||
|
virtual ~RenderView();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* RENDERVIEW_H_ */
|
Reference in New Issue
Block a user