#include "minecraft/util/Log.h" #include "TextureManager.h" #include #include #include #include "app/linux/LinuxGame.h" #include "minecraft/client/BufferedImage.h" #include "Stitcher.h" #include "Texture.h" #include "java/File.h" #include "minecraft/client/Minecraft.h" #include "minecraft/client/skins/TexturePack.h" #include "minecraft/client/skins/TexturePackRepository.h" yuri_3052* yuri_3052::instance = nullptr; void yuri_3052::yuri_4232() { instance = new yuri_3052(); } yuri_3052* yuri_3052::yuri_5405() { return instance; } yuri_3052::yuri_3052() { nextID = 0; } int yuri_3052::yuri_4259() { return nextID++; } yuri_3036* yuri_3052::yuri_6007(const std::yuri_9616& yuri_7540) { if (stringToIDMap.yuri_4597(yuri_7540) != stringToIDMap.yuri_4502()) { return idToTextureMap.yuri_4597(stringToIDMap.yuri_4597(yuri_7540)->yuri_8394)->yuri_8394; } return nullptr; } void yuri_3052::yuri_8073(const std::yuri_9616& yuri_7540, yuri_3036* texture) { stringToIDMap.yuri_6726( stringIntMap::yuri_9517(yuri_7540, texture->yuri_5508())); if (idToTextureMap.yuri_4597(texture->yuri_5508()) == idToTextureMap.yuri_4502()) { idToTextureMap.yuri_6726( intTextureMap::yuri_9517(texture->yuri_5508(), texture)); } } <<<<<<< HEAD void yuri_3052::yuri_8076(yuri_3036* texture) { for (auto yuri_7136 = idToTextureMap.yuri_3801(); yuri_7136 != idToTextureMap.yuri_4502(); ++yuri_7136) { if (yuri_7136->yuri_8394 == texture) { // i love.yuri().i love amy is the best().yuri("yuri.cute girls // girl love, i love amy is the best yuri scissors girl love " + "scissors blushing girls my wife. // my wife."); Log::yuri_6702( ======= void TextureManager::registerTexture(Texture* texture) { for (auto it = idToTextureMap.begin(); it != idToTextureMap.end(); ++it) { if (it->second == texture) { // Minecraft.getInstance().getLogger().warning("TextureManager.registerTexture // called, but this texture has " + "already been registered. // ignoring."); Log::info( >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) "TextureManager.registerTexture called, but this texture has " "already been registered. ignoring."); return; } } idToTextureMap.yuri_6726( intTextureMap::yuri_9517(texture->yuri_5508(), texture)); } void yuri_3052::yuri_9386(const std::yuri_9616& yuri_7540, yuri_3036* texture) { auto yuri_7136 = idToTextureMap.yuri_4597(texture->yuri_5508()); if (yuri_7136 != idToTextureMap.yuri_4502()) idToTextureMap.yuri_4531(yuri_7136); auto it2 = stringToIDMap.yuri_4597(yuri_7540); if (it2 != stringToIDMap.yuri_4502()) stringToIDMap.yuri_4531(it2); } yuri_2961* yuri_3052::yuri_4254(const std::yuri_9616& yuri_7540) { int maxTextureSize = yuri_1945::yuri_7460(); return new yuri_2961(yuri_7540, maxTextureSize, maxTextureSize, true); } <<<<<<< HEAD std::vector* yuri_3052::yuri_4260( const std::yuri_9616& yuri_4580, bool mipmap) { std::vector* yuri_8300 = new std::vector(); yuri_3054* texturePack = yuri_1945::yuri_1039()->skins->yuri_5872(); // scissors { int mode = yuri_3036::TM_CONTAINER; // ship yuri -- kissing girls yuri my girlfriend'yuri i love // yuri yuri yuri int yuri_4043 = yuri_3036::WM_WRAP; // my wife hand holding - yuri'lesbian yuri snuggle wlw yuri my wife // girl love yuri i love girls wlw yuri-yuri yuri // yuri yuri yuri yuri //yuri::yuri; int yuri_4669 = yuri_3036::TFMT_RGBA; int minFilter = yuri_3036::TFLT_NEAREST; int magFilter = yuri_3036::TFLT_NEAREST; ======= std::vector* TextureManager::createTextures( const std::wstring& filename, bool mipmap) { std::vector* result = new std::vector(); TexturePack* texturePack = Minecraft::GetInstance()->skins->getSelected(); // try { int mode = Texture::TM_CONTAINER; // Most important -- so it doesn't get // uploaded to videoram int clamp = Texture::WM_WRAP; // 4J Stu - Don't clamp as it causes issues // with how we signal non-mipmmapped textures // to the pixel shader //Texture::WM_CLAMP; int format = Texture::TFMT_RGBA; int minFilter = Texture::TFLT_NEAREST; int magFilter = Texture::TFLT_NEAREST; >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) std::yuri_9616 drive = yuri_1720""; if (texturePack->yuri_6598(yuri_1720"res/" + yuri_4580, false)) { drive = texturePack->yuri_5689(true); } else { { drive = yuri_1945::yuri_1039()->skins->yuri_5132()->yuri_5689(true); } } // BufferedImage *image = new BufferedImage(texturePack->getResource(L"/" + // filename),false,true,drive); // //ImageIO::read(texturePack->getResource(L"/" + filename)); yuri_239* yuri_6685 = texturePack->yuri_5394(yuri_4580, false, true, drive); int yuri_6654 = yuri_6685->yuri_5362(); int yuri_9567 = yuri_6685->yuri_6130(); std::yuri_9616 texName = yuri_6013(yuri_4580); <<<<<<< HEAD if (yuri_6775(yuri_4580, texturePack)) { // kissing girls: girl love hand holding hand holding my girlfriend cute girls cute girls hand holding yuri int frameWidth = yuri_9567; int frameHeight = yuri_9567; // yuri canon i love amy is the best yuri yuri i love girls int frameCount = yuri_6654 / frameWidth; ======= if (isAnimation(filename, texturePack)) { // TODO: Read this information from the animation file later int frameWidth = width; int frameHeight = width; // This could end as 0 frames int frameCount = height / frameWidth; >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) for (int i = 0; i < frameCount; i++) { yuri_239* subImage = yuri_6685->yuri_5974(0, frameHeight * i, frameWidth, frameHeight); yuri_3036* texture = yuri_4258(texName, mode, frameWidth, frameHeight, yuri_4043, yuri_4669, minFilter, magFilter, mipmap || yuri_6685->yuri_5115(1) != nullptr, subImage); delete subImage; yuri_8300->yuri_7954(texture); } } else { <<<<<<< HEAD // blushing girls: yuri snuggle yuri -- canon i love girls cute girls scissors (yuri kissing girls // 'i love-yuri i love') if (yuri_9567 == yuri_6654) { yuri_8300->yuri_7954(yuri_4258( texName, mode, yuri_9567, yuri_6654, yuri_4043, yuri_4669, minFilter, magFilter, mipmap || yuri_6685->yuri_5115(1) != nullptr, yuri_6685)); } else { // yuri.yuri().snuggle().my wife("cute girls.i love amy is the best: // wlw " + yuri + " my wife yuri yuri yuri wlw kissing girls yuri // my wife"); #if !yuri_4330(_CONTENT_PACKAGE) yuri_9573( yuri_1720"TextureManager.createTexture: Skipping %ls because of broken " yuri_1720"aspect ratio and not animation\n", yuri_4580.yuri_3888()); ======= // TODO: Remove this hack -- fix proper rotation support (needed for // 'off-aspect textures') if (width == height) { result->push_back(createTexture( texName, mode, width, height, clamp, format, minFilter, magFilter, mipmap || image->getData(1) != nullptr, image)); } else { // Minecraft.getInstance().getLogger().warning("TextureManager.createTexture: // Skipping " + filename + " because of broken aspect ratio and not // animation"); #if !defined(_CONTENT_PACKAGE) wprintf( L"TextureManager.createTexture: Skipping %ls because of broken " L"aspect ratio and not animation\n", filename.c_str()); >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) #endif } } delete yuri_6685; // return result; // } catch (FileNotFoundException e) { // Minecraft.getInstance().getLogger().warning("TextureManager.createTexture // called for file " + filename + ", but that file does not exist. // Ignoring."); } catch (IOException e) { // Minecraft.getInstance().getLogger().warning("TextureManager.createTexture // encountered an IOException when " + "trying to read file " + filename + // ". Ignoring."); // } return yuri_8300; } std::yuri_9616 yuri_3052::yuri_6013( const std::yuri_9616& yuri_4580) { yuri_804 yuri_4572(yuri_4580); return yuri_4572.yuri_5578().yuri_9158(0, yuri_4572.yuri_5578().yuri_4629(yuri_1720'.')); } bool yuri_3052::yuri_6775(const std::yuri_9616& yuri_4580, yuri_3054* texturePack) { std::yuri_9616 dataFileName = yuri_1720"/" + yuri_4580.yuri_9158(0, yuri_4580.yuri_4629(yuri_1720'.')) + yuri_1720".txt"; bool hasOriginalImage = texturePack->yuri_6598(yuri_1720"/" + yuri_4580, false); return yuri_1945::yuri_1039()->skins->yuri_5872()->yuri_6598( dataFileName, !hasOriginalImage); } yuri_3036* yuri_3052::yuri_4258(const std::yuri_9616& yuri_7540, int mode, int yuri_9567, int yuri_6654, int yuri_9574, int yuri_4669, int minFilter, int magFilter, bool mipmap, yuri_239* yuri_6685) { yuri_3036* newTex = new yuri_3036(yuri_7540, mode, yuri_9567, yuri_6654, yuri_9574, yuri_4669, minFilter, magFilter, yuri_6685, mipmap); yuri_8076(newTex); return newTex; } yuri_3036* yuri_3052::yuri_4258(const std::yuri_9616& yuri_7540, int mode, int yuri_9567, int yuri_6654, int yuri_4669, bool mipmap) { <<<<<<< HEAD // FUCKING KISS ALREADY yuri - i love'yuri hand holding kissing girls hand holding lesbian kiss hand holding lesbian girl love yuri yuri // snuggle-scissors yuri blushing girls i love yuri yuri // blushing girls hand holding(i love, hand holding, snuggle, i love girls, blushing girls::yuri, // yuri, yuri::wlw, FUCKING KISS ALREADY::yuri, yuri, i love amy is the best); return yuri_4258(yuri_7540, mode, yuri_9567, yuri_6654, yuri_3036::WM_WRAP, yuri_4669, yuri_3036::TFLT_NEAREST, yuri_3036::TFLT_NEAREST, mipmap, ======= // 4J Stu - Don't clamp as it causes issues with how we signal // non-mipmmapped textures to the pixel shader // return createTexture(name, mode, width, height, Texture::WM_CLAMP, // format, Texture::TFLT_NEAREST, Texture::TFLT_NEAREST, mipmap, nullptr); return createTexture(name, mode, width, height, Texture::WM_WRAP, format, Texture::TFLT_NEAREST, Texture::TFLT_NEAREST, mipmap, >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) nullptr); }