All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.badlogic.gdx.assets.loaders.resolvers.ResolutionFileResolver Maven / Gradle / Ivy

Go to download

JVM AOT compiler currently generating JavaScript, Haxe, with initial focus on Kotlin and games.

There is a newer version: 0.6.7
Show newest version
/*******************************************************************************
 * Copyright 2011 See AUTHORS file.
 * 

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *

* http://www.apache.org/licenses/LICENSE-2.0 *

* Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ******************************************************************************/ package com.badlogic.gdx.assets.loaders.resolvers; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.assets.loaders.FileHandleResolver; import com.badlogic.gdx.files.FileHandle; import com.jtransc.media.limelibgdx.LimeFileHandle; public class ResolutionFileResolver implements FileHandleResolver { public static class Resolution { public final int portraitWidth; public final int portraitHeight; public final String folder; public Resolution(int portraitWidth, int portraitHeight, String folder) { this.portraitWidth = portraitWidth; this.portraitHeight = portraitHeight; this.folder = folder; } } protected final FileHandleResolver baseResolver; protected final Resolution[] descriptors; public ResolutionFileResolver(FileHandleResolver baseResolver, Resolution... descriptors) { this.baseResolver = baseResolver; this.descriptors = descriptors; } @Override public FileHandle resolve(String fileName) { Resolution bestDesc = choose(descriptors); FileHandle originalHandle = new LimeFileHandle(fileName); FileHandle handle = baseResolver.resolve(resolve(originalHandle, bestDesc.folder)); if (!handle.exists()) handle = baseResolver.resolve(fileName); return handle; } protected String resolve(FileHandle originalHandle, String suffix) { return originalHandle.parent() + "/" + suffix + "/" + originalHandle.name(); } static public Resolution choose(Resolution... descriptors) { int width = 0; if (Gdx.graphics.getWidth() > Gdx.graphics.getHeight()) { width = Gdx.graphics.getHeight(); } else { width = Gdx.graphics.getWidth(); } Resolution bestDesc = null; // Find lowest. int best = Integer.MAX_VALUE; for (int i = 0, n = descriptors.length; i < n; i++) { if (descriptors[i].portraitWidth < best) { best = descriptors[i].portraitWidth; bestDesc = descriptors[i]; } } // Find higher, but not over the screen res. best = Integer.MAX_VALUE; for (int i = 0, n = descriptors.length; i < n; i++) { if (descriptors[i].portraitWidth <= width) { best = descriptors[i].portraitWidth; bestDesc = descriptors[i]; } } return bestDesc; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy