Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
assetsmanager [2019/03/08 12:32] – [Finding an asset] admin | assetsmanager [2020/11/06 13:48] – [Groups] admin | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Using AssetsManager ====== | ====== Using AssetsManager ====== | ||
+ | {{: | ||
The AssetsManager is the core component in effective media management inside your Gorilla3D application. | The AssetsManager is the core component in effective media management inside your Gorilla3D application. | ||
- | + | Models, textures, audio, dialogues | |
- | Models, textures, audio and so on will be cached for faster access and reusage. You can build packages within the AssetsManager for modular media management. | + | You can build packages within the AssetsManager for modular media management. |
- | + | For example: you could build a package for the main character and reference to it in every scene package. | |
- | For example: you could build a package for the main character and reference to it in every scene package. Scene packages are extremly useful for compact and fast loading of all data of a specific | + | Scene packages are extremly useful for compact and fast loading of all data in a scene. |
===== Package ===== | ===== Package ===== | ||
Line 14: | Line 15: | ||
===== Groups ===== | ===== Groups ===== | ||
Each package provides a number of fixed group entries to organize media content. | Each package provides a number of fixed group entries to organize media content. | ||
- | | + | |
- | * GORILLA_ASSETS_TEXTURE | + | Default group ids to access the specific group of each package: |
- | * GORILLA_ASSETS_AUDIO | + | |
- | * GORILLA_ASSETS_VIDEO | + | ^ Group-ID |
- | * GORILLA_ASSETS_MISC | + | | GORILLA_ASSETS_MODEL |
- | * GORILLA_ASSETS_DIALOGUE | + | | GORILLA_ASSETS_TEXTURE |
- | * GORILLA_ASSETS_INVENTORY | + | | GORILLA_ASSETS_AUDIO |
+ | | GORILLA_ASSETS_VIDEO | ||
+ | | GORILLA_ASSETS_MISC | ||
+ | | GORILLA_ASSETS_DIALOGUE | ||
+ | | GORILLA_ASSETS_INVENTORY | ||
===== Assets ===== | ===== Assets ===== | ||
Line 60: | Line 65: | ||
<file pascal Form1.pas> | <file pascal Form1.pas> | ||
+ | var | ||
+ | FAssetsManager : TGorillaAssetsManager; | ||
+ | FPackage : TGorillaAssetsPackage; | ||
+ | | ||
+ | procedure TForm1.CreatePackage(); | ||
+ | begin | ||
FAssetsManager := TGorillaAssetsManager.Create(Self); | FAssetsManager := TGorillaAssetsManager.Create(Self); | ||
- | FAssetsManager.AddEmptyPackage(GORILLA_PACKAGE_DEFAULT); | + | |
+ | end; | ||
</ | </ | ||
- | ==== Finding an asset ==== | + | ==== Loading package from file ==== |
+ | |||
+ | You can easily setup packages by the Gorilla3D assets manager tool. | ||
+ | There you can also save packages to file, which can be loaded at runtime in your program. | ||
+ | |||
+ | <file pascal Form1.pas> | ||
+ | procedure TForm1.LoadPackage(const AFilename : String); | ||
+ | begin | ||
+ | FAssetsManager := TGorillaAssetsManager.Create(Self); | ||
+ | FPackage := FAssetsManager.LoadPackageFromFile(AFilename); | ||
+ | end; | ||
+ | </ | ||
+ | |||
+ | ==== Storing your assets package at runtime ==== | ||
+ | |||
+ | Of course you are allowed to store the assets package you've setup. | ||
+ | Easily use the provided SaveToFile method of each package instance. | ||
+ | |||
+ | <file pascal Form1.pas> | ||
+ | procedure TForm1.SavePackage(const AFilename : String); | ||
+ | begin | ||
+ | FPackage.SaveToFile(AFilename); | ||
+ | end; | ||
+ | </ | ||
+ | |||
+ | ==== Finding an asset inside of a package | ||
1) Each assets has an unique id (GUID) when added to the package by which we can find it exactly. | 1) Each assets has an unique id (GUID) when added to the package by which we can find it exactly. | ||
Line 71: | Line 108: | ||
// finding an asset in a specific group by its unique id | // finding an asset in a specific group by its unique id | ||
LAssetId := ' | LAssetId := ' | ||
- | | + | |
</ | </ | ||
- | 2) | + | 2) Get asset by its filename |
+ | |||
+ | **Caution: This method will automatically import the asset from supplied file, if it can not be found.** | ||
<file pascal Form1.pas> | <file pascal Form1.pas> | ||
- | // finding an asset in a specific group by its unique id | + | // finding an asset in a specific group by its filename |
- | | + | |
- | | + | |
+ | </ | ||
+ | |||
+ | 3) Get asset by its filename and stream | ||
+ | |||
+ | **Caution: This method will automatically import the asset from supplied stream, if it can not be found.** | ||
+ | |||
+ | <file pascal Form1.pas> | ||
+ | // finding an asset in a specific group by its filename | ||
+ | LAssetFile := ' | ||
+ | FPackage.GetAssetFromStream(GORILLA_ASSETS_TEXTURE, | ||
</ | </ | ||
+ | Next step: [[billboard|Billboard]] |