188 lines
4.2 KiB
C++
188 lines
4.2 KiB
C++
|
//
|
|||
|
// HalibutEngineIos.cpp
|
|||
|
// Halibut Engine
|
|||
|
//
|
|||
|
// Created by vvv ооо on 13.07.12.
|
|||
|
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
|
|||
|
//
|
|||
|
|
|||
|
#include <iostream>
|
|||
|
|
|||
|
#include "include/Engine.h"
|
|||
|
|
|||
|
#include "include/HalibutEngineIos.h"
|
|||
|
|
|||
|
namespace SE
|
|||
|
{
|
|||
|
|
|||
|
TIosConsole* Console = NULL;
|
|||
|
|
|||
|
THalibutResourceManager* ResourceManager = NULL;
|
|||
|
|
|||
|
THalibutRenderIos* Renderer = NULL;
|
|||
|
|
|||
|
|
|||
|
TApplication::TApplication()
|
|||
|
{
|
|||
|
}
|
|||
|
|
|||
|
void TApplication::OuterInit(int screenWidth, int screenHeight, float matrixWidth, float matrixHeight)
|
|||
|
{
|
|||
|
|
|||
|
OuterDeinit();
|
|||
|
|
|||
|
Console = new TIosConsole;
|
|||
|
|
|||
|
*Console<<std::string("Console successfully started!!!");
|
|||
|
|
|||
|
ResourceManager = new THalibutResourceManager;
|
|||
|
|
|||
|
Renderer = new THalibutRenderIos;
|
|||
|
|
|||
|
ResourceManager->ScriptManager.BindBasicFunctions();
|
|||
|
|
|||
|
InnerInit();
|
|||
|
|
|||
|
Renderer->InitOpenGL(screenWidth, screenHeight, matrixWidth, matrixHeight);
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
void TApplication::OuterDeinit()
|
|||
|
{
|
|||
|
if (Console != NULL)
|
|||
|
{
|
|||
|
*Console<<"OuterDeinit";
|
|||
|
}
|
|||
|
InnerDeinit();
|
|||
|
|
|||
|
|
|||
|
if (ResourceManager != NULL)
|
|||
|
{
|
|||
|
delete ResourceManager;
|
|||
|
ResourceManager = NULL;
|
|||
|
}
|
|||
|
|
|||
|
if (Renderer != NULL)
|
|||
|
{
|
|||
|
delete Renderer;
|
|||
|
Renderer = NULL;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
if (Console != NULL)
|
|||
|
{
|
|||
|
delete Console;
|
|||
|
Console = NULL;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
TApplication::~TApplication()
|
|||
|
{
|
|||
|
OuterDeinit();
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void TApplication::OnKeyPress(cardinal key)
|
|||
|
{
|
|||
|
//For Android
|
|||
|
//7-16 => "0".."9"
|
|||
|
//29-54 => "a".."z"
|
|||
|
//
|
|||
|
|
|||
|
if (IsConsoleOut)
|
|||
|
{
|
|||
|
|
|||
|
if (key == 96 || key == 126) //` or ~
|
|||
|
{
|
|||
|
|
|||
|
IsConsoleOut = false;
|
|||
|
}
|
|||
|
else if (key == 8) //Backspace
|
|||
|
{
|
|||
|
if (Console->ConsoleInput.size() > 0 && Console->ConsoleCursor > 0)
|
|||
|
{
|
|||
|
//Console->ConsoleInput.erase(Console->ConsoleInput.end()-1);
|
|||
|
Console->ConsoleInput.erase(Console->ConsoleInput.begin() + Console->ConsoleCursor-1);
|
|||
|
Console->ConsoleCursor--;
|
|||
|
}
|
|||
|
}
|
|||
|
else if (key == 13 || key == 10) //Enter
|
|||
|
{
|
|||
|
ResourceManager->ScriptManager.RunScript(Console->ConsoleInput);
|
|||
|
*Console<<"===>"+Console->ConsoleInput+"<===";
|
|||
|
|
|||
|
Console->InputHistory.push_back(Console->ConsoleInput);
|
|||
|
|
|||
|
Console->InputHistoryCursor = Console->InputHistory.size();
|
|||
|
|
|||
|
Console->ConsoleInput = "";
|
|||
|
Console->ConsoleCursor = 0;
|
|||
|
}
|
|||
|
else if (key >= 32 && key <= 255) //ASCII
|
|||
|
{
|
|||
|
//Console->ConsoleInput += static_cast<char>(key);
|
|||
|
Console->ConsoleInput.insert(Console->ConsoleInput.begin()+Console->ConsoleCursor, static_cast<char>(key));
|
|||
|
Console->ConsoleCursor++;
|
|||
|
}
|
|||
|
else if (key > 0x100) //VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT
|
|||
|
{
|
|||
|
/*
|
|||
|
cardinal realKey = key - 0x100;
|
|||
|
|
|||
|
if (realKey == VK_UP)
|
|||
|
{
|
|||
|
if (Console->InputHistoryCursor > 0)
|
|||
|
{
|
|||
|
Console->InputHistoryCursor--;
|
|||
|
Console->ConsoleInput = Console->InputHistory[Console->InputHistoryCursor];
|
|||
|
Console->ConsoleCursor = Console->ConsoleInput.size();
|
|||
|
}
|
|||
|
}
|
|||
|
if (realKey == VK_DOWN)
|
|||
|
{
|
|||
|
if ( Console->InputHistoryCursor+1 < Console->InputHistory.size())
|
|||
|
{
|
|||
|
Console->InputHistoryCursor++;
|
|||
|
Console->ConsoleInput = Console->InputHistory[Console->InputHistoryCursor];
|
|||
|
Console->ConsoleCursor = Console->ConsoleInput.size();
|
|||
|
}
|
|||
|
}
|
|||
|
if (realKey == VK_LEFT)
|
|||
|
{
|
|||
|
if (Console->ConsoleCursor > 0)
|
|||
|
{
|
|||
|
Console->ConsoleCursor--;
|
|||
|
}
|
|||
|
}
|
|||
|
if (realKey == VK_RIGHT)
|
|||
|
{
|
|||
|
if (Console->ConsoleCursor < Console->ConsoleInput.size())
|
|||
|
{
|
|||
|
Console->ConsoleCursor++;
|
|||
|
}
|
|||
|
}*/
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
*Console<<std::string("Key is ")+tostr(key);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if (key == 96 || key == 126) //~
|
|||
|
{
|
|||
|
IsConsoleOut = true;
|
|||
|
Console->ConsoleInput = "";
|
|||
|
Console->ConsoleCursor = Console->ConsoleInput.size();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
} //namespace SE
|