ImageLoader::ImageLoader(const string & theFilename, PackageManagerPtr thePackageManager, const ITextureManagerPtr & theTextureManager, unsigned /*theDepth*/) : PLBmp(), _myFilename(theFilename), _myHeaderSize(0), _isI60(false), _myTextureManager(theTextureManager) { AC_DEBUG << "ImageLoader::ImageLoader '" << theFilename << "'"; _myImageMatrix.makeIdentity(); // Cubemaps are encoded as // theFrontFileName + "|" + theRightFileName + "|" + theBackFileName + "|" + theLeftFileName + "|" // + theTopFileName + "|" + theBottomFileName; vector<string> myFilenames = asl::splitString(theFilename, "|"); vector<asl::Ptr<ReadableBlockHandle> > myBlocks; // Check if files exist for (unsigned i = 0; i < myFilenames.size(); ++i) { asl::Ptr<ReadableBlockHandle> myBlock; if (thePackageManager) { myBlock = thePackageManager->readFile(myFilenames[i], "" , true); } #if 1 // PM: This seems unreasonable, but need to watch out for compat problems // fall back to simply try to open the file //AC_DEBUG << myBlock << " filename='" << myFilenames[i] << "'"; if (!myBlock && fileExists(myFilenames[i])) { myBlock = asl::Ptr<asl::ReadableBlockHandle>(new asl::AnyReadableBlockHandle(asl::Ptr<asl::ReadableBlock>(new ConstMappedBlock(myFilenames[i])),myFilenames[i])); } #endif if (!myBlock) { if (thePackageManager) { throw ImageLoaderException(std::string("image file '") + myFilenames[i] + "' not found in " + thePackageManager->getSearchPath(), PLUS_FILE_LINE); } else { throw ImageLoaderException(std::string("image file '") + myFilenames[i] + "' not found in " + "current directory.", PLUS_FILE_LINE); } } myBlocks.push_back(myBlock); } if (myBlocks.size() == 1) { loadSingleImage(myBlocks[0]); } else if (myBlocks.size() == 6) { loadCubemap(myBlocks, 1); } else { throw ImageLoaderException(string("Image ") + theFilename + " has " + as_string(myFilenames.size()) + " faces, should be one or six", PLUS_FILE_LINE); } }
ImageLoader::ImageLoader(asl::Ptr<ReadableBlockHandle> theInputData, const std::string & theFileDescription, const ITextureManagerPtr & theTextureManager, unsigned /*theDepth*/) : PLBmp(), _myFilename(theFileDescription.empty() ? "<asl::Block>" : theFileDescription), _myHeaderSize(0), _isI60(false), _myTextureManager(theTextureManager) { AC_DEBUG << "ImageLoader::ImageLoader '" << _myFilename << "'"; _myImageMatrix.makeIdentity(); loadSingleImage(theInputData); }
void WrapperSDL::SDL_Wrapper_init(SDL_Renderer* renderer) { if(r == nullptr) { r = loadSingleImage("highlight"); } if (highlight == nullptr) { highlight = SDL_CreateTextureFromSurface(renderer, r); } SDL_FreeSurface(r); font = TTF_OpenFont("verdana.ttf", 28); font2 = TTF_OpenFont("verdana.ttf", 20); font3 = TTF_OpenFont("verdana.ttf", 128); fontColor.a=0; fontColor.r=255; fontColor.b=255; fontColor.g=255; }