Render options
This commit is contained in:
parent
8a65c395f4
commit
27755b2f27
@ -5,6 +5,7 @@
|
||||
#include "GameController.h"
|
||||
#include "GameModel.h"
|
||||
#include "search/SearchController.h"
|
||||
#include "render/RenderController.h"
|
||||
#include "interface/Point.h"
|
||||
|
||||
using namespace std;
|
||||
@ -134,7 +135,8 @@ void GameController::OpenDisplayOptions()
|
||||
|
||||
void GameController::OpenRenderOptions()
|
||||
{
|
||||
//TODO: Implement
|
||||
RenderController * renderController = new RenderController(gameModel->GetRenderer());
|
||||
ui::Engine::Ref().ShowWindow(renderController->GetView());
|
||||
}
|
||||
|
||||
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