Skip to content
This repository was archived by the owner on Nov 20, 2023. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
162 commits
Select commit Hold shift + click to select a range
912598c
Add rv images
sabsky Mar 27, 2019
66418b6
Added second round of rv images
sabsky Mar 27, 2019
5c53b79
Adding last round of rv images
sabsky Mar 27, 2019
f98d9a0
Adding rv markdown files batch 1
sabsky Mar 27, 2019
611b10c
Add rv tweak license server markdown files
sabsky Mar 27, 2019
6c9d5d2
Updated file name
sabsky Mar 28, 2019
bf0ee89
Updated file name
sabsky Mar 28, 2019
b65bb0e
Updated file name
sabsky Mar 28, 2019
16158b7
Updated file name
sabsky Mar 28, 2019
a3373f6
Updated file name
sabsky Mar 28, 2019
ccaf7a6
Updated file name
sabsky Mar 28, 2019
e6940e5
Updated file name
sabsky Mar 28, 2019
d51452a
Updated file name
sabsky Mar 28, 2019
71294c8
Updated file name
sabsky Mar 28, 2019
66249ce
Updated file name
sabsky Mar 28, 2019
2b77f44
Updated links to new RV pages
sabsky Mar 28, 2019
d5d08ba
Updated file name
sabsky Mar 28, 2019
0db74fa
Updated file name
sabsky Mar 28, 2019
324e085
Update file name
sabsky Mar 28, 2019
ba3489a
Updated file name
sabsky Mar 28, 2019
afabd14
Updated file name
sabsky Mar 28, 2019
9a54265
Updated file name
sabsky Mar 28, 2019
99616f5
Updated file name
sabsky Mar 28, 2019
e65b746
Updated file name
sabsky Mar 28, 2019
96427eb
Updated file name
sabsky Mar 28, 2019
7a170f1
Updated file name
sabsky Mar 28, 2019
da8af21
Updated file name
sabsky Mar 28, 2019
621b545
Updated file name
sabsky Mar 28, 2019
5bfe4e4
Updated file name
sabsky Mar 28, 2019
7c33d3c
Updated file name
sabsky Mar 28, 2019
9a2e1f4
Updated file name
sabsky Mar 28, 2019
4fe081c
Updated file name
sabsky Mar 28, 2019
a4a7b0e
Updated file name
sabsky Mar 28, 2019
799a5ea
Updated file name
sabsky Mar 28, 2019
089abe7
Updated file name
sabsky Mar 28, 2019
223af25
Updated file name
sabsky Mar 28, 2019
2fb376e
Updated file name
sabsky Mar 28, 2019
0e940b6
Updated file name
sabsky Mar 28, 2019
ab51e31
Updated file name
sabsky Mar 28, 2019
fc875c8
Updated file name
sabsky Mar 28, 2019
12f02b3
Updated file name
sabsky Mar 28, 2019
991d956
Updated file name
sabsky Mar 28, 2019
22fe207
Updated file name
sabsky Mar 28, 2019
ab07fc6
Updated file name
sabsky Mar 28, 2019
ef979e0
Updated file name
sabsky Mar 28, 2019
5201ef8
Updated file name
sabsky Mar 28, 2019
42e277f
Updated file name
sabsky Mar 28, 2019
04eab82
Updated file name
sabsky Mar 28, 2019
e2d39e7
Updated file name
sabsky Mar 28, 2019
6e96ba9
Updated file name
sabsky Mar 28, 2019
f2f45f9
Updated file name
sabsky Mar 28, 2019
16eab18
Updated file name
sabsky Mar 28, 2019
cff0abe
Updated file name
sabsky Mar 28, 2019
e619ece
Updated file name
sabsky Mar 28, 2019
8f5b077
Updated file name
sabsky Mar 28, 2019
8e2db3d
Updated file name
sabsky Mar 28, 2019
62a629d
Updated file name
sabsky Mar 28, 2019
37facda
Updated file name
sabsky Mar 28, 2019
22c2c90
Updated file name
sabsky Mar 28, 2019
5c69d6a
Updated file name
sabsky Mar 28, 2019
dd542f2
Updated file name
sabsky Mar 28, 2019
acd8b1b
Updated file name
sabsky Mar 28, 2019
dd526de
Updated file name
sabsky Mar 28, 2019
83dbf27
Updated file name
sabsky Mar 28, 2019
3bb914e
Updated file name
sabsky Mar 28, 2019
b75425d
Updated file name
sabsky Mar 28, 2019
9b4d270
Updated file name
sabsky Mar 28, 2019
6428f15
Updated file name
sabsky Mar 28, 2019
cf63c9f
Updated file name
sabsky Mar 28, 2019
2c8b58e
Updated file name
sabsky Mar 28, 2019
d8f0d3e
Updated file name
sabsky Mar 28, 2019
219c7b0
Updated file name
sabsky Mar 28, 2019
c0e32e2
Updated file name
sabsky Mar 28, 2019
e405399
Updated file name
sabsky Mar 28, 2019
a628367
Updated file name
sabsky Mar 28, 2019
8b6706c
Updated file name
sabsky Mar 28, 2019
a909c1a
Updated file name
sabsky Mar 28, 2019
c59d584
Updated file name
sabsky Mar 28, 2019
fc135b3
Updated file name
sabsky Mar 28, 2019
c074be6
Updated file name
sabsky Mar 28, 2019
91d12f8
Updated file name
sabsky Mar 28, 2019
0f09411
Updated file name
sabsky Mar 28, 2019
905d4db
Updated file name
sabsky Mar 28, 2019
e6348dc
Updated file name
sabsky Mar 28, 2019
f8a6172
Updated file name
sabsky Mar 28, 2019
cd1647f
Updated file name
sabsky Mar 28, 2019
87297f6
Updated file name
sabsky Mar 28, 2019
ed28374
Updated file name
sabsky Mar 28, 2019
30111b8
Updated file name
sabsky Mar 28, 2019
b66870f
Updated file name
sabsky Mar 28, 2019
0a59d80
Updated file name
sabsky Mar 28, 2019
df50766
Updated file name
sabsky Mar 28, 2019
31586e3
Updated file name
sabsky Mar 28, 2019
e2898c0
Updated file name
sabsky Mar 28, 2019
1a5ca46
Updated file name
sabsky Mar 28, 2019
cb0afb4
Updated file name
sabsky Mar 28, 2019
b981cab
Updated file name
sabsky Mar 28, 2019
31c9eda
Updated file name
sabsky Mar 28, 2019
4d2b057
Updated file name
sabsky Mar 28, 2019
f51831b
Updated file name
sabsky Mar 28, 2019
6a5a160
Added tweak license server files
sabsky Mar 28, 2019
4d1e2b7
Delete file
sabsky Mar 28, 2019
71ee47a
Delete file
sabsky Mar 28, 2019
a1e8c30
Delete file
sabsky Mar 28, 2019
5518ab7
Delete file
sabsky Mar 28, 2019
28935a0
Delete file
sabsky Mar 28, 2019
9028d9b
Delete file
sabsky Mar 28, 2019
792e713
Delete file
sabsky Mar 28, 2019
bb069c7
Delete file
sabsky Mar 28, 2019
6442b6d
Delete file
sabsky Mar 28, 2019
23f2112
Delete file
sabsky Mar 28, 2019
6d74e94
Delete file
sabsky Mar 28, 2019
229c710
Delete file
sabsky Mar 28, 2019
8327549
Updated file name
sabsky Mar 28, 2019
0e929e0
Updated file name
sabsky Mar 28, 2019
c53a227
Updated file name
sabsky Mar 28, 2019
aef82fe
Updated file name
sabsky Mar 28, 2019
68fc733
Updated file name
sabsky Mar 28, 2019
c1720d0
Updated file name
sabsky Mar 28, 2019
86543af
Updated file name
sabsky Mar 28, 2019
b67e85c
Updated file name
sabsky Mar 28, 2019
131a357
Updated file name
sabsky Mar 28, 2019
e723c0d
Updated file name
sabsky Mar 28, 2019
5c94e5c
Updated file name
sabsky Mar 28, 2019
25c9e3e
Updated file name
sabsky Mar 28, 2019
35551d3
Updated toc to include RV children docs
sabsky Mar 28, 2019
c91d16f
Removed colon from metadata title
sabsky Apr 1, 2019
c3e96a8
Removed colon from metadata title
sabsky Apr 1, 2019
28807d6
Removed / from metadata title
sabsky Apr 1, 2019
a6e6af3
Removed / from metadata title
sabsky Apr 1, 2019
3fa008e
Removed colon from metadata title
sabsky Apr 1, 2019
1b4ebc5
Removed colon from metadata title
sabsky Apr 1, 2019
da1521a
Removed colon from metadata title
sabsky Apr 1, 2019
6ce9cdb
Removed colon from metadata title
sabsky Apr 1, 2019
9b94f13
Removed colon from metadata title
sabsky Apr 1, 2019
25dd786
Removed colon from metadata title
sabsky Apr 1, 2019
c9372a6
Removed colon from metadata title
sabsky Apr 1, 2019
ab61b52
Removed colon from metadata title
sabsky Apr 1, 2019
4acb1c6
Removed colon from metadata title
sabsky Apr 1, 2019
8739201
Removed colon from metadata title
sabsky Apr 1, 2019
b4630a4
Removed colon from metadata title
sabsky Apr 1, 2019
cc8dcff
Removed colon from metadata title
sabsky Apr 1, 2019
bcc5ae2
Removed colon from metadata title
sabsky Apr 1, 2019
37a9d94
Removed colon from metadata title
sabsky Apr 1, 2019
fc1ef2b
Removed colon from metadata title
sabsky Apr 1, 2019
1806e8e
Removed colon from metadata title
sabsky Apr 1, 2019
609a348
Removed colon from metadata title
sabsky Apr 1, 2019
4ef8725
Removed colon from metadata title
sabsky Apr 1, 2019
358ecee
Removed colon from metadata title
sabsky Apr 1, 2019
4d4e376
Removed colon from metadata title
sabsky Apr 1, 2019
880812f
Removed colon from metadata title
sabsky Apr 1, 2019
7b0322b
Removed colon from metadata title
sabsky Apr 1, 2019
f75bb38
Removed colon from metadata title
sabsky Apr 1, 2019
c80af7d
Removed colon from metadata title
sabsky Apr 1, 2019
d9f97c8
Removed colon from metadata title
sabsky Apr 1, 2019
413720f
Removed colon from metadata title
sabsky Apr 1, 2019
23d8c59
Removed colon from metadata title
sabsky Apr 1, 2019
69a3ec1
Removed colon from metadata title
sabsky Apr 1, 2019
58562cf
Removed colon from metadata title
sabsky Apr 1, 2019
15220a9
Removed colon from metadata title
sabsky Apr 1, 2019
52261ae
Removed colon from metadata title
sabsky Apr 1, 2019
a8922ca
Fixed footnote link
sabsky Apr 1, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
126 changes: 115 additions & 11 deletions docs/_data/toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,20 +56,124 @@

- caption: rv
children:
- page: /rv/
- text: user-manual
url: "http://www.tweaksoftware.com/static/documentation/rv/current/html/rv_manual.html"
- text: technical-reference
url: "http://www.tweaksoftware.com/static/documentation/rv/current/html/rv_reference.html"
- text: rv-sdi
url: "http://www.tweaksoftware.com/static/documentation/rv/current/html/rvsdi_manual.html"
- page: /rv/rv-manual/
children:
- page: /rv/rv-manual/installation/
- page: /rv/rv-manual/command-line-usage/
- page: /rv/rv-manual/user-interface/
- page: /rv/rv-manual/the-session-and-the-session-manager/
- page: /rv/rv-manual/presentation-mode-and-video-devices/
- page: /rv/rv-manual/how-a-pixel-gets-from-a-file-to-the-screen/
- page: /rv/rv-manual/using-luts-in-rv/
- page: /rv/rv-manual/using-cdls-in-rv/
- page: /rv/rv-manual/packages/
- page: /rv/rv-manual/open-color-io/
- page: /rv/rv-manual/stereo-viewing/
- page: /rv/rv-manual/networking/
- page: /rv/rv-manual/maximizing-performance/
- page: /rv/rv-manual/file-formats/
- page: /rv/rv-manual/rvio/
- page: /rv/rv-manual/rvls/
- page: /rv/rv-manual/rvpush/
- page: /rv/rv-manual/differences-between-rv3-and-rv6/
- page: /rv/rv-manual/stereo-setup/
- page: /rv/rv-manual/the-rv-link-protocol/
- page: /rv/rv-manual/using-rv-as-nukes-flipbook-player/
- page: /rv/rv-manual/rv-audio-on-linux/
- page: /rv/rv-manual/troubleshooting-networking/
- page: /rv/rv-manual/rising-sun-research-cinespace/
- page: /rv/rv-manual/crash-reporting/
- page: /rv/rv-manual/pyside-example-usage/
- page: /rv/rv-manual/supported-multichannel-audio-layouts/
- page: /rv/rv-manual/tuning-platform-audio-for-linux/
- page: /rv/rv-reference/
children:
- page: /rv/rv-reference/image-processing-graph/
- page: /rv/rv-reference/writing-a-custom-glsl-node/
- page: /rv/rv-reference/python/
- page: /rv/rv-reference/event-handling/
- page: /rv/rv-reference/rv-file-format/
- page: /rv/rv-reference/using-qt-in-mu/
- page: /rv/rv-reference/modes-and-widgets/
- page: /rv/rv-reference/package-system/
- page: /rv/rv-reference/a-simple-package/
- page: /rv/rv-reference/the-custom-matte-package/
- page: /rv/rv-reference/automated-color-and-viewing-management/
- page: /rv/rv-reference/network-communication/
- page: /rv/rv-reference/webkit-javaScript-integration/
- page: /rv/rv-reference/hierarchical-preferences/
- page: /rv/rv-reference/node-reference/
- page: /rv/rv-reference/additional-glsl-node-reference/
- page: /rv/rv-reference/a-open-source-components/
- page: /rv/rv-reference/b-licensed-components/
- page: /rv/rv-7-release-notes/
children:
- page: /rv/rv-7-release-notes/version-7/
- page: /rv/rv-7-release-notes/version-6/
- page: /rv/rv-sdi-manual/
children:
- page: /rv/rv-sdi-manual/aja/
- page: /rv/rv-sdi-manual/black-magic-design/
- page: /rv/rv-sdi-manual/configuring-the-sdi-device/
- page: /rv/rv-sdi-manual/command-line-invocation/
- page: /rv/rv-sdi-manual/useful-rv-features-for-sdi-output/
- page: /rv/rv-client-license-management/
children:
- page: /rv/rv-client-license-management/specifying-license-file-location/
- page: /rv/rv-client-license-management/license-file-format/
- page: /rv/tweak-license-server/
children:
- page: /rv/tweak-license-server/recommended-installation-process/
- page: /rv/tweak-license-server/linux-service-installation/
- page: /rv/tweak-license-server/osx-service-installation/
- page: /rv/tweak-license-server/windows-service-installation/
- page: /rv/tweak-license-server/getting-a-license-file/
- page: /rv/tweak-license-server/command-line-parameters/
- page: /rv/tweak-license-server/disabling-the-license-installer/
- page: /rv/tweak-license-server/client-licenses/
- page: /rv/tweak-license-server/multiple-and-fallback-servers/
- page: /rv/tweak-license-server/getting-status/
- page: /rv/tweak-license-server/restrictions-troubleshooting/
- page: /rv/tweak-license-server/anatomy-of-a-tweak-license-file/
- page: /rv/tlm-server-release-notes/
- page: /rv/gto/
children:
- page: /rv/gto/overview/
- page: /rv/gto/installation/
- page: /rv/gto/binary-format/
- page: /rv/gto/text-format/
- page: /rv/gto/types-of-property-data/
- page: /rv/gto/interpretation-strings/
- page: /rv/gto/object-protocols/
- page: /rv/gto/naming-conventions/
- page: /rv/gto/issues-and-questionable-aspects-of-the-format/
- page: /rv/gto/extending-protocols-of-the-file-format/
- page: /rv/gto/c++-library/
- page: /rv/gto/python-module/
- page: /rv/gto/utilities/
- page: /rv/gto/appendix-a/

- page: /rv/integrations/
children:
- text: maya
url: "http://www.tweaksoftware.com/static/documentation/rv/current/html/maya_tools_help.html"
- text: nuke
url: "http://www.tweaksoftware.com/static/documentation/rv/current/html/rvnuke_help.html"
- page: /rv/rv-nuke-integration/
children:
- page: /rv/rv-nuke-integration/note-to-users/
- page: /rv/rv-nuke-integration/updating-an-existing-installation/
- page: /rv/rv-nuke-integration/installation/
- page: /rv/rv-nuke-integration/getting-started/
- page: /rv/rv-nuke-integration/read_write_nodes/
- page: /rv/rv-nuke-integration/checkpoints_and_renders/
- page: /rv/rv-nuke-integration/working-with-media-in-rv/
- page: /rv/rv-nuke-integration/modifying-the-nuke-project-from-rv/
- page: /rv/rv-nuke-integration/appendix-release-notes/
- page: /rv/rv-nuke-integration/appendix-known-issues-and-planned-work/
- page: /rv/rv-maya-integration/
children:
- page: /rv/rv-maya-integration/installation/
- page: /rv/rv-maya-integration/build-a-session-in-rv/
- page: /rv/rv-maya-integration/organizing-and-comparing-your-renders/
- page: /rv/rv-maya-integration/creating-new-views/
- page: /rv/rv-maya-integration/rendering-into-context/
- text: shotgun
url: "https://support.shotgunsoftware.com/hc/en-us/articles/360013250713"
- text: screening-room
Expand Down
16 changes: 16 additions & 0 deletions docs/en/rv/gto.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
layout: default
title: The Kitchen Sink of Data
permalink: /rv/gto/
lang: en
---

# GTO: The Kitchen Sink of Data

File Format, Protocols, and Utilities.

Jim Hourihan, Tweak Software

Copyright c 2002-2007 Tweak Films. All rights reserved.

Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
47 changes: 47 additions & 0 deletions docs/en/rv/gto/appendix-a.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
layout: default
title: Appendix A
permalink: /rv/gto/appendix-a/
lang: en
---

# Appendix A: Description of Changes

* Version 4.0
* Property data size can now be larger than 4Gb in the file and readable in full on 64 bit architectures (if the library is compiled 64 bit). The file headers are now version 4. The new file is incompatible with version 3 GTO readers.
* The manual has been updated with real-world usage examples from the film and game industries.
* Version 3.4
* The GTO license terms have been changed: the code is still covered by the LGPL, but with additional exceptions similar to those used by the FLTK library. These exceptions make it easier to use GTO in commercial projects.
* Houdini I/O plugin (ggto) reads and writes GTO geometry.
* The library no longer attempts to be source code compatible with older Microsoft compilers. Some functions may throw on error.
* Maya plugin (loadGtoAnim) loads animation from GTO files (transform matrices only). Useful for getting animation from GTO difference files.
* Maya plugin (GtoDeformer) makes it possible to use GTO files as geometry cache files. The deformer will read vertex/cv positions from existing GTO files and applies them to scene geometry of the same name.
* Maya plugin (GtoParticleDisplay) loads particles from GTO files for viewing in Maya
* Maya plugin (GtoParticleExport) writes particles from Maya as GTO files. Can be used as a replacement for pdb and pdc files.
* Maya plugin (GtoCacheEmitter) loads particles into Maya from GTO files via an emitter.
* Bug fixes to the C++ Gto::Writer class for output of text GTO files.
* Run-time error checking of the Gto::Writer API. The class will complain if the API is used in a undocumented manner. It may throw an exception.
* The GTO source code distribution now comes with Maya and Houdini plugins for cached deforming geometry and particle export and display.
* Version 3.2
* Human readable plain text version of GTO. Some readers may not function if they assume that the property size is known when the property() virtual function is called. The property size is only really known when the data() virtual function is called. Only version 3.2 GTO readers can read the text version.
* Animation curves are now stored per-object using the animation protocol.
* Bug fixes to Gto::Reader class to allow reuse of existing class with a newly opened file.
* Version 3.1
* RenderMan plug-in documentation added.
* Version 3.0
* An interpretation string has been added to the property header.
* An additional uint32 has been added as padding to the object, component, and property headers for future expansion slop.
* A section on interpretation strings has been added to the documentation and to the reader/writer classes.
* Added a type reference to the documentation.
* Version 2.1
* gtofilter was changed to optionally accept POSIX style regular expressions in addition to shell-like “glob” expressions.
* The C++ writer class now defaults to writing compressed files when the open() function is called. A second bool argument can be passed to it to prevent the compression.
* The proposed texture assignment protocol (from version 2.0.4) has been rejected.
* A new protocol “channel” is introduced for assigning mapped surface varying data on geometry. An arbitrary number of texture maps may be assigned to the geometry. See Section Channels.
* The material protocol has been fleshed out. See Section Material.
* The polygon protocol was missing the definition of the optional mappings component. See Section Polygonal Surfaces.
* Version 2.0.5 Bug fix version. Repaired problems with the
configuration scripts. Missing headers.
* Version 2.0.4 Bug fix version. Some configuration problems solved.
* Version 2.0 File headers changed. The format is not compatible with 1.0.
* Version 1.0
122 changes: 122 additions & 0 deletions docs/en/rv/gto/binary-format.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
---
layout: default
title: Binary Format
permalink: /rv/gto/binary-format/
lang: en
---

# Binary Format

The GTO file has six major sections which appear in the following order.

1. **Header** (Gto::Header). The header structure contains the GTO magic number (used to determine endianness), the version of the GTO specification that the file was written as, and the number of top level objects in the file. There is one instance of a header in the file. Finally, the header indicates how many strings are in the string table.

```
Magic = 0x0000029f; Cigam = 0x9f020000; // means the file is opposite
endianess

struct Header

{
uint32 magic;
uint32 numStrings;
uint32 numObjects;
uint32 version;
uint32 flags; // reserved;
};
```

2. **String Table**. After the header, null terminated strings are written in the file. The order of these strings is important. All names and string properties store indices into the string table instead of actual strings. In order to read the file properly, the string table must be available until the file is completely read. (Unless you don’t care about any strings!)

The index number refers the string number in the table not its byte offset. So the string index 9 (for example) refers to the 10th string in the table (string index 0 is the first string in the table).

3. **ObjectHeader** (Gto::ObjectHeader). The object header indicates what kind of protocol to use to interpret it, the **object** name and the number of components. (More on the object protocol later). The name—like all strings in the GTO file—is stored as a string table entry. If the file header indicated N objects in the file, there will be N ObjectHeaders.

```
struct ObjectHeader
{
uint32 name; // a string table index
uint32 protocolName; // a string table index
uint32 protocolVersion;
uint32 numComponents;
uint32 pad; // unused
};
```

4. **ComponentHeader** (Gto::ComponentHeader). Like the ObjectHeaders the ComponentHeaders will appear together for all objects in order. The component header indicates the number of properties in the component and the name of the component.

```
enum ComponentFlags
{
Transposed = 1 << 0,
Matrix = 1 << 1,
};
struct ComponentHeader
{
uint32 name; // a string table index
uint32 numProperties;
uint32 flags;
uint32 interpretation; // a string table index
uint32 childLevel; // nesting level
};
```

5. **PropertyHeader** (Gto::PropertyHeader). The PropertyHeaders, like the object and component headers, appear en masse in the file. The PropertyHeader contains the name, size, type, and dimension of the property.
```
enum DataType
{
Int, // int32
Float, // float32
Double, // float64
Half, // float16
String, // string table indices
Boolean, // bit
Short, // uint16
Byte // uint8
};
struct Dimensions
{
uint32 x;
uint32 y;
uint32 z;
uint32 w;
}
struct PropertyHeader
{
uint32 name; // string table index
uint64 size;
uint32 type; // DataType enum value
Dimensions dims;
uint32 interpretation; // string table index
};
```

6. **Data**. The last section of the file contains all of the property data. The beginning and end of a properties data are not marked. The size must be consistent with the description of the property used in the PropertyHeader.

In (Text) diagram form the file looks something like this:

+--------------------+
| File Header |
+--------------------+
| String Table |
+--------------------+
| Object Header |
| . |
| . |
| . |
+--------------------+
| Component Header |
| . |
| . |
| . |
+--------------------+
| Property Header |
| . |
| . |
| . |
+--------------------+
| Property Data |
| . |
| . |
| . |
+--------------------+
Loading