summaryrefslogtreecommitdiff
path: root/src/powdertoyjava/PowderToyJava.cpp
blob: 969d9b2335e21372933caa53c1526fe582568ff3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#if defined(USE_JNI) && defined(MACOSX)

#include <time.h>
#include <iostream>
#include <sstream>
#include <string>

#include "Config.h"
#include "PowderToyJava.h"
#include "Graphics.h"
#if defined(LIN32) || defined(LIN64)
#include "icon.h"
#endif

#include "game/GameController.h"

using namespace std;

GameController * gameController;
ui::Engine * engine;

int elapsedTime = 0, currentTime = 0, lastTime = 0, currentFrame = 0;
float fps = 0, delta = 1.0f;

JNIEXPORT void JNICALL Java_PowderToy_initialise(JNIEnv * env, jobject canvas)
{	
	//InitWindowMac(env, canvas);
	
	ui::Engine::Ref().g = new Graphics();
	
	engine = &ui::Engine::Ref();
	engine->Begin(XRES+BARSIZE, YRES+MENUSIZE);
	
	gameController = new GameController();
	engine->ShowWindow(gameController->GetView());
	engine->SetFps(fps);
}

JNIEXPORT void JNICALL Java_PowderToy_tick(JNIEnv * env, jobject canvas)
{
	engine->Tick();
}

JNIEXPORT void JNICALL Java_PowderToy_draw(JNIEnv * env, jobject canvas)
{
	engine->Draw();
	engine->g->Finalise();
}

JNIEXPORT void JNICALL Java_PowderToy_finish(JNIEnv * env, jobject canvas)
{
	ui::Engine::Ref().CloseWindow();
	delete gameController;
	delete ui::Engine::Ref().g;
}

JNIEXPORT jint JNICALL Java_PowderToy_getWidth(JNIEnv * env, jobject canvas)
{
	return XRES+BARSIZE;
}

JNIEXPORT jint JNICALL Java_PowderToy_getHeight(JNIEnv * env, jobject canvas)
{
	return YRES+MENUSIZE;
}

JNIEXPORT void JNICALL Java_PowderToy_mousePressed(JNIEnv * env, jobject canvas, jint mouseX, jint mouseY, jint mouseButton)
{
	engine->onMouseClick(mouseX, mouseY, mouseButton);
}

JNIEXPORT void JNICALL Java_PowderToy_mouseReleased(JNIEnv * env, jobject canvas, jint mouseX, jint mouseY, jint mouseButton)
{
	engine->onMouseUnclick(mouseX, mouseY, mouseButton);
}

JNIEXPORT void JNICALL Java_PowderToy_mouseMoved(JNIEnv * env, jobject canvas, jint mouseX, jint mouseY)
{
	engine->onMouseMove(mouseX, mouseY);
}

#endif