14
ButtonListener.cpp
Normal file
14
ButtonListener.cpp
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
#include "ButtonListener.h"
|
||||||
|
|
||||||
|
ButtonListener::ButtonListener(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
ButtonListener::~ButtonListener(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void ButtonListener::onButton1MouseClick(TextButtonInstance* button)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
18
ButtonListener.h
Normal file
18
ButtonListener.h
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "TextButtonInstance.h"
|
||||||
|
class TextButtonInstance;
|
||||||
|
class ButtonListener
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ButtonListener(void);
|
||||||
|
~ButtonListener(void);
|
||||||
|
virtual void onButton1MouseClick(TextButtonInstance*);
|
||||||
|
//virtual void onMouseOver(); //TODO
|
||||||
|
//virtual void onMouseOut(); //TODO
|
||||||
|
//virtual void onButton1MouseDown(); //TODO
|
||||||
|
//virtual void onButton1MouseUp(); //TODO
|
||||||
|
//virtual void onButton2MouseClick(); //TODO
|
||||||
|
//virtual void onButton2MouseDown(); //TODO
|
||||||
|
//virtual void onButton2MouseUp(); //TODO
|
||||||
|
//What to do now...
|
||||||
|
};
|
||||||
@@ -230,6 +230,10 @@
|
|||||||
Name="Source Files"
|
Name="Source Files"
|
||||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||||
>
|
>
|
||||||
|
<File
|
||||||
|
RelativePath=".\ButtonListener.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\Dialogs.rc"
|
RelativePath=".\Dialogs.rc"
|
||||||
>
|
>
|
||||||
@@ -270,15 +274,15 @@
|
|||||||
RelativePath=".\TextButtonInstance.cpp"
|
RelativePath=".\TextButtonInstance.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath=".\Work.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Header Files"
|
Name="Header Files"
|
||||||
Filter="h;hpp;hxx;hm;inl"
|
Filter="h;hpp;hxx;hm;inl"
|
||||||
>
|
>
|
||||||
|
<File
|
||||||
|
RelativePath=".\ButtonListener.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\ImageButtonInstance.h"
|
RelativePath=".\ImageButtonInstance.h"
|
||||||
>
|
>
|
||||||
@@ -295,18 +299,10 @@
|
|||||||
RelativePath=".\resource.h"
|
RelativePath=".\resource.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath=".\stdafx.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath=".\TextButtonInstance.h"
|
RelativePath=".\TextButtonInstance.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath=".\Work.h"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Resource Files"
|
Name="Resource Files"
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ bool floatBottom;
|
|||||||
bool floatRight;
|
bool floatRight;
|
||||||
bool floatCenter;
|
bool floatCenter;
|
||||||
bool visible;
|
bool visible;
|
||||||
|
ButtonListener* buttonListener;
|
||||||
|
|
||||||
TextButtonInstance::TextButtonInstance(void)
|
TextButtonInstance::TextButtonInstance(void)
|
||||||
{
|
{
|
||||||
@@ -40,11 +41,24 @@ TextButtonInstance::TextButtonInstance(void)
|
|||||||
floatCenter = false;
|
floatCenter = false;
|
||||||
visible = true;
|
visible = true;
|
||||||
className = "TextButton";
|
className = "TextButton";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TextButtonInstance::~TextButtonInstance(void)
|
TextButtonInstance::~TextButtonInstance(void)
|
||||||
{
|
{
|
||||||
|
delete buttonListener;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TextButtonInstance::setButtonListener(ButtonListener* listener)
|
||||||
|
{
|
||||||
|
buttonListener = listener;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TextButtonInstance::onClick()
|
||||||
|
{
|
||||||
|
if(buttonListener != NULL)
|
||||||
|
{
|
||||||
|
buttonListener->onButton1MouseClick(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextButtonInstance::drawObj(RenderDevice* rd)
|
void TextButtonInstance::drawObj(RenderDevice* rd)
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "instance.h"
|
#include "instance.h"
|
||||||
|
#pragma once
|
||||||
|
#include "ButtonListener.h"
|
||||||
|
class ButtonListener;
|
||||||
class TextButtonInstance :
|
class TextButtonInstance :
|
||||||
public Instance
|
public Instance
|
||||||
{
|
{
|
||||||
@@ -30,5 +32,6 @@ public:
|
|||||||
bool visible;
|
bool visible;
|
||||||
int textSize;
|
int textSize;
|
||||||
void drawObj(G3D::RenderDevice*);
|
void drawObj(G3D::RenderDevice*);
|
||||||
|
void setButtonListener(ButtonListener*);
|
||||||
|
void onClick();
|
||||||
};
|
};
|
||||||
23
Work.h
23
Work.h
@@ -1,23 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
#include "resource.h"
|
|
||||||
|
|
||||||
// Work dialog
|
|
||||||
|
|
||||||
class Work : public CDialog
|
|
||||||
{
|
|
||||||
DECLARE_DYNAMIC(Work)
|
|
||||||
|
|
||||||
public:
|
|
||||||
Work(CWnd* pParent = NULL); // standard constructor
|
|
||||||
virtual ~Work();
|
|
||||||
|
|
||||||
// Dialog Data
|
|
||||||
enum { IDD = IDD_ABOUT_DIALOG };
|
|
||||||
|
|
||||||
protected:
|
|
||||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
|
||||||
|
|
||||||
DECLARE_MESSAGE_MAP()
|
|
||||||
public:
|
|
||||||
afx_msg void OnBnClickedOk();
|
|
||||||
};
|
|
||||||
BIN
content/cursor.png
Normal file
BIN
content/cursor.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 599 B |
171
main.cpp
171
main.cpp
@@ -10,25 +10,25 @@
|
|||||||
|
|
||||||
@author Morgan McGuire, matrix@graphics3d.com
|
@author Morgan McGuire, matrix@graphics3d.com
|
||||||
*/
|
*/
|
||||||
//Compile for 95 and higher
|
|
||||||
#define WINVER 0x0400
|
|
||||||
#include <G3DAll.h>
|
#include <G3DAll.h>
|
||||||
#include "Instance.h"
|
#include "Instance.h"
|
||||||
#include "resource.h"
|
#include "resource.h"
|
||||||
#include "PhysicalInstance.h"
|
#include "PhysicalInstance.h"
|
||||||
#include "TextButtonInstance.h"
|
#include "TextButtonInstance.h"
|
||||||
|
|
||||||
|
|
||||||
#if G3D_VER < 61000
|
#if G3D_VER < 61000
|
||||||
#error Requires G3D 6.10
|
#error Requires G3D 6.10
|
||||||
#endif
|
#endif
|
||||||
|
HWND hwnd;
|
||||||
static const float VNUM = 0.01F;
|
static const float VNUM = 0.01F;
|
||||||
static std::string title = "";
|
static std::string title = "";
|
||||||
static const std::string VERSION = "PRE-ALPHA ";
|
static const std::string VERSION = "PRE-ALPHA ";
|
||||||
static std::vector<Instance*> instances;
|
static std::vector<Instance*> instances;
|
||||||
static std::vector<Instance*> instances_2D;
|
static std::vector<Instance*> instances_2D;
|
||||||
static Instance* dataModel;
|
static Instance* dataModel;
|
||||||
static GFontRef fntdominant = NULL;
|
GFontRef fntdominant = NULL;
|
||||||
static GFontRef fntlighttrek = NULL;
|
GFontRef fntlighttrek = NULL;
|
||||||
static bool democ = true;
|
static bool democ = true;
|
||||||
static std::string message = "";
|
static std::string message = "";
|
||||||
static G3D::RealTime messageTime = 0;
|
static G3D::RealTime messageTime = 0;
|
||||||
@@ -44,8 +44,12 @@ static float mousey = 0;
|
|||||||
static int go_id = 0;
|
static int go_id = 0;
|
||||||
static int go_ovr_id = 0;
|
static int go_ovr_id = 0;
|
||||||
static int go_dn_id = 0;
|
static int go_dn_id = 0;
|
||||||
|
static int cursorid = 0;
|
||||||
|
static G3D::TextureRef cursor = NULL;
|
||||||
static bool mouseButton1Down = false;
|
static bool mouseButton1Down = false;
|
||||||
static bool running = true;
|
static bool running = true;
|
||||||
|
static bool mouseMovedBeginMotion = false;
|
||||||
|
static bool showMouse = true;
|
||||||
/**
|
/**
|
||||||
This simple demo applet uses the debug mode as the regular
|
This simple demo applet uses the debug mode as the regular
|
||||||
rendering mode so you can fly around the scene.
|
rendering mode so you can fly around the scene.
|
||||||
@@ -90,7 +94,7 @@ public:
|
|||||||
|
|
||||||
Demo* applet;
|
Demo* applet;
|
||||||
|
|
||||||
App(const GAppSettings& settings);
|
App(const GAppSettings& settings, GWindow* wnd);
|
||||||
|
|
||||||
~App();
|
~App();
|
||||||
};
|
};
|
||||||
@@ -246,11 +250,12 @@ void Demo::onInit() {
|
|||||||
|
|
||||||
|
|
||||||
dataModel = new Instance();
|
dataModel = new Instance();
|
||||||
//dataModel->name = "undefined";
|
|
||||||
dataModel->parent = NULL;
|
dataModel->parent = NULL;
|
||||||
|
dataModel->name = "undefined";
|
||||||
|
|
||||||
initGUI();
|
initGUI();
|
||||||
|
|
||||||
|
|
||||||
PhysicalInstance* test = makePart();
|
PhysicalInstance* test = makePart();
|
||||||
test->parent = dataModel;
|
test->parent = dataModel;
|
||||||
test->color = Color3(0.2F,0.3F,1);
|
test->color = Color3(0.2F,0.3F,1);
|
||||||
@@ -258,6 +263,7 @@ void Demo::onInit() {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
test = makePart();
|
test = makePart();
|
||||||
test->parent = dataModel;
|
test->parent = dataModel;
|
||||||
test->color = Color3(.5F,1,.5F);
|
test->color = Color3(.5F,1,.5F);
|
||||||
@@ -322,6 +328,7 @@ void Demo::onInit() {
|
|||||||
test->color = Color3::gray();
|
test->color = Color3::gray();
|
||||||
test->size = Vector3(4,1,2);
|
test->size = Vector3(4,1,2);
|
||||||
test->position = Vector3(-2,7,0);
|
test->position = Vector3(-2,7,0);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -341,7 +348,9 @@ void Demo::onInit() {
|
|||||||
void clearInstances()
|
void clearInstances()
|
||||||
{
|
{
|
||||||
for(size_t i = 0; i < instances.size(); i++)
|
for(size_t i = 0; i < instances.size(); i++)
|
||||||
|
{
|
||||||
delete instances.at(i);
|
delete instances.at(i);
|
||||||
|
}
|
||||||
delete dataModel;
|
delete dataModel;
|
||||||
}
|
}
|
||||||
void OnError(int err, std::string msg = "")
|
void OnError(int err, std::string msg = "")
|
||||||
@@ -355,10 +364,21 @@ void OnError(int err, std::string msg = "")
|
|||||||
|
|
||||||
void Demo::onCleanup() {
|
void Demo::onCleanup() {
|
||||||
clearInstances();
|
clearInstances();
|
||||||
|
go->~Texture();
|
||||||
|
go_ovr->~Texture();
|
||||||
|
go_dn->~Texture();
|
||||||
|
go_dn.~ReferenceCountedPointer();
|
||||||
|
delete go_dn.pointer();
|
||||||
|
go.~ReferenceCountedPointer();
|
||||||
|
delete go.pointer();
|
||||||
|
go_ovr.~ReferenceCountedPointer();
|
||||||
|
delete go_ovr.pointer();
|
||||||
|
app->sky->~Sky();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Demo::onLogic() {
|
void Demo::onLogic() {
|
||||||
// Add non-simulation game logic and AI code here
|
// Add non-simulation game logic and AI code here
|
||||||
}
|
}
|
||||||
@@ -401,16 +421,24 @@ void Demo::onUserInput(UserInput* ui) {
|
|||||||
endApplet = true;
|
endApplet = true;
|
||||||
app->endProgram = true;
|
app->endProgram = true;
|
||||||
}
|
}
|
||||||
|
if(mouseMovedBeginMotion)
|
||||||
|
{
|
||||||
|
mouseMovedBeginMotion = false;
|
||||||
|
app->debugController.setActive(true);
|
||||||
|
}
|
||||||
if(ui->keyPressed(SDL_RIGHT_MOUSE_KEY))
|
if(ui->keyPressed(SDL_RIGHT_MOUSE_KEY))
|
||||||
{
|
{
|
||||||
app->debugController.setActive(true);
|
showMouse = false;
|
||||||
|
app->window()->setRelativeMousePosition(app->window()->width()/2, app->window()->height()/2);
|
||||||
|
mouseMovedBeginMotion = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
else if(ui->keyReleased(SDL_RIGHT_MOUSE_KEY))
|
else if(ui->keyReleased(SDL_RIGHT_MOUSE_KEY))
|
||||||
{
|
{
|
||||||
|
showMouse = true;
|
||||||
app->debugController.setActive(false);
|
app->debugController.setActive(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if(ui->keyPressed(SDLK_LSHIFT))
|
if(ui->keyPressed(SDLK_LSHIFT))
|
||||||
{
|
{
|
||||||
app->debugController.setMoveRate(20);
|
app->debugController.setMoveRate(20);
|
||||||
@@ -491,12 +519,27 @@ std::string GetFileInPath(std::string file)
|
|||||||
void makeFlag(Vector3 &vec, RenderDevice* &rd)
|
void makeFlag(Vector3 &vec, RenderDevice* &rd)
|
||||||
{
|
{
|
||||||
Vector3 up = Vector3(vec.x, vec.y+3, vec.z);
|
Vector3 up = Vector3(vec.x, vec.y+3, vec.z);
|
||||||
Draw::lineSegment(G3D::LineSegment::fromTwoPoints(vec, up), rd, Color3::blue());
|
//Draw::lineSegment(G3D::LineSegment::fromTwoPoints(vec, up), rd, Color3::blue(), 3);
|
||||||
G3D::Array<Vector2> parray;
|
rd->setColor(Color3::blue());
|
||||||
parray.push(Vector2(up.x, up.y));
|
rd->beforePrimitive();
|
||||||
parray.push(Vector2(up.x-1, up.y-.5));
|
|
||||||
parray.push(Vector2(up.x, up.y-1));
|
glBegin(GL_LINES);
|
||||||
Draw::poly2D(parray, rd, Color3::blue());
|
glVertex3f(vec.x, vec.y, vec.z);
|
||||||
|
glVertex3f(up.x, up.y, up.z);
|
||||||
|
glEnd();
|
||||||
|
|
||||||
|
glBegin( GL_TRIANGLES );
|
||||||
|
glVertex3f(up.x, up.y-1, up.z);
|
||||||
|
glVertex3f(up.x, up.y-0.5, up.z-1);
|
||||||
|
glVertex3f(up.x, up.y, up.z);
|
||||||
|
|
||||||
|
glVertex3f(up.x, up.y, up.z);
|
||||||
|
glVertex3f(up.x, up.y-0.5, up.z-1);
|
||||||
|
glVertex3f(up.x, up.y-1, up.z);
|
||||||
|
|
||||||
|
glEnd();
|
||||||
|
rd->afterPrimitive();
|
||||||
|
rd->setColor(Color3::white());
|
||||||
//I know how i will approach this now
|
//I know how i will approach this now
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -531,6 +574,21 @@ void drawButtons(RenderDevice* rd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Demo::onGraphics(RenderDevice* rd) {
|
void Demo::onGraphics(RenderDevice* rd) {
|
||||||
|
Vector2 mousepos = Vector2(0,0);
|
||||||
|
G3D::uint8 num = 0;
|
||||||
|
rd->window()->getRelativeMouseState(mousepos, num);
|
||||||
|
bool mouseOnScreen = true;
|
||||||
|
if(mousepos.x < 5 || mousepos.y < 5 || mousepos.x > rd->getViewport().width()-5 || mousepos.y > rd->getViewport().height()-5)
|
||||||
|
{
|
||||||
|
mouseOnScreen = false;
|
||||||
|
rd->window()->setInputCaptureCount(0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mouseOnScreen = true;
|
||||||
|
rd->window()->setInputCaptureCount(1);
|
||||||
|
}
|
||||||
|
|
||||||
LightingParameters lighting(G3D::toSeconds(11, 00, 00, AM));
|
LightingParameters lighting(G3D::toSeconds(11, 00, 00, AM));
|
||||||
app->renderDevice->setProjectionAndCameraMatrix(app->debugCamera);
|
app->renderDevice->setProjectionAndCameraMatrix(app->debugCamera);
|
||||||
|
|
||||||
@@ -550,7 +608,7 @@ void Demo::onGraphics(RenderDevice* rd) {
|
|||||||
app->renderDevice->setAmbientLightColor(Color3(1,1,1));
|
app->renderDevice->setAmbientLightColor(Color3(1,1,1));
|
||||||
Draw::axes(CoordinateFrame(Vector3(0, 0, 0)), app->renderDevice);
|
Draw::axes(CoordinateFrame(Vector3(0, 0, 0)), app->renderDevice);
|
||||||
|
|
||||||
//makeFlag(Vector3(1, 0.5, 0.5), rd);
|
makeFlag(Vector3(-1, 3.5, 0), rd);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -565,13 +623,26 @@ void Demo::onGraphics(RenderDevice* rd) {
|
|||||||
PhysicalInstance* part = (PhysicalInstance*)instance;
|
PhysicalInstance* part = (PhysicalInstance*)instance;
|
||||||
Vector3 size = part->size;
|
Vector3 size = part->size;
|
||||||
Vector3 pos = part->position;
|
Vector3 pos = part->position;
|
||||||
Draw::box(Box(Vector3((pos.x-size.x/2)/2,(pos.y-size.y/2)/2,(pos.z-size.z/2)/2),Vector3((pos.x+size.x/2)/2,(pos.y+size.y/2)/2,(pos.z+size.z/2)/2)), app->renderDevice, part->color, Color4::clear());
|
Vector3 pos2 = Vector3((pos.x-size.x/2)/2,(pos.y-size.y/2)/2,(pos.z-size.z/2)/2);
|
||||||
|
Vector3 pos3 = Vector3((pos.x+size.x/2)/2,(pos.y+size.y/2)/2,(pos.z+size.z/2)/2);
|
||||||
|
Draw::box(Box(pos2 ,pos3), app->renderDevice, part->color, Color4::clear());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Vector3 gamepoint = Vector3(0, 5, 0);
|
||||||
|
Vector3 camerapoint = rd->getCameraToWorldMatrix().translation;
|
||||||
|
float distance = pow(pow((double)gamepoint.x - (double)camerapoint.x, 2) + pow((double)gamepoint.y - (double)camerapoint.y, 2) + pow((double)gamepoint.z - (double)camerapoint.z, 2), 0.5);
|
||||||
|
if(distance < 50 && distance > -50)
|
||||||
|
|
||||||
|
{
|
||||||
|
if(distance < 0)
|
||||||
|
distance = distance*-1;
|
||||||
|
fntdominant->draw3D(rd, "Testing", CoordinateFrame(rd->getCameraToWorldMatrix().rotation, gamepoint), 0.04*distance, Color3::yellow(), Color3::black(), G3D::GFont::XALIGN_CENTER, G3D::GFont::YALIGN_CENTER);
|
||||||
|
}
|
||||||
app->renderDevice->disableLighting();
|
app->renderDevice->disableLighting();
|
||||||
|
|
||||||
if (app->sky.notNull()) {
|
if (app->sky.notNull()) {
|
||||||
@@ -663,10 +734,42 @@ void Demo::onGraphics(RenderDevice* rd) {
|
|||||||
|
|
||||||
glDisable( GL_TEXTURE_2D );
|
glDisable( GL_TEXTURE_2D );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if(showMouse && mouseOnScreen)
|
||||||
|
{
|
||||||
|
glEnable( GL_TEXTURE_2D );
|
||||||
|
glEnable(GL_BLEND);// you enable blending function
|
||||||
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
|
|
||||||
|
|
||||||
|
glBindTexture( GL_TEXTURE_2D, cursorid);
|
||||||
|
|
||||||
|
|
||||||
|
glBegin( GL_QUADS );
|
||||||
|
glTexCoord2d(0.0,0.0);
|
||||||
|
glVertex2f(mousepos.x-40, mousepos.y-40);
|
||||||
|
glTexCoord2d( 1.0,0.0 );
|
||||||
|
glVertex2f(mousepos.x+40, mousepos.y-40);
|
||||||
|
glTexCoord2d(1.0,1.0 );
|
||||||
|
glVertex2f(mousepos.x+40, mousepos.y+40 );
|
||||||
|
glTexCoord2d( 0.0,1.0 );
|
||||||
|
glVertex2f( mousepos.x-40, mousepos.y+40 );
|
||||||
|
glEnd();
|
||||||
|
|
||||||
|
glDisable( GL_TEXTURE_2D );
|
||||||
|
}
|
||||||
|
|
||||||
rd->afterPrimitive();
|
rd->afterPrimitive();
|
||||||
|
|
||||||
rd->popState();
|
rd->popState();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
drawButtons(rd);
|
drawButtons(rd);
|
||||||
|
|
||||||
app->renderDevice->pop2D();
|
app->renderDevice->pop2D();
|
||||||
@@ -681,18 +784,20 @@ void App::main() {
|
|||||||
go = Texture::fromFile(GetFileInPath("/content/images/Run.png"));
|
go = Texture::fromFile(GetFileInPath("/content/images/Run.png"));
|
||||||
go_ovr = Texture::fromFile(GetFileInPath("/content/images/Run_ovr.png"));
|
go_ovr = Texture::fromFile(GetFileInPath("/content/images/Run_ovr.png"));
|
||||||
go_dn = Texture::fromFile(GetFileInPath("/content/images/Run_dn.png"));
|
go_dn = Texture::fromFile(GetFileInPath("/content/images/Run_dn.png"));
|
||||||
|
cursor = Texture::fromFile(GetFileInPath("/content/cursor.png"));
|
||||||
go_id = go->getOpenGLID();
|
go_id = go->getOpenGLID();
|
||||||
go_dn_id = go_dn->getOpenGLID();
|
go_dn_id = go_dn->getOpenGLID();
|
||||||
go_ovr_id = go_ovr->getOpenGLID();
|
go_ovr_id = go_ovr->getOpenGLID();
|
||||||
fntdominant = GFont::fromFile(GetFileInPath("/content/font/dominant.fnt"));
|
fntdominant = GFont::fromFile(GetFileInPath("/content/font/dominant.fnt"));
|
||||||
fntlighttrek = GFont::fromFile(GetFileInPath("/content/font/lighttrek.fnt"));
|
fntlighttrek = GFont::fromFile(GetFileInPath("/content/font/lighttrek.fnt"));
|
||||||
sky = Sky::create(NULL, ExePath() + "/content/sky/");
|
sky = Sky::create(NULL, ExePath() + "/content/sky/");
|
||||||
|
cursorid = cursor->openGLID();
|
||||||
applet->run();
|
applet->run();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
App::App(const GAppSettings& settings) : GApp(settings) {
|
App::App(const GAppSettings& settings, GWindow* wnd) : GApp(settings, wnd) {
|
||||||
applet = new Demo(this);
|
applet = new Demo(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -701,7 +806,27 @@ App::~App() {
|
|||||||
delete applet;
|
delete applet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
|
{
|
||||||
|
switch(msg)
|
||||||
|
{
|
||||||
|
case WM_CLOSE:
|
||||||
|
DestroyWindow(hwnd);
|
||||||
|
break;
|
||||||
|
case WM_DESTROY:
|
||||||
|
PostQuitMessage(0);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return DefWindowProc(hwnd, msg, wParam, lParam);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
|
//_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
|
||||||
|
//_CrtSetBreakAlloc(1279);
|
||||||
|
|
||||||
GAppSettings settings;
|
GAppSettings settings;
|
||||||
if(getOSVersion() > 5.0)
|
if(getOSVersion() > 5.0)
|
||||||
settings.window.defaultIconFilename = GetFileInPath("/content/images/rico.png");
|
settings.window.defaultIconFilename = GetFileInPath("/content/images/rico.png");
|
||||||
@@ -709,8 +834,14 @@ int main(int argc, char** argv) {
|
|||||||
settings.window.defaultIconFilename = GetFileInPath("/content/images/rico256c.png");
|
settings.window.defaultIconFilename = GetFileInPath("/content/images/rico256c.png");
|
||||||
settings.window.resizable = true;
|
settings.window.resizable = true;
|
||||||
settings.writeLicenseFile = false;
|
settings.writeLicenseFile = false;
|
||||||
App app = App(settings);
|
|
||||||
//app.window()->setIcon(ExePath() + "/content/images/rico.png");
|
//Using the damned SDL window now
|
||||||
|
SDLWindow* wnd = new SDLWindow(settings.window);
|
||||||
|
//wnd->setInputCaptureCount(200);
|
||||||
|
wnd->setMouseVisible(false);
|
||||||
|
App app = App(settings, wnd);
|
||||||
|
HWND hwnd = wnd->win32HWND();
|
||||||
|
|
||||||
app.run();
|
app.run();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user