Subversion Repositories AndroidProjects

Rev

Rev 1738 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1734 chris 1
package com.gebauz.bauzoid2.graphics.model;
1712 chris 2
 
3
import com.badlogic.gdx.assets.AssetDescriptor;
4
import com.badlogic.gdx.assets.AssetLoaderParameters;
5
import com.badlogic.gdx.assets.AssetManager;
6
import com.badlogic.gdx.assets.loaders.AsynchronousAssetLoader;
7
import com.badlogic.gdx.assets.loaders.FileHandleResolver;
8
import com.badlogic.gdx.files.FileHandle;
1738 chris 9
import com.badlogic.gdx.graphics.Texture;
1712 chris 10
import com.badlogic.gdx.utils.Array;
1738 chris 11
import com.gebauz.bauzoid2.game.Engine;
1712 chris 12
 
1745 chris 13
/** Asynchronous Loader for Gdx models. */
1734 chris 14
public class GdxModelAsyncLoader extends AsynchronousAssetLoader<Model, GdxModelAsyncLoader.Parameter>
1712 chris 15
{
16
 
17
        // Constants========================================================================================
18
 
19
        // Embedded Types===================================================================================
1734 chris 20
        static public class Parameter extends AssetLoaderParameters<Model>
1712 chris 21
        {
22
        }
23
 
24
        // Fields===========================================================================================
1738 chris 25
 
1737 chris 26
    private GdxModelUtil.GdxModelDescriptor mModelDescriptor = null;
1712 chris 27
 
28
        // Methods==========================================================================================
29
 
1734 chris 30
        public GdxModelAsyncLoader(FileHandleResolver resolver)
1712 chris 31
        {
32
                super(resolver);
33
        }
34
 
35
        @Override
1734 chris 36
        public void loadAsync(AssetManager manager, String fileName, FileHandle file, Parameter parameter)
1712 chris 37
        {
38
        }
39
 
40
        @Override
1734 chris 41
        public Model loadSync(AssetManager manager, String fileName, FileHandle file, Parameter parameter)
1712 chris 42
        {
1738 chris 43
                Model model = GdxModelUtil.buildModel(mModelDescriptor);
44
        return model;
1712 chris 45
        }
46
 
47
        @SuppressWarnings("rawtypes")
48
        @Override
1734 chris 49
        public Array<AssetDescriptor> getDependencies(String fileName, FileHandle file, Parameter parameter)
1712 chris 50
        {
1738 chris 51
        mModelDescriptor = GdxModelUtil.readModel(fileName);
52
 
53
        Array<AssetDescriptor> deps = new Array();
54
        for (int i = 0; i < mModelDescriptor.materials.size(); i++)
55
        {
56
            GdxModelUtil.MaterialData matData = mModelDescriptor.materials.get(i);
57
            for (int j = 0; j < matData.textures.size(); j++)
58
            {
59
                GdxModelUtil.TextureData texData = matData.textures.get(j);
60
                FileHandle resolved = resolve(texData.filename);
61
                deps.add(new AssetDescriptor(resolved, Texture.class));
62
                texData.isAsync = true;
63
            }
64
        }
1712 chris 65
 
1738 chris 66
                return deps;
1712 chris 67
        }
68
 
69
        // Getters/Setters==================================================================================
70
 
71
}