- client connected menu now uses same rendering as custom game menu for map preview (resulting in better fps there)
This commit is contained in:
parent
8c39a1b725
commit
05a61ec619
|
@ -73,6 +73,7 @@ MenuStateConnectedGame::MenuStateConnectedGame(Program *program, MainMenu *mainM
|
|||
lastCheckedCRCTechtreeValue = -1;
|
||||
lastCheckedCRCMapValue = -1;
|
||||
|
||||
mapPreviewTexture=NULL;
|
||||
currentFactionLogo = "";
|
||||
factionTexture=NULL;
|
||||
lastMissingMap="";
|
||||
|
@ -477,6 +478,8 @@ MenuStateConnectedGame::~MenuStateConnectedGame() {
|
|||
ftpClientThread = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
cleanupMapPreviewTexture();
|
||||
}
|
||||
|
||||
void MenuStateConnectedGame::mouseClick(int x, int y, MouseButton mouseButton){
|
||||
|
@ -796,6 +799,10 @@ void MenuStateConnectedGame::render() {
|
|||
//renderer.renderTextureQuad(60+575+80,365,200,225,factionTexture,1);
|
||||
renderer.renderTextureQuad(800,600,200,150,factionTexture,1);
|
||||
}
|
||||
if(mapPreviewTexture != NULL) {
|
||||
renderer.renderTextureQuad(5,185,150,150,mapPreviewTexture,1.0f);
|
||||
//printf("=================> Rendering map preview texture\n");
|
||||
}
|
||||
|
||||
renderer.renderButton(&buttonDisconnect);
|
||||
|
||||
|
@ -951,9 +958,11 @@ void MenuStateConnectedGame::render() {
|
|||
int mouseY = mainMenu->getMouseY();
|
||||
int mouse2dAnim = mainMenu->getMouse2dAnim();
|
||||
|
||||
renderer.renderMouse2d(mouseX, mouseY, mouse2dAnim);
|
||||
bool renderAll = (listBoxFogOfWar.getSelectedItemIndex() == 2);
|
||||
renderer.renderMapPreview(&mapPreview, renderAll, 10, 350);
|
||||
if(mapPreviewTexture == NULL) {
|
||||
renderer.renderMouse2d(mouseX, mouseY, mouse2dAnim);
|
||||
bool renderAll = (listBoxFogOfWar.getSelectedItemIndex() == 2);
|
||||
renderer.renderMapPreview(&mapPreview, renderAll, 10, 350, &mapPreviewTexture);
|
||||
}
|
||||
}
|
||||
renderer.renderChatManager(&chatManager);
|
||||
renderer.renderConsole(&console,showFullConsole,true);
|
||||
|
@ -2090,12 +2099,16 @@ bool MenuStateConnectedGame::loadMapInfo(string file, MapInfo *mapInfo, bool loa
|
|||
// Not painting properly so this is on hold
|
||||
if(loadMapPreview == true) {
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
mapPreview.loadFromFile(file.c_str());
|
||||
if(mapPreview.getMapFileLoaded() != file) {
|
||||
mapPreview.loadFromFile(file.c_str());
|
||||
cleanupMapPreviewTexture();
|
||||
}
|
||||
}
|
||||
|
||||
mapLoaded = true;
|
||||
}
|
||||
else {
|
||||
cleanupMapPreviewTexture();
|
||||
mapInfo->desc = ITEM_MISSING;
|
||||
|
||||
NetworkManager &networkManager= NetworkManager::getInstance();
|
||||
|
@ -2180,6 +2193,23 @@ int32 MenuStateConnectedGame::getNetworkPlayerStatus() {
|
|||
return result;
|
||||
}
|
||||
|
||||
void MenuStateConnectedGame::cleanupMapPreviewTexture() {
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
|
||||
//printf("CLEANUP map preview texture\n");
|
||||
|
||||
if(mapPreviewTexture != NULL) {
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
|
||||
mapPreviewTexture->end();
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
delete mapPreviewTexture;
|
||||
mapPreviewTexture = NULL;
|
||||
}
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
}
|
||||
|
||||
void MenuStateConnectedGame::FTPClient_CallbackEvent(string itemName,
|
||||
FTP_Client_CallbackType type, pair<FTP_Client_ResultType,string> result, void *userdata) {
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
|
|
|
@ -98,6 +98,7 @@ private:
|
|||
GraphicLabel labelDataSynchInfo;
|
||||
|
||||
MapInfo mapInfo;
|
||||
Texture2D *mapPreviewTexture;
|
||||
|
||||
bool needToSetChangedGameSettings;
|
||||
time_t lastSetChangedGameSettings;
|
||||
|
@ -200,6 +201,7 @@ private:
|
|||
FTP_Client_CallbackType type, pair<FTP_Client_ResultType,string> result,void *userdata);
|
||||
|
||||
int32 getNetworkPlayerStatus();
|
||||
void cleanupMapPreviewTexture();
|
||||
};
|
||||
|
||||
}}//end namespace
|
||||
|
|
|
@ -1391,9 +1391,9 @@ void MenuStateCustomGame::render() {
|
|||
int mouse2dAnim = mainMenu->getMouse2dAnim();
|
||||
|
||||
renderer.renderMouse2d(mouseX, mouseY, mouse2dAnim);
|
||||
bool renderAll = (listBoxFogOfWar.getSelectedItemIndex() == 2);
|
||||
|
||||
if(mapPreviewTexture == NULL) {
|
||||
bool renderAll = (listBoxFogOfWar.getSelectedItemIndex() == 2);
|
||||
//printf("=================> Rendering map preview into a texture BEFORE (%p)\n", mapPreviewTexture);
|
||||
renderer.renderMapPreview(&mapPreview, renderAll, 10, 350,&mapPreviewTexture);
|
||||
//printf("=================> Rendering map preview into a texture AFTER (%p)\n", mapPreviewTexture);
|
||||
|
|
|
@ -124,6 +124,7 @@ private:
|
|||
int refAlt;
|
||||
|
||||
bool fileLoaded;
|
||||
string mapFileLoaded;
|
||||
|
||||
public:
|
||||
MapPreview();
|
||||
|
@ -186,6 +187,7 @@ public:
|
|||
void applyNewHeight(float newHeight, int x, int y, int strenght);
|
||||
|
||||
bool hasFileLoaded() const {return fileLoaded;}
|
||||
string getMapFileLoaded() const { return mapFileLoaded; }
|
||||
};
|
||||
|
||||
}}// end namespace
|
||||
|
|
|
@ -28,6 +28,7 @@ namespace Shared { namespace Map {
|
|||
// ================== PUBLIC =====================
|
||||
|
||||
MapPreview::MapPreview() {
|
||||
mapFileLoaded = "";
|
||||
fileLoaded = false;
|
||||
heightFactor = DEFAULT_MAP_CELL_HEIGHT_FACTOR;
|
||||
waterLevel = DEFAULT_MAP_WATER_DEPTH;
|
||||
|
@ -741,6 +742,7 @@ void MapPreview::loadFromFile(const string &path) {
|
|||
fclose(f1);
|
||||
|
||||
fileLoaded = true;
|
||||
mapFileLoaded = path;
|
||||
}
|
||||
else {
|
||||
throw runtime_error("error opening map file: " + path);
|
||||
|
|
Loading…
Reference in New Issue