remove creation of DX11 renderer

This commit is contained in:
DrPerkyLegit 2026-04-26 20:59:54 -04:00 committed by neoapps-dev
parent 572fbcb0b6
commit f7e0f8f381
4 changed files with 112 additions and 14 deletions

View file

@ -438,6 +438,7 @@ static bool Win64_DeleteSaveDirectory(const wchar_t* wPath)
// This function performs the meat of exiting from a level. It should be called from a thread other than the main thread.
void IUIScene_PauseMenu::_ExitWorld(LPVOID lpParameter)
{
#ifndef MINECRAFT_SERVER_BUILD
Minecraft *pMinecraft=Minecraft::GetInstance();
// 4J Added: Capture hardcore delete info before the server is destroyed
@ -724,6 +725,7 @@ void IUIScene_PauseMenu::_ExitWorld(LPVOID lpParameter)
// Make sure we don't think saving is disabled in the menus
StorageManager.SetSaveDisabled(false);
#endif
#endif
}
@ -780,4 +782,4 @@ int IUIScene_PauseMenu::DisableAutosaveDialogReturned(void *pParam,int iPad,C4JS
app.SetAction(iPad,eAppAction_SaveGame);
}
return 0;
}
}

View file

@ -141,8 +141,9 @@ LevelRenderer::LevelRenderer(Minecraft *mc, Textures *textures)
culledEntities = 0;
chunkFixOffs = 0;
frame = 0;
#ifndef MINECRAFT_SERVER_BUILD
repeatList = MemoryTracker::genLists(1);
#endif
destroyProgress = 0.0f;
totalChunks= offscreenChunks= occludedChunks= renderedChunks= emptyChunks = 0;
@ -171,7 +172,7 @@ LevelRenderer::LevelRenderer(Minecraft *mc, Textures *textures)
this->mc = mc;
this->textures = textures;
#ifndef MINECRAFT_SERVER_BUILD
chunkLists = MemoryTracker::genLists(getGlobalChunkCount() * CHUNK_RENDER_LAYERS); // One render list per chunk render layer.
globalChunkFlags = new unsigned char[getGlobalChunkCount()];
memset(globalChunkFlags, 0, getGlobalChunkCount());
@ -261,6 +262,7 @@ LevelRenderer::LevelRenderer(Minecraft *mc, Textures *textures)
t->end();
glEndList();
}
#endif
Chunk::levelRenderer = this;
@ -536,6 +538,7 @@ void LevelRenderer::allChanged(int playerIndex)
void LevelRenderer::renderEntities(Vec3 *cam, Culler *culler, float a)
{
#ifndef MINECRAFT_SERVER_BUILD
if (mc == nullptr || mc->player == nullptr)
{
return;
@ -662,6 +665,7 @@ void LevelRenderer::renderEntities(Vec3 *cam, Culler *culler, float a)
LeaveCriticalSection(&m_csRenderableTileEntities);
mc->gameRenderer->turnOffLightLayer(a); // 4J - brought forward from 1.8.2
#endif
}
wstring LevelRenderer::gatherStats1()
@ -3960,7 +3964,9 @@ int LevelRenderer::rebuildChunkThreadProc(LPVOID lpParam)
AABB::CreateNewThreadStorage();
IntCache::CreateNewThreadStorage();
Tesselator::CreateNewThreadStorage(1024*1024);
#ifndef MINECRAFT_SERVER_BUILD
RenderManager.InitialiseContext();
#endif
Chunk::CreateNewThreadStorage();
Tile::CreateNewThreadStorage();

View file

@ -141,8 +141,10 @@ Minecraft::Minecraft(Component *mouseComponent, Canvas *parent, MinecraftApplet
user = nullptr;
parent = nullptr;
pause = false;
#ifndef MINECRAFT_SERVER_BUILD
textures = nullptr;
font = nullptr;
#endif
screen = nullptr;
localPlayerIdx = 0;
rightClickDelay = 0;
@ -151,8 +153,9 @@ Minecraft::Minecraft(Component *mouseComponent, Canvas *parent, MinecraftApplet
InitializeCriticalSection( &ProgressRenderer::s_progress );
InitializeCriticalSection(&m_setLevelCS);
//m_hPlayerRespawned = CreateEvent(nullptr, FALSE, FALSE, nullptr);
#ifndef MINECRAFT_SERVER_BUILD
progressRenderer = nullptr;
#endif
gameRenderer = nullptr;
bgLoader = nullptr;
@ -166,8 +169,12 @@ Minecraft::Minecraft(Component *mouseComponent, Canvas *parent, MinecraftApplet
orgWidth = orgHeight = 0;
achievementPopup = new AchievementPopup(this);
gui = nullptr;
#ifndef MINECRAFT_SERVER_BUILD
noRender = false;
humanoidModel = new HumanoidModel(0);
#else
noRender = true;
#endif
hitResult = nullptr;
options = nullptr;
soundEngine = new SoundEngine();
@ -338,12 +345,13 @@ void Minecraft::init()
options = new Options(this, workingDirectory);
skins = new TexturePackRepository(workingDirectory, this);
skins->addDebugPacks();
#ifndef MINECRAFT_SERVER_BUILD
textures = new Textures(skins, options);
//renderLoadingScreen();
font = new Font(options, L"font/Default.png", textures, false, &DEFAULT_FONT_LOCATION, 23, 20, 8, 8, SFontData::Codepoints);
altFont = new Font(options, L"font/alternate.png", textures, false, &ALT_FONT_LOCATION, 16, 16, 8, 8);
#endif
//if (options.languageCode != null) {
// Language.getInstance().loadLanguage(options.languageCode);
// // font.setEnforceUnicodeSheet("true".equalsIgnoreCase(I18n.get("language.enforceUnicode")));
@ -357,7 +365,9 @@ void Minecraft::init()
//FoliageColor::init(textures->loadTexturePixels(L"misc/foliagecolor.png"));
gameRenderer = new GameRenderer(this);
#ifndef MINECRAFT_SERVER_BUILD
EntityRenderDispatcher::instance->itemInHandRenderer = new ItemInHandRenderer(this,false);
#endif
for( int i=0 ; i<4 ; ++i )
stats[i] = new StatsCounter();
@ -384,6 +394,7 @@ void Minecraft::init()
e.printStackTrace();
}
#endif
#ifndef MINECRAFT_SERVER_BUILD
MemSect(31);
checkGlError(L"Pre startup");
@ -407,12 +418,17 @@ void Minecraft::init()
MemSect(31);
checkGlError(L"Startup");
MemSect(0);
#endif
// openGLCapabilities = new OpenGLCapabilities(); // 4J - removed
#ifndef MINECRAFT_SERVER_BUILD
levelRenderer = new LevelRenderer(this, textures);
#else
levelRenderer = new LevelRenderer(this, nullptr);
#endif
//textures->register(&TextureAtlas::LOCATION_BLOCKS, new TextureAtlas(Icon::TYPE_TERRAIN, TN_TERRAIN));
//textures->register(&TextureAtlas::LOCATION_ITEMS, new TextureAtlas(Icon::TYPE_ITEM, TN_GUI_ITEMS));
#ifndef MINECRAFT_SERVER_BUILD
textures->stitch();
glViewport(0, 0, width, height);
@ -424,6 +440,7 @@ void Minecraft::init()
MemSect(0);
gui = new Gui(this);
if (connectToIp != L"") // 4J - was nullptr comparison
{
// setScreen(new ConnectScreen(this, connectToIp, connectToPort)); // 4J TODO - put back in
@ -435,6 +452,7 @@ void Minecraft::init()
progressRenderer = new ProgressRenderer(this);
RenderManager.CBuffLockStaticCreations();
#endif
}
void Minecraft::renderLoadingScreen()
@ -1262,11 +1280,14 @@ void Minecraft::run_middle()
if(running)
{
#ifndef MINECRAFT_SERVER_BUILD
if (reloadTextures)
{
reloadTextures = false;
textures->reloadAll();
}
#endif
//while (running)
{
@ -2340,13 +2361,18 @@ void Minecraft::tick(bool bFirst, bool bUpdateTextures)
// soundEngine.playMusicTick();
if (!pause && level != nullptr) gameMode->tick();
#ifndef MINECRAFT_SERVER_BUILD
MemSect(31);
glBindTexture(GL_TEXTURE_2D, textures->loadTexture(TN_TERRAIN)); //L"/terrain.png"));
MemSect(0);
#endif
if( bFirst )
{
PIXBeginNamedEvent(0,"Texture tick");
#ifndef MINECRAFT_SERVER_BUILD
if (!pause) textures->tick(bUpdateTextures);
#endif
PIXEndNamedEvent();
}
@ -4360,12 +4386,13 @@ void Minecraft::setLevel(MultiPlayerLevel *level, int message /*=-1*/, shared_pt
EnterCriticalSection(&m_setLevelCS);
bool playerAdded = false;
this->cameraTargetPlayer = nullptr;
#ifdef MINECRAFT_SERVER_BUILD
if(progressRenderer != nullptr)
{
this->progressRenderer->progressStart(message);
this->progressRenderer->progressStage(-1);
}
#endif
// Stop menu music and transition to game music for the new level
soundEngine->playStreaming(L"", 0, 0, 0, 1, 1);
@ -4588,11 +4615,14 @@ void Minecraft::setLevel(MultiPlayerLevel *level, int message /*=-1*/, shared_pt
void Minecraft::prepareLevel(int title)
{
#ifndef MINECRAFT_SERVER_BUILD
if(progressRenderer != nullptr)
{
this->progressRenderer->progressStart(title);
this->progressRenderer->progressStage(IDS_PROGRESS_BUILDING_TERRAIN);
}
#endif
int r = 128;
if (gameMode->isCutScene()) r = 64;
int pp = 0;
@ -4616,7 +4646,7 @@ void Minecraft::prepareLevel(int title)
spcc->centerOn(spawnPos->x >> 4, spawnPos->z >> 4);
}
#endif
#ifndef MINECRAFT_SERVER_BUILD
for (int x = -r; x <= r; x += 16)
{
for (int z = -r; z <= r; z += 16)
@ -4632,7 +4662,8 @@ void Minecraft::prepareLevel(int title)
{
if(progressRenderer != nullptr) this->progressRenderer->progressStage(IDS_PROGRESS_SIMULATING_WORLD);
max = 2000;
}
}
#endif
}
wstring Minecraft::gatherStats1()
@ -4892,8 +4923,10 @@ void Minecraft::main()
useLomp = true;
MinecraftWorld_RunStaticCtors();
#ifndef MINECRAFT_SERVER_BUILD
EntityRenderDispatcher::staticCtor();
TileEntityRenderDispatcher::staticCtor();
#endif
User::staticCtor();
Tutorial::staticCtor();
ColourTable::staticCtor();

View file

@ -559,8 +559,10 @@ MinecraftServer::MinecraftServer()
m_bLoaded = false;
stopped = false;
tickCount = 0;
#ifndef MINECRAFT_SERVER_BUILD
wstring progressStatus;
progress = 0;
#endif
motd = L"";
m_isServerPaused = false;
@ -736,8 +738,10 @@ bool MinecraftServer::initServer(int64_t seed, NetworkGameInitData *initData, DW
pLevelType = LevelType::lvl_normal;
}
#ifndef MINECRAFT_SERVER_BUILD
ProgressRenderer *mcprogress = Minecraft::GetInstance()->progressRenderer;
mcprogress->progressStart(IDS_PROGRESS_INITIALISING_SERVER);
#endif
if( findSeed )
{
@ -876,7 +880,9 @@ void MinecraftServer::postProcessTerminate(ProgressRenderer *mcprogress)
if( postProcessItemCount )
{
#ifndef MINECRAFT_SERVER_BUILD
mcprogress->progressStagePercentage((postProcessItemCount - postProcessItemRemaining) * 100 / postProcessItemCount);
#endif
}
CompressedTileStorage::tick();
SparseLightStorage::tick();
@ -1030,7 +1036,7 @@ bool MinecraftServer::loadLevel(LevelStorageSource *storageSource, const wstring
players->setLevel(levels);
}
#ifndef MINECRAFT_SERVER_BUILD
if( levels[0]->isNew )
{
mcprogress->progressStage(IDS_PROGRESS_GENERATING_SPAWN_AREA);
@ -1039,6 +1045,7 @@ bool MinecraftServer::loadLevel(LevelStorageSource *storageSource, const wstring
{
mcprogress->progressStage(IDS_PROGRESS_LOADING_SPAWN_AREA);
}
#endif
app.SetGameHostOption( eGameHostOption_HasBeenInCreative, gameType == GameType::CREATIVE || levels[0]->getHasBeenInCreative() );
app.SetGameHostOption( eGameHostOption_Structures, levels[0]->isGenerateMapFeatures() );
@ -1151,7 +1158,12 @@ bool MinecraftServer::loadLevel(LevelStorageSource *storageSource, const wstring
{
delete spawnPos;
m_postUpdateTerminate = true;
#ifndef MINECRAFT_SERVER_BUILD
postProcessTerminate(mcprogress);
#else
postProcessTerminate(nullptr);
#endif
return false;
}
// printf(">>>%d %d %d\n",i,x,z);
@ -1161,7 +1173,9 @@ bool MinecraftServer::loadLevel(LevelStorageSource *storageSource, const wstring
{
int pos = (x + r) * twoRPlusOne + (z + 1);
// setProgress(L"Preparing spawn area", (pos) * 100 / total);
#ifndef MINECRAFT_SERVER_BUILD
mcprogress->progressStagePercentage((pos+r) * 100 / total);
#endif
// lastTime = now;
}
static int count = 0;
@ -1203,7 +1217,11 @@ bool MinecraftServer::loadLevel(LevelStorageSource *storageSource, const wstring
// Wait for post processing, then lighting threads, to end (post-processing may make more lighting changes)
m_postUpdateTerminate = true;
#ifndef MINECRAFT_SERVER_BUILD
postProcessTerminate(mcprogress);
#else
postProcessTerminate(nullptr);
#endif
// stronghold position?
@ -1245,14 +1263,22 @@ bool MinecraftServer::loadLevel(LevelStorageSource *storageSource, const wstring
if( levels[1]->isNew )
{
#ifndef MINECRAFT_SERVER_BUILD
levels[1]->save(true, mcprogress);
#else
levels[1]->save(true, nullptr);
#endif
}
if( s_bServerHalted || !g_NetworkManager.IsInSession() ) return false;
if( levels[2]->isNew )
{
#ifndef MINECRAFT_SERVER_BUILD
levels[2]->save(true, mcprogress);
#else
levels[2]->save(true, nullptr);
#endif
}
if( s_bServerHalted || !g_NetworkManager.IsInSession() ) return false;
@ -1264,7 +1290,11 @@ bool MinecraftServer::loadLevel(LevelStorageSource *storageSource, const wstring
if( levels[0]->isNew )
{
#ifndef MINECRAFT_SERVER_BUILD
levels[0]->save(true, mcprogress);
#else
levels[0]->save(true, nullptr);
#endif
}
if( s_bServerHalted || !g_NetworkManager.IsInSession() ) return false;
@ -1366,15 +1396,19 @@ void MinecraftServer::overwriteHellBordersForNewWorldSize(ServerLevel* level, in
void MinecraftServer::setProgress(const wstring& status, int progress)
{
#ifndef MINECRAFT_SERVER_BUILD
progressStatus = status;
this->progress = progress;
#endif
// logger.info(status + ": " + progress + "%");
}
void MinecraftServer::endProgress()
{
#ifndef MINECRAFT_SERVER_BUILD
progressStatus = L"";
this->progress = 0;
#endif
}
void MinecraftServer::saveAllChunks()
@ -1392,8 +1426,11 @@ void MinecraftServer::saveAllChunks()
ServerLevel *level = levels[levels.length - 1 - i];
if( level ) // 4J - added check as level can be nullptr if we end up in stopServer really early on due to network failure
{
#ifndef MINECRAFT_SERVER_BUILD
level->save(true, Minecraft::GetInstance()->progressRenderer);
#else
level->save(true, nullptr);
#endif
// Only close the level storage when we have saved the last level, otherwise we need to recreate the region files
// when saving the next levels
if( i == (levels.length - 1))
@ -1524,7 +1561,11 @@ void MinecraftServer::stopServer(bool didInit)
{
if (players != nullptr)
{
#ifndef MINECRAFT_SERVER_BUILD
players->saveAll(Minecraft::GetInstance()->progressRenderer, true);
#else
players->saveAll(nullptr, true);
#endif
}
// 4J Stu - Save the levels in reverse order so we don't overwrite the level.dat
// with the data from the nethers leveldata.
@ -1542,7 +1583,11 @@ void MinecraftServer::stopServer(bool didInit)
app.m_gameRules.unloadCurrentGameRules();
if( levels[0] != nullptr ) // This can be null if stopServer happens very quickly due to network error
{
#ifndef MINECRAFT_SERVER_BUILD
levels[0]->saveToDisc(Minecraft::GetInstance()->progressRenderer, false);
#else
levels[0]->saveToDisc(nullptr, false);
#endif
}
}
}
@ -2005,7 +2050,11 @@ void MinecraftServer::run(int64_t seed, void *lpParameter)
app.EnterSaveNotificationSection();
if (players != nullptr)
{
players->saveAll(Minecraft::GetInstance()->progressRenderer);
#ifndef MINECRAFT_SERVER_BUILD
players->saveAll(Minecraft::GetInstance()->progressRenderer);
#else
players->saveAll(nullptr);
#endif
}
players->broadcastAll(std::make_shared<UpdateProgressPacket>(20));
@ -2017,7 +2066,11 @@ void MinecraftServer::run(int64_t seed, void *lpParameter)
// with the data from the nethers leveldata.
// Fix for #7418 - Functional: Gameplay: Saving after sleeping in a bed will place player at nighttime when restarting.
ServerLevel *level = levels[levels.length - 1 - j];
#ifndef MINECRAFT_SERVER_BUILD
level->save(true, Minecraft::GetInstance()->progressRenderer, (eAction==eXuiServerAction_AutoSaveGame));
#else
level->save(true, nullptr, (eAction == eXuiServerAction_AutoSaveGame));
#endif
players->broadcastAll(std::make_shared<UpdateProgressPacket>(33 + (j * 33)));
}
@ -2025,7 +2078,11 @@ void MinecraftServer::run(int64_t seed, void *lpParameter)
{
saveGameRules();
levels[0]->saveToDisc(Minecraft::GetInstance()->progressRenderer, (eAction==eXuiServerAction_AutoSaveGame));
#ifndef MINECRAFT_SERVER_BUILD
levels[0]->saveToDisc(Minecraft::GetInstance()->progressRenderer, (eAction == eXuiServerAction_AutoSaveGame));
#else
levels[0]->saveToDisc(nullptr, (eAction == eXuiServerAction_AutoSaveGame));
#endif
}
app.LeaveSaveNotificationSection();
break;