Showing preview only (8,171K chars total). Download the full file or copy to clipboard to get everything.
Repository: Rinnegatamante/vitaGL
Branch: master
Commit: 30630d37ba22
Files: 156
Total size: 7.8 MB
Directory structure:
gitextract_enxg8n42/
├── .clang-format
├── .gitattributes
├── .github/
│ └── FUNDING.yml
├── .gitignore
├── COPYING
├── COPYING.LESSER
├── Makefile
├── README.md
├── format.bat
├── samples/
│ ├── blit_framebuffer/
│ │ ├── Makefile
│ │ └── main.c
│ ├── camera/
│ │ ├── Makefile
│ │ ├── bunny.obj
│ │ ├── lambertian.frag
│ │ ├── lambertian.vert
│ │ ├── main.cpp
│ │ └── plane.obj
│ ├── draw_batching/
│ │ ├── Makefile
│ │ └── main.c
│ ├── draw_elements/
│ │ ├── Makefile
│ │ └── main.c
│ ├── glesgear/
│ │ ├── Makefile
│ │ └── main.c
│ ├── illumination_models/
│ │ ├── Makefile
│ │ ├── blinn.frag
│ │ ├── blinn.vert
│ │ ├── bunny.obj
│ │ ├── cube.obj
│ │ ├── fdg.frag
│ │ ├── fdg.vert
│ │ ├── lambertian.frag
│ │ ├── lambertian.vert
│ │ ├── main.cpp
│ │ ├── phong.frag
│ │ ├── phong.vert
│ │ ├── plane.obj
│ │ └── sphere.obj
│ ├── immediate_mode/
│ │ ├── Makefile
│ │ └── main.c
│ ├── immediate_mode_texture/
│ │ ├── Makefile
│ │ └── main.c
│ ├── immediate_mode_texture_compressed/
│ │ ├── Makefile
│ │ ├── main.c
│ │ └── texture.pvr
│ ├── immediate_mode_texture_yuv/
│ │ ├── Makefile
│ │ ├── main.c
│ │ └── texture.yuv
│ ├── lighting_fog_ffp/
│ │ ├── Makefile
│ │ ├── main.c
│ │ └── texture.h
│ ├── lighting_fog_sphere_ffp/
│ │ ├── Makefile
│ │ └── main.c
│ ├── models_rendering/
│ │ ├── Makefile
│ │ ├── bunny.obj
│ │ └── main.c
│ ├── occlusion_queries/
│ │ ├── Makefile
│ │ └── main.c
│ ├── resolution_change/
│ │ ├── Makefile
│ │ └── main.c
│ ├── rotating_cube/
│ │ ├── Makefile
│ │ └── main.c
│ ├── rotating_cube_sysapp/
│ │ ├── Makefile
│ │ └── main.c
│ ├── skybox_env_map/
│ │ ├── Makefile
│ │ ├── bunny.obj
│ │ ├── cube.obj
│ │ ├── main.cpp
│ │ ├── mirror.frag
│ │ ├── mirror.vert
│ │ ├── skybox.frag
│ │ ├── skybox.vert
│ │ └── stb_image.h
│ ├── ssao_deferred_rendering/
│ │ ├── Makefile
│ │ ├── bunny.obj
│ │ ├── cube.obj
│ │ ├── geometry.frag
│ │ ├── geometry.vert
│ │ ├── lighting.frag
│ │ ├── lighting.vert
│ │ ├── main.cpp
│ │ ├── sphere.obj
│ │ ├── ssao.frag
│ │ └── ssao.vert
│ ├── uniform_buffers/
│ │ ├── Makefile
│ │ └── main.c
│ ├── vbo_rotating_cube/
│ │ ├── Makefile
│ │ └── main.c
│ ├── vertex_array/
│ │ ├── Makefile
│ │ └── main.c
│ └── video_playback/
│ ├── Makefile
│ └── main.c
└── source/
├── blending.c
├── buffers.c
├── custom_shaders.c
├── debug.c
├── display_lists.c
├── draw.c
├── egl.c
├── ffp.c
├── framebuffers.c
├── get_info.c
├── gxm.c
├── lookup.c
├── matrices.c
├── misc.c
├── shaders/
│ ├── ffp_ext_f.h
│ ├── ffp_ext_v.h
│ ├── ffp_f.h
│ ├── ffp_v.h
│ ├── glsl_translator_hdr.h
│ ├── precompiled_blit_f.h
│ ├── precompiled_blit_v.h
│ ├── precompiled_clear_f.h
│ ├── precompiled_clear_v.h
│ └── texture_combiners/
│ ├── add.h
│ ├── blend.h
│ ├── combine.h
│ ├── decal.h
│ ├── modulate.h
│ └── replace.h
├── shaders.h
├── shared.h
├── tests.c
├── texture_callbacks.c
├── texture_callbacks.h
├── textures.c
├── utils/
│ ├── atitc_utils.c
│ ├── atitc_utils.h
│ ├── debug_utils.h
│ ├── eac_utils.c
│ ├── eac_utils.h
│ ├── etc1_utils.c
│ ├── etc1_utils.h
│ ├── etc_utils.c
│ ├── font_utils.h
│ ├── glsl_utils.c
│ ├── glsl_utils.h
│ ├── gpu_utils.c
│ ├── gpu_utils.h
│ ├── gxm_utils.c
│ ├── gxm_utils.h
│ ├── math_utils.h
│ ├── mem_utils.c
│ ├── mem_utils.h
│ ├── preprocessor/
│ │ ├── const.h
│ │ ├── expression.cpp
│ │ ├── expression.h
│ │ ├── preprocessor.cpp
│ │ └── preprocessor_c.h
│ ├── shacccg_paramquery.h
│ ├── stb_dxt.h
│ ├── texture_swizzler.cpp
│ ├── texture_swizzler.h
│ └── xxhash_utils.h
├── vgl.c
└── vitaGL.h
================================================
FILE CONTENTS
================================================
================================================
FILE: .clang-format
================================================
---
Language: Cpp
# BasedOnStyle: WebKit
AccessModifierOffset: -4
AlignAfterOpenBracket: DontAlign
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: DontAlign
AlignOperands: false
AlignTrailingComments: false
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: true
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: false
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
AfterClass: false
AfterControlStatement: false
AfterEnum: false
AfterFunction: true
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
AfterUnion: false
BeforeCatch: false
BeforeElse: false
IndentBraces: false
BreakBeforeBinaryOperators: All
BreakBeforeBraces: Attach
BreakBeforeInheritanceComma: false
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeComma
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit: 0
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: false
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]
IncludeCategories:
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
Priority: 2
- Regex: '^(<|"(gtest|isl|json)/)'
Priority: 3
- Regex: '.*'
Priority: 1
IncludeIsMainRegex: '$'
IndentCaseLabels: false
IndentWidth: 4
IndentWrappedFunctionNames: false
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: false
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBlockIndentWidth: 4
ObjCSpaceAfterProperty: true
ObjCSpaceBeforeProtocolList: true
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Right
ReflowComments: true
SortIncludes: true
SpaceAfterCStyleCast: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
TabWidth: 4
UseTab: Always
...
================================================
FILE: .gitattributes
================================================
# Auto detect text files and perform LF normalization
* text=auto
# Custom for Visual Studio
*.cs diff=csharp
# Standard to msysgit
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
================================================
FILE: .github/FUNDING.yml
================================================
patreon: Rinnegatamante
================================================
FILE: .gitignore
================================================
*.vpk
*.elf
*.velf
*.bin
*.sfo
# Windows image file caches
Thumbs.db
ehthumbs.db
# Folder config file
Desktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msm
*.msp
# Windows shortcuts
*.lnk
# =========================
# Operating System Files
# =========================
# OSX
# =========================
.DS_Store
.AppleDouble
.LSOverride
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
# Vita build stuffs
*.a
*.o
================================================
FILE: COPYING
================================================
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.
================================================
FILE: COPYING.LESSER
================================================
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below.
0. Additional Definitions.
As used herein, "this License" refers to version 3 of the GNU Lesser
General Public License, and the "GNU GPL" refers to version 3 of the GNU
General Public License.
"The Library" refers to a covered work governed by this License,
other than an Application or a Combined Work as defined below.
An "Application" is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library.
A "Combined Work" is a work produced by combining or linking an
Application with the Library. The particular version of the Library
with which the Combined Work was made is also called the "Linked
Version".
The "Minimal Corresponding Source" for a Combined Work means the
Corresponding Source for the Combined Work, excluding any source code
for portions of the Combined Work that, considered in isolation, are
based on the Application, and not on the Linked Version.
The "Corresponding Application Code" for a Combined Work means the
object code and/or source code for the Application, including any data
and utility programs needed for reproducing the Combined Work from the
Application, but excluding the System Libraries of the Combined Work.
1. Exception to Section 3 of the GNU GPL.
You may convey a covered work under sections 3 and 4 of this License
without being bound by section 3 of the GNU GPL.
2. Conveying Modified Versions.
If you modify a copy of the Library, and, in your modifications, a
facility refers to a function or data to be supplied by an Application
that uses the facility (other than as an argument passed when the
facility is invoked), then you may convey a copy of the modified
version:
a) under this License, provided that you make a good faith effort to
ensure that, in the event an Application does not supply the
function or data, the facility still operates, and performs
whatever part of its purpose remains meaningful, or
b) under the GNU GPL, with none of the additional permissions of
this License applicable to that copy.
3. Object Code Incorporating Material from Library Header Files.
The object code form of an Application may incorporate material from
a header file that is part of the Library. You may convey such object
code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following:
a) Give prominent notice with each copy of the object code that the
Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the object code with a copy of the GNU GPL and this license
document.
4. Combined Works.
You may convey a Combined Work under terms of your choice that,
taken together, effectively do not restrict modification of the
portions of the Library contained in the Combined Work and reverse
engineering for debugging such modifications, if you also do each of
the following:
a) Give prominent notice with each copy of the Combined Work that
the Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the Combined Work with a copy of the GNU GPL and this license
document.
c) For a Combined Work that displays copyright notices during
execution, include the copyright notice for the Library among
these notices, as well as a reference directing the user to the
copies of the GNU GPL and this license document.
d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this
License, and the Corresponding Application Code in a form
suitable for, and under terms that permit, the user to
recombine or relink the Application with a modified version of
the Linked Version to produce a modified Combined Work, in the
manner specified by section 6 of the GNU GPL for conveying
Corresponding Source.
1) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (a) uses at run time
a copy of the Library already present on the user's computer
system, and (b) will operate properly with a modified version
of the Library that is interface-compatible with the Linked
Version.
e) Provide Installation Information, but only if you would otherwise
be required to provide such information under section 6 of the
GNU GPL, and only to the extent that such information is
necessary to install and execute a modified version of the
Combined Work produced by recombining or relinking the
Application with a modified version of the Linked Version. (If
you use option 4d0, the Installation Information must accompany
the Minimal Corresponding Source and Corresponding Application
Code. If you use option 4d1, you must provide the Installation
Information in the manner specified by section 6 of the GNU GPL
for conveying Corresponding Source.)
5. Combined Libraries.
You may place library facilities that are a work based on the
Library side by side in a single library together with other library
facilities that are not Applications and are not covered by this
License, and convey such a combined library under terms of your
choice, if you do both of the following:
a) Accompany the combined library with a copy of the same work based
on the Library, uncombined with any other library facilities,
conveyed under the terms of this License.
b) Give prominent notice with the combined library that part of it
is a work based on the Library, and explaining where to find the
accompanying uncombined form of the same work.
6. Revised Versions of the GNU Lesser General Public License.
The Free Software Foundation may publish revised and/or new versions
of the GNU Lesser General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the
Library as you received it specifies that a certain numbered version
of the GNU Lesser General Public License "or any later version"
applies to it, you have the option of following the terms and
conditions either of that published version or of any later version
published by the Free Software Foundation. If the Library as you
received it does not specify a version number of the GNU Lesser
General Public License, you may choose any version of the GNU Lesser
General Public License ever published by the Free Software Foundation.
If the Library as you received it specifies that a proxy can decide
whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.
================================================
FILE: Makefile
================================================
TARGET := libvitaGL
SOURCES := source source/utils source/utils/preprocessor
CFILES := $(foreach dir,$(SOURCES), $(wildcard $(dir)/*.c))
CPPFILES := $(foreach dir,$(SOURCES), $(wildcard $(dir)/*.cpp))
OBJS := $(CFILES:.c=.o) $(CPPFILES:.cpp=.o)
SAMPLES := $(foreach dir,$(wildcard samples/*), $(dir).smp)
SAMPLES_CLR := $(foreach dir,$(wildcard samples/*), $(dir).smpc)
PREFIX = arm-vita-eabi
CC = $(PREFIX)-gcc
CXX = $(PREFIX)-g++
AR = $(PREFIX)-gcc-ar
CFLAGS = -g -Wl,-q -O3 -ffast-math -mtune=cortex-a9 -mfpu=neon -Wno-incompatible-pointer-types -Wno-stringop-overflow
ASFLAGS = $(CFLAGS)
ifeq ($(SOFTFP_ABI),1)
CFLAGS += -mfloat-abi=softfp -DHAVE_SOFTFP_ABI
endif
ifeq ($(NO_DEBUG),1)
CFLAGS += -DSKIP_ERROR_HANDLING
endif
ifeq ($(NO_DMAC),1)
CFLAGS += -DDISABLE_DMAC
endif
ifeq ($(NO_CLIB),1)
CFLAGS += -DDISABLE_CLIB
endif
ifeq ($(NO_TEX_COMBINER),1)
CFLAGS += -DDISABLE_TEXTURE_COMBINER
endif
ifeq ($(NO_TILE_CLIPPER),1)
CFLAGS += -DDISABLE_TILE_CLIPPER
endif
ifeq ($(HAVE_SHARK_LOG),1)
CFLAGS += -DHAVE_SHARK_LOG
endif
ifeq ($(HAVE_CUSTOM_HEAP),1)
CFLAGS += -DHAVE_CUSTOM_HEAP
endif
ifeq ($(HAVE_GLSL_SUPPORT),1)
CFLAGS += -DHAVE_GLSL_TRANSLATOR -DHAVE_GLSL_PREPROCESSOR
endif
ifeq ($(HAVE_GLSL_SUPPORT),2)
CFLAGS += -DHAVE_GLSL_TRANSLATOR
endif
ifeq ($(HAVE_GLSL_TEXTURE_SIZE),1)
CFLAGS += -DHAVE_GLSL_TEXTURE_SIZE
endif
ifeq ($(HAVE_UNFLIPPED_FBOS),1)
CFLAGS += -DHAVE_UNFLIPPED_FBOS
endif
ifeq ($(BUFFERS_SPEEDHACK),1)
CFLAGS += -DBUFFERS_SPEEDHACK
endif
ifeq ($(DRAW_SPEEDHACK),1)
CFLAGS += -DDRAW_SPEEDHACK
endif
ifeq ($(DRAW_SPEEDHACK),2)
CFLAGS += -DSAFER_DRAW_SPEEDHACK
endif
ifeq ($(MATH_SPEEDHACK),1)
CFLAGS += -DMATH_SPEEDHACK
endif
ifeq ($(PRIMITIVES_SPEEDHACK),1)
CFLAGS += -DPRIMITIVES_SPEEDHACK
endif
ifeq ($(INDICES_DRAW_SPEEDHACK),1)
CFLAGS += -DINDICES_DRAW_SPEEDHACK
endif
ifeq ($(INDICES_SPEEDHACK),1)
CFLAGS += -DINDICES_SPEEDHACK
endif
ifeq ($(TEXTURES_SPEEDHACK),1)
CFLAGS += -DTEXTURES_SPEEDHACK
endif
ifeq ($(SHARED_RENDERTARGETS),1)
CFLAGS += -DHAVE_SHARED_RENDERTARGETS
endif
ifeq ($(SHARED_RENDERTARGETS),2)
CFLAGS += -DHAVE_SHARED_RENDERTARGETS -DRECYCLE_RENDERTARGETS
endif
ifeq ($(UNPURE_TEXTURES),1)
CFLAGS += -DHAVE_UNPURE_TEXTURES
endif
ifeq ($(UNPURE_TEXCOORDS),1)
CFLAGS += -DHAVE_UNPURE_TEXCOORDS
endif
ifeq ($(UNPURE_TEXFORMATS),1)
CFLAGS += -DHAVE_UNPURE_TEXFORMATS
endif
ifeq ($(UNIFORMS_SPEEDHACK),1)
CFLAGS += -DUNIFORMS_SPEEDHACK
endif
ifeq ($(PHYCONT_ON_DEMAND),1)
CFLAGS += -DPHYCONT_ON_DEMAND
endif
ifeq ($(SINGLE_THREADED_GC),1)
CFLAGS += -DHAVE_SINGLE_THREADED_GC
endif
ifeq ($(CIRCULAR_VERTEX_POOL),1)
CFLAGS += -DHAVE_CIRCULAR_VERTEX_POOL
endif
ifeq ($(CIRCULAR_VERTEX_POOL),2)
CFLAGS += -DHAVE_CIRCULAR_VERTEX_POOL -DHAVE_FAILSAFE_CIRCULAR_VERTEX_POOL
endif
ifeq ($(USE_SCRATCH_MEMORY),1)
CFLAGS += -DHAVE_SCRATCH_MEMORY
endif
ifeq ($(LOG_ERRORS),1)
CFLAGS += -DLOG_ERRORS
endif
ifeq ($(HAVE_PROFILING),1)
CFLAGS += -DHAVE_PROFILING
endif
ifeq ($(LOG_ERRORS),2)
CFLAGS += -DLOG_ERRORS -DFILE_LOG
endif
ifeq ($(HAVE_WRAPPED_ALLOCATORS),1)
CFLAGS += -DHAVE_WRAPPED_ALLOCATORS
endif
ifeq ($(HAVE_DEBUGGER),1)
CFLAGS += -DHAVE_DEBUG_INTERFACE
endif
ifeq ($(HAVE_DEBUGGER),2)
CFLAGS += -DHAVE_DEVKIT -DHAVE_RAZOR -DHAVE_DEBUG_INTERFACE
endif
ifeq ($(HAVE_RAZOR),1)
CFLAGS += -DHAVE_RAZOR
endif
ifeq ($(HAVE_DEVKIT),1)
CFLAGS += -DHAVE_DEVKIT -DHAVE_RAZOR
endif
ifeq ($(SAMPLERS_SPEEDHACK),1)
CFLAGS += -DSAMPLERS_SPEEDHACK
endif
ifeq ($(HAVE_HIGH_FFP_TEXUNITS),1)
CFLAGS += -DHAVE_HIGH_FFP_TEXUNITS
endif
ifeq ($(HAVE_DISPLAY_LISTS),1)
CFLAGS += -DHAVE_DLISTS
endif
ifeq ($(HAVE_PTHREAD),1)
CFLAGS += -DHAVE_PTHREAD
endif
ifeq ($(SAFE_ETC1),1)
CFLAGS += -DDISABLE_HW_ETC1
endif
ifeq ($(SAFE_DRAW),1)
CFLAGS += -DSTRICT_DRAW_COMPLIANCE
endif
ifeq ($(SAFE_UNIFORMS),1)
CFLAGS += -DSTRICT_UNIFORMS_COMPLIANCE
endif
ifeq ($(HAVE_WVP_ON_GPU),1)
CFLAGS += -DHAVE_WVP_ON_GPU
endif
ifeq ($(STORE_DEPTH_STENCIL),1)
CFLAGS += -DSTORE_DEPTH_STENCIL
endif
ifeq ($(HAVE_VITA3K_SUPPORT),1)
CFLAGS += -DHAVE_VITA3K_SUPPORT -DDISABLE_HW_ETC1
endif
ifeq ($(HAVE_SHADER_CACHE),1)
CFLAGS += -DHAVE_SHADER_CACHE
endif
ifeq ($(HAVE_TEXTURE_CACHE),1)
CFLAGS += -DHAVE_TEX_CACHE
endif
ifeq ($(DISABLE_FFP_MULTITEXTURE),1)
CFLAGS += -DDISABLE_FFP_MULTITEXTURE
endif
ifeq ($(DISABLE_W_CLAMPING),1)
CFLAGS += -DISABLE_W_CLAMPING
endif
ifeq ($(DEBUG_GLSL_TRANSLATOR),1)
CFLAGS += -DDEBUG_GLSL_TRANSLATOR
endif
ifeq ($(DEBUG_GLSL_PREPROCESSOR),1)
CFLAGS += -DDEBUG_GLSL_PREPROCESSOR
endif
ifeq ($(HAVE_CPU_TRACER),1)
CFLAGS += -DHAVE_CPU_TRACER
endif
ifeq ($(DEPTH_STENCIL_HACK),1)
CFLAGS += -DDEPTH_STENCIL_HACK
endif
ifeq ($(HAVE_FFP_SHADER_SUPPORT),1)
CFLAGS += -DHAVE_FFP_SHADER_SUPPORT
endif
ifeq ($(DEBUG_GC),1)
CFLAGS += -DDEBUG_GC
endif
ifeq ($(ENABLE_LEGACY_PIPELINE),1)
CFLAGS += -DENABLE_LEGACY_PIPELINE
endif
CXXFLAGS = $(CFLAGS) -fexceptions -std=gnu++11 -Wno-write-strings
all: $(TARGET).a
$(TARGET).a: $(OBJS)
$(AR) -rc $@ $^
%.smpc:
@make -C $(@:.smpc=) clean
%.smp:
@make -C $(@:.smp=)
ls -1 $(@:.smp=)/*.vpk | xargs -L1 -I{} cp {} .
clean: $(SAMPLES_CLR)
@rm -rf $(TARGET).a $(TARGET).elf $(OBJS)
install: $(TARGET).a
@mkdir -p $(VITASDK)/$(PREFIX)/lib/
cp $(TARGET).a $(VITASDK)/$(PREFIX)/lib/
@mkdir -p $(VITASDK)/$(PREFIX)/include/
cp source/vitaGL.h $(VITASDK)/$(PREFIX)/include/
samples: $(SAMPLES)
================================================
FILE: README.md
================================================
<p align="center"><img width="50%" src="./vitagl.png"></p>
vitaGL is an opensource openGL driver for PSVITA development. It acts as a wrapper between openGL and sceGxm and allows to use a subset of openGL functions with full hardware acceleration by translating the code to sceGxm equivalent.
# Prerequisites
In order to run an homebrew made with vitaGL, you are going to need libshacccg.suprx extracted and decrypted on your console. You can refer to this guide for more details about its extraction: https://samilops2.gitbook.io/vita-troubleshooting-guide/shader-compiler/extract-libshacccg.suprx<br>
# Build Instructions
In order to build vitaGL use the following command: `make install`.
<br>These are all the available flags usable when compiling the library:<br>
### Debug Flags
| Flag | Description |
| --- | --- |
| `HAVE_SHARK_LOG=1`| Enables logging support in runtime shader compiler.|
|`LOG_ERRORS=1`| Errors will be logged with sceClibPrintf.|
|`LOG_ERRORS=2`| Errors will be logged to ux0:data/vitaGL.log.|
|`HAVE_PROFILING=1`| Enables lightweighted profiler for CPU time spent in draw calls.|
|`HAVE_DEBUGGER=1`| Enables lightweighted on screen debugger interface.|
|`HAVE_DEBUGGER=2`| Enables lightweighted on screen debugger interface with extra information (devkit only).|
|`HAVE_RAZOR=1`| Enables debugging features through Razor debugger (retail and devkit compatible).|
|`HAVE_DEVKIT=1`| Enables extra debugging features through Razor debugger available only for devkit users.|
|`HAVE_CPU_TRACER=1`| Makes the library insert a Razor CPU sync at every buffer swap for better frame timelines in the profiler.|
|`DEBUG_GLSL_TRANSLATOR=1`| Enables logging of GLSL translator input and output prior shader compilation process.|
|`DEBUG_GLSL_PREPROCESSOR=1`| Enables logging of GLSL preprocessor input and output prior shader compilation process.|
|`DEBUG_GC=1`| Enables sanity checks for the internal garbage collector.|
### Compatibility Flags
| Flag | Description |
| --- | --- |
|`HAVE_CUSTOM_HEAP=1`| Replaces sceClib heap implementation with custom one (Less efficient but safer).|
|`HAVE_GLSL_SUPPORT=1`| Enables experimental GLSL to CG auto translation for shader sources with preprocessor pass (Recommended).|
|`HAVE_GLSL_SUPPORT=2`| Enables experimental GLSL to CG auto translation for shader sources without preprocessor pass.|
|`HAVE_GLSL_TEXTURE_SIZE=1`| Enables experimental automatic handling of textureSize GLSL calls with the GLSL translator.|
|`HAVE_FFP_SHADER_SUPPORT=1`| Enables support for GLSL 1.20 legacy built-in ffp uniform bindings (eg. gl_ModelViewProjectionMatrix). Causes the shader pipeline to be slightly slower.|
|`SOFTFP_ABI=1`| Compiles the library in soft floating point compatibility mode.|
|`STORE_DEPTH_STENCIL=1`| Makes all framebuffers depth/stencil surfaces to be load/stored on memory. Makes the rendering slower but more compliant with OpenGL standards.|
|`HAVE_HIGH_FFP_TEXUNITS=1`| Enables support for more than 2 texunits for fixed function pipeline at the cost of some performance loss.|
|`HAVE_DISPLAY_LISTS=1`| Enables support for display lists at the cost of some performance loss.|
|`SAFE_ETC1=1`| Disables hardware support for ETC1 textures. Makes ETC1 textures usage less efficient but allows for proper debugging in Razor.|
|`SAFE_DRAW=1`| Makes some optimizations in the drawing pipeline less efficient but can solve some glitches.|
|`SAFE_UNIFORMS=1`| Makes some optimizations in the shaders pipeline less efficient but makes uniform location indexing for basic type arrays compliant.|
|`UNPURE_TEXFORMATS=1`| Enables support for texture dimensions different than 2D (tex2D is still required in shader code).|
|`HAVE_VITA3K_SUPPORT=1`| Disables several features in order to make vitaGL compatible with Vita3K. Requires vitaShaRK compiled with https://github.com/Rinnegatamante/vitaShaRK/blob/master/source/vitashark.c#L24 uncommented.|
|`ENABLE_LEGACY_PIPELINE=1`| Enables support for the legacy vglDrawObjects pipeline.|
### Hack Flags
| Flag | Description |
| --- | --- |
|`NO_TEX_COMBINER=1`| Disables texture combiner support (GL_COMBINE) for faster fixed function pipeline code execution.|
|`NO_DEBUG=1`| Disables most of the error handling features (Faster CPU code execution but code may be non compliant to all OpenGL standards).|
|`BUFFERS_SPEEDHACK=1`| Enables faster vertex buffer copying. May cause crashes.|
|`DRAW_SPEEDHACK=1`| Enables faster code for draw calls. May cause crashes.|
|`DRAW_SPEEDHACK=2`| Enables faster code for draw calls only for large vertex data draws. May cause crashes.|
|`INDICES_DRAW_SPEEDHACK=1`| Enables faster code for handling index buffers for draw calls. May cause crashes.|
|`INDICES_SPEEDHACK=1`| Produces faster draw code but disables support for instanced draws and makes 32 bit (GL_UNSIGNED_INT) indexed draws potentially cause glitches.|
|`MATH_SPEEDHACK=1`| Enables faster code for matrix math calls. May cause glitches.|
|`TEXTURES_SPEEDHACK=1`| Makes glTexSubImage2D/glTexSubImage1D non fully OpenGL compliant but makes rendering pipeline slightly faster. Incompatible with HAVE_TEXTURE_CACHE=1.|
|`SAMPLERS_SPEEDHACK=1`| Enables faster code for samplers resolution during shaders usage. May cause glitches.|
|`PRIMITIVES_SPEEDHACK=1`| Makes draw calls more efficient but GL_LINES and GL_POINTS primitives usage may cause glitches.|
|`DEPTH_STENCIL_HACK=1`| Makes depth and stencil buffers have no memory costs but can cause crashes in some circumstances.|
|`UNIFORMS_SPEEDHACK=1`| Makes uniforms uploading slightly faster but can cause crashes.|
### Misc Flags
| Flag | Description |
| --- | --- |
|`HAVE_TEXTURE_CACHE=1`| Adds file caching for textures not used since a lot of time, acting like a sort of swap implementation to increase effective available memory. (Experimental)|
|`NO_DMAC=1`| Disables sceDmacMemcpy usage. In some rare instances, it can improve framerate.|
|`HAVE_UNFLIPPED_FBOS=1`| Framebuffers objects won't be internally flipped to match OpenGL standards.|
|`HAVE_WVP_ON_GPU=1`| Moves calculation of the wvp in fixed function pipeline codepath to the GPU. Reduces CPU workload and increases GPU one.|
|`SHARED_RENDERTARGETS=1`| Makes small framebuffers objects use shared rendertargets instead of dedicated ones.|
|`SHARED_RENDERTARGETS=2`| Makes small framebuffers objects use shared rendertargets instead of dedicated ones and adds a mechanism for recycling older rendertargets.|
|`CIRCULAR_VERTEX_POOL=1`| Makes temporary data buffers being handled with a circular pool.|
|`CIRCULAR_VERTEX_POOL=2`| Makes temporary data buffers being handled with a circular pool with fallback to regular allocation if the pool gets overrun.|
|`USE_SCRATCH_MEMORY=1`| Makes GL_DYNAMIC and GL_STREAM vbos be configurable to use circular pool instead of regular allocations. Needs CIRCULAR_VERTEX_POOL.|
|`HAVE_PTHREAD=1`| Use pthread instead of sceKernel for starting garbage collector thread.|
|`SINGLE_THREADED_GC=1`| Makes the garbage collector run on main thread.|
|`PHYCONT_ON_DEMAND=1`| Makes the physically contiguous RAM be handled with separate memblocks instead of an heap.|
|`UNPURE_TEXTURES=1`| Makes legal to upload textures without base level.|
|`UNPURE_TEXCOORDS=1`| Makes legal to use multitexturing with fixed-function pipeline with GL_TEXTURE0 disabled.|
|`DISABLE_FFP_MULTITEXTURE=1`| Disables multitexture processing during draw calls performed with fixed function pipeline.|
|`HAVE_WRAPPED_ALLOCATORS=1`| Allows usage of vgl allocators inside wrapped allocators.|
|`HAVE_SHADER_CACHE=1`| Enables fast automatic file caching (based on XH3 xxHash algorithm) for application provided shaders.|
|`NO_CLIB=1`| Disables sceClib functions usage for easier debugging at the cost of slightly slower CPU code.|
|`DISABLE_W_CLAMPING=1`| Disables W clamping during viewport calculation. Might fix some glitches.|
|`NO_TILE_CLIPPER=1`| Disables early tile clipping for scissor testing. Slightly reduces CPU workload but increases GPU workload.|
# Samples
You can find samples in the *samples* folder in this repository.
# Help and Troubleshooting
If you plan to use vitaGL for one of your projects, you can find an official channel to get help with it on Vita Nuova discord server: https://discord.gg/PyCaBx9
# Projects actually using vitaGL
Here you can find a list of projects using vitaGL:
Direct OpenGL Usage:<br>
[Aerofoil Vita](https://www.rinnegatamante.eu/vitadb/#/info/1040) - Port of Glider PRO<br>
[Anomaly 2 Vita](https://www.rinnegatamante.eu/vitadb/#/info/1050) - Port of Anomaly 2<br>
[Anomaly Defenders Vita](https://www.rinnegatamante.eu/vitadb/#/info/1051) - Port of Anomaly Defenders<br>
[Anomaly Korea](https://www.rinnegatamante.eu/vitadb/#/info/1047) - Port of Anomaly Korea<br>
[Anomaly WE Vita](https://www.rinnegatamante.eu/vitadb/#/info/1046) - Port of Anomaly Warzone Earth HD<br>
[AvP Gold](https://www.rinnegatamante.eu/vitadb/#/info/569) - Port of Aliens versus Predator: Gold Edition<br>
[Baba Is You Vita](https://www.rinnegatamante.eu/vitadb/#/info/828) - Port of Baba Is You<br>
[Billy Frontier Vita](https://www.rinnegatamante.eu/vitadb/#/info/1001) - Port of Billy Frontier<br>
[Bugdom](https://www.rinnegatamante.eu/vitadb/#/info/841) - Port of Bugdom<br>
[bc2_vita](https://www.rinnegatamante.eu/vitadb/#/info/714) - Port of Battlefield Bad Company 2 Mobile<br>
[Crazy Taxi Vita](https://www.rinnegatamante.eu/vitadb/#/info/728) - Port of Crazy Taxi Classic<br>
[Cro-Mag Rally Vita](https://www.rinnegatamante.eu/vitadb/#/info/872) - Port of Cro-Mag Rally<br>
[CrossCraft Classic](https://www.rinnegatamante.eu/vitadb/#/info/848) - Multiplatform Minecraft Classic clone<br>
[d3es-vita](https://github.com/Rinnegatamante/d3es-vita) - Port of Doom 3<br>
[Daedalus X64](https://www.rinnegatamante.eu/vitadb/#/info/553) - Port of Daedalus X64 (N64 Emulator)<br>
[Dead Space Vita](https://www.rinnegatamante.eu/vitadb/#/info/999) - Port of Dead Space (Android)<br>
[Death Road to Canada Lite](https://www.rinnegatamante.eu/vitadb/#/info/846) - Port of Death Road to Canada<br>
[Doom64EX](https://www.rinnegatamante.eu/vitadb/#/info/881) - Port of Doom64EX (Doom 64 sourceport)<br>
[Fade to Black](https://www.rinnegatamante.eu/vitadb/#/info/367) - Port of Fade to Black<br>
[Fahrenheit Vita](https://www.rinnegatamante.eu/vitadb/#/info/835) - Port of Fahrenheit: Indigo Prophecy<br>
[FF3-Vita](https://www.rinnegatamante.eu/vitadb/#/info/725) - Port of Final Fantasy III (3D Remake)<br>
[FF4-Vita](https://www.rinnegatamante.eu/vitadb/#/info/726) - Port of Final Fantasy IV (3D Remake)<br>
[FF4AY_Vita](https://www.rinnegatamante.eu/vitadb/#/info/989) - Port of Final Fantasy IV: The After Years (3D Remake)<br>
[FF5-Vita](https://www.rinnegatamante.eu/vitadb/#/info/733) - Port of Final Fantasy V<br>
[Flycast](https://www.rinnegatamante.eu/vitadb/#/info/605) - Port of Flycast (Dreamcast Emulator)<br>
[Funky Smugglers Vita](https://www.rinnegatamante.eu/vitadb/#/info/1044) - Port of Funky Smugglers<br>
[Hassey Collection](https://www.rinnegatamante.eu/vitadb/#/info/1014) - Port of Galcon 2: Galactic Conquest and BREAKFINITY<br>
[Hurrican](https://www.rinnegatamante.eu/vitadb/#/info/617) - Port of Hurrican<br>
[Isotope 244 Collection](https://www.rinnegatamante.eu/vitadb/#/info/873) - Port of Machines at War 3 and Land Air Sea Warfare<br>
[JetMan 3D](https://www.rinnegatamante.eu/vitadb/#/info/719) - Fanmade remake of Jetpac for ZX Spectrum<br>
[jfduke3d-vita](https://www.rinnegatamante.eu/vitadb/#/info/711) - Port of JFDuke3D (Duke Nukem 3D sourceport)<br>
[jfsw-vita](https://www.rinnegatamante.eu/vitadb/#/info/705) - Port of JFSW (Shadow Warrior Classic sourceport)<br>
[Lugaru HD](https://www.rinnegatamante.eu/vitadb/#/info/853) - Port of Lugaru<br>
[Mass Effect Infiltrator Vita](https://www.rinnegatamante.eu/vitadb/#/info/1019) - Port of Mass Effect: Infiltrator<br>
[Nanosaur Vita](https://www.rinnegatamante.eu/vitadb/#/info/851) - Port of Nanosaur<br>
[Nazi Zombies Portable](https://www.rinnegatamante.eu/vitadb/#/info/757) - Port of Nazi Zombies Portable<br>
[Neverball Vita](https://www.rinnegatamante.eu/vitadb/#/info/873) - Port of Neverball<br>
[Neverputt Vita](https://www.rinnegatamante.eu/vitadb/#/info/874) - Port of Neverputt<br>
[Pekka Kana 2 Vita](https://www.rinnegatamante.eu/vitadb/#/info/847) - Port of Pekka Kana 2<br>
[Poppy Kart Collection](https://www.rinnegatamante.eu/vitadb/#/info/1030) - Port of Poppy Kart and Poppy Kart 2<br>
[prboom-plus](https://www.rinnegatamante.eu/vitadb/#/info/591) - Port of PrBoom Plus (Doom engine sourceport)<br>
[Quakespasm-Spiked](https://www.rinnegatamante.eu/vitadb/#/info/716) - Port of Quakespasm Spiked (Limit removed Quake Engine sourceport)<br>
[Rigel Engine](https://www.rinnegatamante.eu/vitadb/#/info/988) - Port of Duke Nukem II<br>
[RVGL Vita](https://www.rinnegatamante.eu/vitadb/#/info/840) - Port of RVGL<br>
[rvm_soniccd-vitagl](https://github.com/fgsfdsfgs/rvm_soniccd/tree/vitagl) - Port of rvm_soniccd (Sonic CD decompilation)<br>
[Sleepwalker's Journey Vita](https://www.rinnegatamante.eu/vitadb/#/info/1048) - Port of Sleepwalker's Journey<br>
[sm64-vita](https://github.com/bythos14/sm64-vita) - Port of Super Mario 64<br>
[srb2-vita](https://github.com/Rinnegatamante/srb2-vita) - Port of Sonic Robo Blast 2<br>
[StaticJK](https://github.com/Rinnegatamante/StaticJK) - Port of Star Wars: Jedi Academy<br>
[TheXTech Vita](https://www.rinnegatamante.eu/vitadb/#/info/727) - Port of Super Mario Bros X<br>
[Tomb Raider 1 & 2 Classic Collection](https://www.rinnegatamante.eu/vitadb/#/info/845) - Port of Tomb Raider and Tomb Raider 2<br>
[TWoM Vita](https://www.rinnegatamante.eu/vitadb/#/info/802) - Port of This War of Mine and This War of Mine: Stories - Father's Promise<br>
[VITA Homebrew Sorter](https://www.rinnegatamante.eu/vitadb/#/info/655) - App to sort your app.db<br>
[VitaDB Downloader](https://www.rinnegatamante.eu/vitadb/#/info/877) - Homebrew store app<br>
[VITAlbum](https://www.rinnegatamante.eu/vitadb/#/info/566) - Filebrowser and image viewer app<br>
[vitaET](https://github.com/Rinnegatamante/vitaET) - Port of ET: Legacy (Wolfenstein: Enemy Territory)<br>
[vitaHexenII](https://www.rinnegatamante.eu/vitadb/#/info/196) - Port of Hexen II<br>
[vitaQuake](https://www.rinnegatamante.eu/vitadb/#/info/10) - Port of Quake I and mission packs<br>
[vitaQuakeII](https://www.rinnegatamante.eu/vitadb/#/info/278) -Port of Quake II and mission packs<br>
[vitaQuakeIII](https://www.rinnegatamante.eu/vitadb/#/info/375) - Port of ioquake3 (Quake III: Arena, Quake III: Team Arena, OpenArena, Urban Terror)<br>
[vitaRTCW](https://www.rinnegatamante.eu/vitadb/#/info/459) - Port of iortcw (Return to Castle Wolfenstein)<br>
[vitaVoyager](https://www.rinnegatamante.eu/vitadb/#/info/491) - Port of lilium-voyager (Star Trek Voyager: Elite Force)<br>
[vitaXash3D](https://www.rinnegatamante.eu/vitadb/#/info/365) - Port of Xash3D (Half Life, Counter Strike 1.6)<br>
[World of Goo Vita](https://www.rinnegatamante.eu/vitadb/#/info/806) - Port of World of Goo<br>
[YoYo Loader](https://www.rinnegatamante.eu/vitadb/#/info/815) - Loader for Game Maker Studio made games<br>
Libraries:<br>
[imgui_vita](https://github.com/Rinnegatamante/imgui-vita) - Port of dear imGui <br>
[sdl12_gl](https://github.com/Rinnegatamante/SDL-Vita/tree/sdl12_gl/src) - SDL 1.2 Vita port adapted to work with vitaGL as renderer backend<br>
[SDL2_vitagl](https://github.com/Northfear/SDL/tree/vitagl) - SDL2 Vita port adapted to work with vitaGL as renderer backend<br>
sdl12_gl Apps:<br>
[Dstroy Vita](https://www.rinnegatamante.eu/vitadb/#/info/383) - Port of Dstroy<br>
[meritous](https://www.rinnegatamante.eu/vitadb/#/info/411) - Port of meritous<br>
[SuperMarioWar](https://www.rinnegatamante.eu/vitadb/#/info/422) - Port of Super Mario War<br>
[vitaWolfen](https://www.rinnegatamante.eu/vitadb/#/info/31) - Port of Wolf4SDL (Wolfenstein 3D)<br>
[Zelda3T](https://www.rinnegatamante.eu/vitadb/#/info/334) - Port of Zelda: Time to Triumph<br>
[ZeldaNSQ](https://www.rinnegatamante.eu/vitadb/#/info/350) - Port of Zelda: Navi's Quest<br>
[ZeldaOLB](https://www.rinnegatamante.eu/vitadb/#/info/265) - Port of Zelda: Oni Link Begins<br>
[ZeldaROTH](https://www.rinnegatamante.eu/vitadb/#/info/109) - Port of Zelda: Return of the Hylian<br>
================================================
FILE: format.bat
================================================
@echo off
cd source
for /f %%f in ('dir *.c *.h /b/s') do (
echo.%%f | findstr /C:"\\shaders\\">nul || (clang-format -i %%f)
)
cd ..
================================================
FILE: samples/blit_framebuffer/Makefile
================================================
TITLEID := VGLFBBLIT
TARGET := blit_framebuffer
SOURCES := .
INCLUDES := include
LIBS = -lvitaGL -lSceLibKernel_stub -lSceAppMgr_stub -lSceAppUtil_stub -lmathneon \
-lc -lSceCommonDialog_stub -lm -lSceGxm_stub -lSceDisplay_stub -lSceSysmodule_stub \
-lzip -lz -lvitashark -lSceShaccCgExt -ltaihen_stub -lSceShaccCg_stub \
-lSceKernelDmacMgr_stub -lSceCtrl_stub -ltoloader
CFILES := $(foreach dir,$(SOURCES), $(wildcard $(dir)/*.c))
CPPFILES := $(foreach dir,$(SOURCES), $(wildcard $(dir)/*.cpp))
BINFILES := $(foreach dir,$(DATA), $(wildcard $(dir)/*.bin))
OBJS := $(addsuffix .o,$(BINFILES)) $(CFILES:.c=.o) $(CPPFILES:.cpp=.o)
PREFIX = arm-vita-eabi
CC = $(PREFIX)-gcc
CXX = $(PREFIX)-g++
CFLAGS = -g -Wl,-q -O2 -ftree-vectorize
CXXFLAGS = $(CFLAGS) -fno-exceptions -std=gnu++11 -fpermissive
ASFLAGS = $(CFLAGS)
all: $(TARGET).vpk
$(TARGET).vpk: eboot.bin
vita-mksfoex -s TITLE_ID=$(TITLEID) "$(TARGET)" param.sfo
vita-pack-vpk -s param.sfo -b eboot.bin $@
eboot.bin: $(TARGET).velf
vita-make-fself -s $< eboot.bin
%.velf: %.elf
vita-elf-create $< $@
$(TARGET).elf: $(OBJS)
$(CXX) $(CFLAGS) $^ $(LIBS) -o $@
clean:
@rm -rf *.velf *.elf *.vpk $(OBJS) param.sfo eboot.bin
================================================
FILE: samples/blit_framebuffer/main.c
================================================
#include <vitasdk.h>
#include <vitaGL.h>
#include <libtoloader.h>
int main() {
// Initializing graphics device
vglInitExtended(0, 960, 544, 4 * 1024 * 1024, SCE_GXM_MULTISAMPLE_4X);
// Setting screen clear color
glClearColor(0.26f, 0.46f, 0.98f, 1.0f);
// Enabling depth test
glEnable(GL_DEPTH_TEST);
// Initializing mvp matrix with a perspective full screen matrix
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(90.0f, 960.f/544.0f, 0.01f, 10000.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glScalef(0.3f, 0.3f, 0.3f);
glTranslatef(0.0f, 0.0f, -10.0f);
glViewport(0, 0, 960, 544);
// Loading 3D model
to_model bunny;
to_loadObj("app0:bunny.obj", &bunny);
// Create a fullscreen fbo with an attached texture to draw on
GLuint fbo_tex, fbo;
glGenTextures(1, &fbo_tex);
glBindTexture(GL_TEXTURE_2D, fbo_tex);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 960, 544, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
glGenFramebuffers(1, &fbo);
glBindFramebuffer(GL_FRAMEBUFFER, fbo);
glFramebufferTexture(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, fbo_tex, 0);
// Main loop
for (;;) {
// Clear color and depth buffers
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// Drawing our model with vertex arrays
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, bunny.pos);
glRotatef(1.0f, 0.0f, 0.0f, 1.0f); // Rotating model at each frame by 1 on axis x and axis w
glRotatef(0.5f, 0.0f, 1.0f, 0.0f); // Rotating model at each frame by 0.5 on axis x and 1.0 on axis z
glDrawArrays(GL_TRIANGLES, 0, bunny.num_vertices);
glDisableClientState(GL_VERTEX_ARRAY);
// Blit part of the framebuffer on screen stretched to fullscreen
glBlitNamedFramebuffer(fbo, 0, 200, 50, 760, 494, 0, 0, 960, 544, GL_COLOR_BUFFER_BIT, GL_LINEAR);
// Performing buffer swap
vglSwapBuffers(GL_FALSE);
}
}
================================================
FILE: samples/camera/Makefile
================================================
TITLEID := VGLCAMERA
TARGET := camera
SOURCES := .
INCLUDES := include
LIBS = -lvitaGL -lSceLibKernel_stub -lSceAppMgr_stub -lSceAppUtil_stub -lmathneon \
-lc -lSceCommonDialog_stub -lm -lSceGxm_stub -lSceDisplay_stub -lSceSysmodule_stub \
-lvitashark -lSceShaccCg_stub -lSceKernelDmacMgr_stub -lstdc++ -lSceCtrl_stub \
-ltoloader -lSceShaccCgExt -ltaihen_stub
CFILES := $(foreach dir,$(SOURCES), $(wildcard $(dir)/*.c))
CPPFILES := $(foreach dir,$(SOURCES), $(wildcard $(dir)/*.cpp))
BINFILES := $(foreach dir,$(DATA), $(wildcard $(dir)/*.bin))
OBJS := $(addsuffix .o,$(BINFILES)) $(CFILES:.c=.o) $(CPPFILES:.cpp=.o)
PREFIX = arm-vita-eabi
CC = $(PREFIX)-gcc
CXX = $(PREFIX)-g++
CFLAGS = -g -Wl,-q -O2 -ftree-vectorize
CXXFLAGS = $(CFLAGS) -fno-exceptions -std=gnu++11 -fpermissive
ASFLAGS = $(CFLAGS)
all: $(TARGET).vpk
$(TARGET).vpk: eboot.bin
vita-mksfoex -s TITLE_ID=$(TITLEID) "$(TARGET)" param.sfo
vita-pack-vpk -s param.sfo -b eboot.bin \
-a bunny.obj=bunny.obj \
-a plane.obj=plane.obj \
-a lambertian.vert=lambertian.vert \
-a lambertian.frag=lambertian.frag $@
eboot.bin: $(TARGET).velf
vita-make-fself -s $< eboot.bin
%.velf: %.elf
vita-elf-create $< $@
$(TARGET).elf: $(OBJS)
$(CC) $(CFLAGS) $^ $(LIBS) -o $@
clean:
@rm -rf *.velf *.elf *.vpk $(OBJS) param.sfo eboot.bin
================================================
FILE: samples/camera/bunny.obj
================================================
# Blender v2.78 (sub 0) OBJ File: 'bunny.blend'
# www.blender.org
o bunny_bunny.001
v -0.424966 0.664264 -1.415270
v -0.347866 0.875514 -1.395720
v -0.230616 0.776564 -1.407920
v -2.888216 0.903114 0.245930
v -2.850616 0.899914 0.013280
v -2.877166 0.836464 0.152130
v 1.007634 1.961914 -0.000970
v 0.649034 1.882964 0.018380
v 0.881184 1.953914 0.247130
v 0.543334 1.843864 -0.106820
v 0.423234 1.820364 -0.026970
v 0.540034 1.864913 0.239230
v 0.905934 1.922114 -0.178170
v 0.505284 1.843914 0.447630
v 0.390384 1.819013 0.324530
v 0.321234 1.744264 0.576380
v -2.390116 3.210114 -0.002620
v -2.389966 3.248614 0.316081
v -2.157116 3.244264 0.033030
v 0.036584 1.529514 0.852730
v -0.140466 1.429164 1.061680
v 0.070334 1.463064 1.025730
v -2.016516 2.561314 -0.898920
v -1.914716 2.655514 -1.138620
v -1.827416 2.615964 -0.974720
v -0.044366 1.387813 1.103780
v -1.531616 -2.325437 1.770579
v -1.451566 -2.270236 1.766130
v -1.574966 -2.248086 1.646430
v -2.079766 3.248713 -0.288969
v -1.918216 3.199214 -0.233269
v -1.939366 3.203214 -0.341870
v 2.245034 -2.786936 -0.253520
v 2.206084 -2.734486 -0.211170
v 2.140634 -2.761286 -0.199920
v -2.901366 0.974164 0.063430
v -0.868966 3.564914 -0.074219
v -0.874266 3.676014 -0.136319
v -0.989716 3.492663 -0.017269
v -2.330516 3.895214 -1.769969
v -2.349666 3.810864 -1.611920
v -2.185316 3.845464 -1.506169
v 0.070284 1.317414 1.200030
v -0.115766 1.207813 1.291030
v -2.297166 3.787714 -1.502069
v -1.963466 2.981414 -2.511170
v -1.957766 3.041414 -2.667619
v -1.897816 3.051815 -2.631819
v -2.167066 3.234614 -0.201270
v -2.965366 0.596814 0.568230
v -2.792566 0.757564 0.823480
v -2.904516 0.753114 0.500130
v -1.909416 4.500014 -3.293869
v -1.972116 4.511465 -3.182019
v -1.780916 4.446264 -3.302769
v -0.368416 4.268464 -0.808669
v -0.517966 4.176664 -0.708419
v -0.352716 4.257964 -0.653619
v 0.635734 1.863414 0.574430
v 0.532484 1.768064 0.763230
v 0.757734 1.839764 0.813230
v -1.949266 4.018214 -2.289069
v -2.053466 4.022514 -2.089069
v -1.894366 3.899964 -1.968469
v 1.178384 1.985514 0.561180
v 1.014434 1.927664 0.768330
v 1.140184 1.923314 0.869330
v -1.362916 3.137714 0.951431
v -1.518966 3.182513 0.978781
v -1.465716 3.100813 1.190130
v -2.230216 4.457715 -2.907919
v -2.272366 4.451715 -2.961419
v -2.309916 4.401914 -2.815119
v -3.172866 2.071364 0.477530
v -3.099816 2.200114 0.592130
v -3.094966 2.206764 0.387930
v -2.046516 3.949114 -1.828119
v -0.079266 4.421114 -1.016319
v -0.053116 4.463464 -0.889319
v 0.056834 4.540964 -0.972119
v -1.047766 -2.771186 -1.024670
v -0.976816 -2.851386 -1.113120
v -1.065716 -2.857486 -1.032871
v 0.372834 -2.613686 -0.943670
v 0.162334 -2.616236 -0.996821
v 0.315184 -2.611586 -1.168471
v 0.505434 -0.728587 2.373530
v 0.370234 -0.595037 2.384230
v 0.350034 -0.762936 2.268830
v -1.201866 3.065814 0.377780
v -1.264766 3.123764 0.523281
v -1.209416 3.004814 0.597530
v -0.018166 1.733464 0.064130
v -0.209366 1.799314 0.268430
v -0.088716 1.752764 0.266080
v 0.308684 1.804914 0.202130
v 0.873284 1.892814 0.756380
v -1.357566 3.251264 0.176330
v -1.477366 3.250714 0.147431
v -1.453716 3.229164 0.358281
v -3.186616 1.199614 0.522280
v -3.244516 1.346464 0.623280
v -3.192266 1.211064 0.337530
v -2.823066 0.839064 0.677330
v -2.897066 -0.381686 0.228580
v -2.908266 -0.320086 0.234780
v -2.889966 -0.328486 0.060780
v -2.177016 3.943764 -1.733319
v -1.904716 3.481314 -1.010169
v -1.948366 3.404314 -0.807319
v -1.822366 3.295414 -0.848370
v -2.866266 -0.453736 -0.026020
v -2.895716 -0.492586 0.300880
v 0.173584 1.764864 0.252830
v -2.079166 3.032814 -2.648319
v -1.985116 3.090365 -2.793870
v 1.160734 1.957964 -0.238020
v 0.818434 1.936164 0.427380
v -2.103916 -2.815036 -0.444370
v -2.098316 -2.729136 -0.445670
v -2.037216 -2.785336 -0.603821
v 0.210234 1.701313 0.568280
v 0.002184 1.581164 0.728930
v 0.114934 1.596714 0.770630
v -3.160516 1.291863 1.206780
v -3.207766 1.380463 1.319580
v -3.174716 1.459963 1.093180
v 0.936134 1.750963 1.092580
v 0.810734 1.760314 1.023130
v 0.748834 1.645314 1.188580
v 0.220884 1.570014 0.926730
v -0.129816 1.556214 0.855930
v 0.331034 1.657664 0.775230
v 2.129334 1.945964 0.013580
v 2.230534 1.908563 0.205430
v 2.264634 1.878064 -0.089270
v -0.301816 -2.810436 1.334579
v -0.382366 -2.824536 1.249430
v -0.310466 -2.809036 1.217630
v -2.640466 -0.890336 0.006030
v -2.661366 -0.797836 0.308730
v -2.689116 -0.744536 0.185580
v -3.225316 1.849313 0.301380
v -3.182066 2.017264 0.249830
v -3.172616 1.954513 0.137180
v -3.044516 0.022564 0.225630
v -3.003666 0.133514 0.134230
v -2.993016 -0.086986 -0.077320
v -2.855416 -0.558436 0.125730
v -1.131766 -1.434187 1.217330
v -1.054566 -1.484736 1.305430
v -1.093116 -1.375287 1.309530
v -2.027516 3.878014 -1.654820
v 2.269884 1.882664 0.503030
v 2.017684 1.980564 0.503330
v 2.178584 1.876313 0.736580
v -1.229466 2.357764 -0.450220
v -1.098566 2.315714 -0.325570
v -1.198566 2.121114 -0.581320
v 0.933884 1.849313 0.916280
v 1.517034 2.036263 0.390230
v 1.240834 2.010614 0.164730
v 1.294234 2.003864 0.490530
v 1.422034 2.027463 0.132130
v 1.493984 2.012764 -0.161520
v 0.258334 4.669014 -1.008769
v 0.307784 4.606164 -0.955919
v 0.311684 4.689914 -1.009319
v 1.257334 1.924864 0.881380
v 1.229334 1.817414 1.098330
v -1.831466 3.940314 -2.383669
v -1.818966 3.855414 -2.071919
v -1.609866 -2.328686 1.710580
v -1.016266 3.651914 -0.156569
v -1.141166 3.507114 -0.053369
v -2.132566 -2.834186 -0.383770
v 4.302784 -0.939686 0.417480
v 4.365335 -1.096286 0.618780
v 4.391334 -1.008086 0.331930
v 3.546634 0.597064 0.013880
v 3.492884 0.706064 -0.135970
v 3.462184 0.772664 0.131980
v -2.852166 -0.549186 -0.009370
v -1.780966 3.120964 -2.286870
v -1.795016 3.207714 -2.517469
v -1.741216 3.221014 -2.354520
v -1.463416 2.981514 1.284880
v -1.358366 3.072363 1.073030
v -1.277316 3.078014 0.856530
v 1.169934 1.715364 1.216030
v 1.322134 1.675864 1.270530
v -2.232316 3.264514 -0.381019
v -2.322316 3.198414 -0.288319
v -0.074166 -2.800136 0.627679
v -0.141066 -2.817386 0.790079
v -0.189616 -2.844286 0.745329
v -1.265766 3.194664 0.250080
v -1.158766 3.084914 0.244030
v -1.298316 3.175564 0.350031
v -2.183466 4.261814 -2.602469
v -2.302616 4.195865 -2.435219
v -2.215916 4.145814 -2.329169
v 0.949784 4.141464 -1.813669
v 0.869084 4.318164 -1.867069
v 0.947184 4.291064 -1.867569
v -3.057466 2.281264 0.284880
v -2.993066 2.356964 0.152030
v -3.026366 2.277313 0.160630
v -3.211366 1.350464 0.816730
v -3.165966 1.244763 0.730080
v 2.075034 0.347264 -1.553270
v 2.181334 0.251264 -1.586570
v 2.011984 0.284614 -1.635270
v -3.031916 0.202514 0.343830
v -3.010116 0.267814 0.014630
v -0.555016 -2.823036 1.398630
v -0.715516 -2.820036 1.380829
v -0.640216 -2.821737 1.250529
v -2.625166 1.697464 2.204880
v -2.528916 1.820713 2.269780
v -2.678366 1.860564 2.209730
v 1.593534 1.981414 0.759080
v 1.377384 1.976013 0.708830
v 1.396534 1.910564 0.936580
v -1.785966 0.538264 -1.269320
v -1.759516 0.658514 -1.250070
v -1.645516 0.635814 -1.308220
v -3.092266 2.166614 0.152330
v 3.598334 0.299864 -0.347670
v 3.556234 0.478064 -0.345420
v 3.579484 0.475014 -0.179670
v -1.084166 -2.118436 0.550180
v -1.147566 -2.085536 0.699880
v -1.120816 -1.907686 0.662780
v -2.325766 3.218013 0.931330
v -2.397216 3.147563 1.121180
v -2.217466 3.141713 1.210680
v 0.754584 1.862264 -0.282770
v 3.856884 -1.197836 0.969230
v 3.940134 -1.030987 0.809730
v 3.779584 -1.118937 0.860880
v -2.105316 4.512514 -3.058669
v -2.234066 4.493565 -3.095319
v -2.939966 2.352764 -0.067070
v -2.815266 2.605564 -0.089420
v -2.852116 2.451214 -0.242920
v -2.806416 2.726063 -0.082520
v -3.003416 2.746414 0.101880
v -2.874816 2.876864 -0.024420
v -1.789066 3.951414 -2.566020
v -1.753466 3.819964 -2.298669
v -2.511016 3.232814 0.542130
v -2.761716 3.155814 0.626781
v -2.527266 3.195913 0.850531
v -2.542266 1.578964 2.151730
v -2.458766 1.638563 2.206930
v -2.466016 2.012763 2.252180
v -2.560066 2.179913 2.157830
v -2.660766 2.003814 2.196480
v -3.285166 1.511464 0.623180
v -3.276966 1.541914 0.811280
v -3.297966 1.651514 0.581880
v -3.107266 1.094264 0.339880
v 0.695034 1.761714 0.930080
v 0.515784 1.679114 0.914130
v 0.527984 1.616614 1.065630
v -1.123066 3.385714 0.055481
v -1.964816 -0.853386 -1.094770
v -1.883816 -0.727536 -1.231570
v -1.799366 -0.864136 -1.185320
v -1.193966 -2.093786 1.499330
v -1.266366 -2.089536 1.453830
v -1.305316 -2.188236 1.678580
v -2.404316 2.138563 2.205130
v -2.516516 2.349863 2.068430
v -2.433116 2.523113 1.962581
v -2.423466 2.729964 1.782331
v -2.593766 2.456064 1.952430
v 1.446384 2.015264 0.529630
v -2.425466 2.878714 1.606130
v -2.620616 2.887713 1.475080
v -2.538416 2.754913 1.701130
v -2.893816 -0.328586 0.476530
v -0.159416 -1.989386 -1.028420
v -0.191216 -2.013136 -0.970420
v -0.190516 -1.894936 -0.916970
v -2.248466 3.724964 -1.317369
v -1.186666 2.850513 -0.509970
v -1.035766 2.802664 -0.508520
v -1.138766 2.731664 -0.447370
v -1.238666 3.338364 0.081931
v -1.405216 3.306964 0.058980
v 1.622934 2.042964 0.162080
v 1.827784 2.032514 0.294830
v 1.736534 2.026264 -0.036270
v 1.746184 2.017214 0.552430
v -2.607666 -0.946686 0.350380
v -0.075666 -2.323137 2.110480
v -0.088766 -2.537337 2.201230
v 0.092034 -2.319036 2.157480
v -2.075216 3.232364 -0.080119
v -1.889316 3.247514 0.170831
v -1.800866 3.191764 -0.197069
v -2.839066 -0.597286 0.260180
v -1.207966 -0.859086 -1.242270
v -1.317466 -0.725636 -1.355020
v -1.071316 -0.769736 -1.293720
v -0.285716 1.781713 0.473980
v -0.275416 1.726714 0.625080
v -0.101666 1.688314 0.598280
v -2.383766 1.718813 2.242780
v -2.397766 1.877313 2.273630
v -2.392716 2.306864 2.110080
v -2.416266 3.220264 -0.939919
v -2.397216 3.382464 -0.972269
v -2.435666 3.335064 -1.098119
v -0.354766 3.255064 -0.911119
v -0.308516 3.467564 -1.058919
v -0.197316 3.249264 -0.900270
v 0.412684 1.783163 -0.233020
v -2.698266 -0.745236 0.439880
v 1.948434 1.969914 -0.226420
v 1.887734 2.010214 0.000680
v -2.197316 4.416114 -3.159119
v -2.330266 4.414165 -3.030569
v -1.813266 -0.180386 -1.340170
v -1.954366 0.067414 -1.227570
v -1.788516 0.090914 -1.328670
v 0.800734 -1.524587 2.309480
v 0.889484 -1.762887 2.225380
v 0.911034 -1.630937 2.292030
v -2.376466 1.507813 2.248080
v -0.437566 -0.786486 -1.309220
v -0.344216 -0.635736 -1.376020
v -0.349666 -0.812936 -1.343120
v 0.077034 1.712863 0.460480
v -2.102416 4.333314 -2.783419
v -1.990166 4.400265 -2.973119
v -3.143916 1.467064 -0.008920
v -3.230266 1.446214 0.216430
v -3.183966 1.616364 0.029330
v -2.969566 1.040464 0.048980
v -3.080166 1.105464 0.162930
v -3.127066 1.185614 0.095330
v 1.008634 1.631864 1.299830
v -1.841466 0.924114 -1.062370
v -1.867716 1.129064 -0.964920
v -1.690866 1.004514 -1.134720
v -2.364216 2.122214 -0.741570
v -2.324166 2.266514 -0.717720
v -2.123216 2.188614 -0.795820
v -2.709466 1.342814 -0.528320
v -2.605466 1.511814 -0.638570
v -2.616016 1.244514 -0.549420
v -1.821916 3.281114 -3.011019
v -1.900266 3.209964 -2.982119
v -1.841416 3.348214 -3.142119
v -2.339916 1.316363 2.226430
v -2.297266 1.515713 2.277030
v -2.740716 3.018663 -0.147870
v -2.566066 3.092163 -0.213270
v -2.559916 3.026013 -0.326570
v -2.315866 2.030013 2.227430
v -2.274016 2.216114 2.138430
v -2.280766 2.553114 1.945580
v -2.237015 2.757763 1.776131
v 3.691784 -0.171186 -0.395420
v 3.733234 -0.244286 -0.067770
v 3.681934 -0.318636 -0.310670
v 3.653684 -0.382936 -0.401120
v 3.717034 -0.352186 -0.197870
v -0.452066 2.961814 -0.384420
v -0.289616 3.046264 -0.484870
v -0.287216 3.066464 -0.410070
v -0.033566 3.199714 -0.493720
v -0.161466 3.165514 -0.420920
v 1.684734 1.970064 -0.344620
v 1.831984 1.936314 -0.397620
v 1.509884 1.753514 1.190530
v -3.144766 1.665114 1.763880
v -3.219066 1.543713 1.622930
v -3.180616 1.464963 1.737880
v -0.083666 3.937264 -1.243419
v -0.274116 4.039663 -1.124069
v 0.032484 4.246614 -1.268169
v 0.997734 -2.601836 -0.749620
v 0.670534 -2.614136 -0.600670
v 0.851284 -2.597486 -1.042570
v -2.277666 1.796413 2.249980
v -2.212666 1.923913 2.205730
v -0.542216 3.073364 -0.755320
v -0.380716 3.104964 -0.761620
v 4.393384 -1.570336 0.691630
v 4.369634 -1.297736 0.743980
v 4.292434 -1.380386 0.875830
v -0.382466 -2.106436 -1.053120
v -0.466516 -2.080136 -0.974470
v -0.404366 -2.019386 -0.937770
v 3.715034 -0.024836 -0.188070
v -1.663216 3.186264 -1.946120
v -1.641216 3.289014 -1.800519
v -1.676666 3.084014 -1.809370
v 0.099034 -2.664436 0.599280
v 0.026334 -2.662036 0.736730
v 0.012234 -2.658186 0.636630
v -3.036716 -0.048336 0.332880
v -3.019016 -0.136286 0.144480
v -0.200466 -2.818486 0.919179
v -1.805016 2.289614 -0.791370
v -1.710766 2.500514 -0.737220
v -1.535216 2.365514 -0.700170
v -2.169016 1.354013 2.265680
v -2.196716 1.570813 2.289280
v -2.171616 2.463264 1.974780
v -3.041216 0.390914 0.457130
v -3.044216 0.336314 0.241730
v -1.640716 4.006165 -3.492369
v -1.617016 4.154264 -3.447019
v -1.599616 4.006914 -3.441619
v 4.449234 -1.111686 0.362330
v -3.034316 2.466764 1.313380
v -2.991966 2.687463 1.194930
v -3.043766 2.570263 1.115730
v -1.671566 3.026814 -1.205619
v -1.698816 2.856664 -1.148769
v -1.707166 2.916114 -1.412070
v -2.162016 0.667163 1.492980
v -2.274566 0.721214 1.447980
v -2.282566 0.534114 1.471080
v -0.372266 -1.911836 -0.912470
v -0.533466 -1.873636 -0.940320
v -0.415266 -1.713686 -0.946020
v -2.287566 2.524764 -0.726620
v -2.161316 2.525164 -0.788570
v -2.119966 2.438964 -0.767920
v -2.030466 1.627263 2.262730
v -2.060666 1.789863 2.210580
v -1.062266 2.518614 -0.208220
v -1.020666 2.604314 -0.184770
v -1.030316 2.596214 -0.008720
v -2.927616 2.614314 0.090930
v -3.029716 2.628814 0.256230
v -2.160716 3.617014 -1.048020
v -2.276516 3.577014 -1.062719
v 3.391584 0.859764 0.455480
v 3.300184 0.943464 0.732880
v 3.411584 0.749514 0.713430
v -2.163616 3.716164 -1.249119
v 4.133934 -1.400936 -0.459670
v 4.168584 -1.330736 -0.397570
v 4.269634 -1.520186 -0.345520
v -1.903266 2.790464 -1.665620
v -1.842416 2.865864 -1.832270
v -1.758066 2.876364 -1.621169
v -0.300416 0.284114 -1.551620
v -0.419266 0.486364 -1.492520
v -0.241966 0.572714 -1.498370
v -2.053716 1.386264 2.261230
v 1.890084 -2.256536 1.939980
v 1.975684 -2.324586 1.838279
v 2.003534 -2.251436 1.858630
v 1.719634 1.161014 1.633780
v 1.741634 1.259163 1.573330
v 1.530384 1.336014 1.575930
v 1.517934 -1.903887 2.271680
v 1.674684 -1.946687 2.277179
v 1.530634 -1.796237 2.292630
v -2.061066 2.606963 1.851481
v -2.087766 2.795014 1.714180
v -0.866516 2.744364 -0.386970
v -0.782516 2.833914 -0.526470
v -0.613416 2.879664 -0.486120
v 4.189484 -1.618886 -0.459520
v 4.098485 -1.549886 -0.552370
v 4.162384 -1.529636 -0.494720
v 4.050434 -1.833036 -0.536220
v 4.108334 -1.858136 -0.465820
v 3.874884 -2.099186 -0.528970
v 3.463984 0.671514 -0.351820
v -1.039816 2.168664 0.899030
v -0.911216 1.943514 0.864930
v -0.875466 2.028314 0.688230
v 4.345284 -1.564736 -0.252670
v 4.362234 -1.376586 -0.230370
v -1.678216 3.641764 -2.902470
v -1.686566 3.574064 -3.184869
v -1.661866 3.707764 -3.107369
v -0.470316 -1.617086 -0.958370
v -0.355916 -1.599786 -0.961470
v -3.101416 2.369514 0.507130
v 1.172484 1.655014 1.306280
v -2.103216 0.490613 1.595030
v -1.993266 0.792363 1.497730
v -2.203766 0.780913 1.471980
v 1.806384 0.557813 1.914080
v 1.686184 0.526613 1.872680
v 1.777434 0.458814 1.969230
v -1.409116 -0.635986 -1.376570
v -1.307716 -0.509886 -1.458270
v -1.229466 -0.630336 -1.380620
v -2.107966 1.213114 2.187130
v 1.562284 -2.083586 2.183630
v 3.498234 -1.716686 1.194480
v 3.342434 -1.795537 1.174380
v 3.491734 -1.996137 1.237630
v -2.139616 3.203964 1.050231
v -1.911216 0.509913 1.662080
v -2.068316 0.232213 1.712280
v -1.829466 3.802564 -3.377019
v -1.727966 3.709965 -3.401669
v -1.823666 3.597614 -3.334020
v -2.094266 0.865964 1.467180
v 2.017434 0.557764 1.974530
v 1.035034 -0.041487 2.461330
v 1.305684 0.089163 2.403730
v 1.140434 0.116763 2.408180
v 1.177884 -2.079487 2.144530
v 1.309884 -2.020787 2.238380
v 1.100334 -1.951237 2.224080
v 1.562134 -2.215036 2.056380
v 1.693734 -2.183036 2.103630
v -2.185016 2.683114 -1.188969
v -2.065616 2.692964 -1.323070
v -2.116416 2.664414 -1.146269
v 4.243484 -1.962036 -0.188420
v 3.627334 0.398664 0.141530
v 3.659684 0.312514 -0.034320
v 1.961784 0.836864 1.644930
v 1.831984 0.797563 1.672280
v 1.887634 0.754564 1.731280
v 1.839734 -0.192437 2.408380
v 1.917434 -0.074637 2.338980
v 1.747734 0.009263 2.338230
v 4.110284 -1.979836 -0.380020
v -3.197716 2.037414 0.648780
v -3.181016 2.019114 0.824730
v 1.558834 0.387163 2.123130
v 1.437584 0.401713 2.150180
v 1.436334 0.312214 2.262930
v -3.230816 1.678914 0.217530
v -2.854766 2.600663 -0.011570
v 1.691834 1.888414 0.973430
v 1.597534 1.816613 1.076930
v -2.046216 -0.022887 1.709230
v -1.942016 0.114764 1.729680
v -1.955916 0.906164 1.487930
v 1.657884 -1.059487 2.392480
v 1.555334 -1.101987 2.399530
v 1.533734 -1.185637 2.410130
v 1.687734 1.488464 1.405630
v -0.961216 2.683714 -0.121770
v -0.978866 2.708964 -0.001620
v -1.704616 3.523714 -2.864570
v 4.096034 -2.073236 -0.311070
v -1.754666 2.625814 -0.879320
v -1.745216 2.676414 -0.990370
v 3.545584 -0.976836 -0.712320
v 3.623984 -0.912536 -0.471570
v 3.541884 -1.193386 -0.561670
v -1.697616 3.402864 -2.456219
v 2.020634 1.989164 0.187780
v -1.889816 -0.000887 1.797180
v -1.818216 0.851464 1.527330
v -1.863366 3.184565 -2.915820
v -1.898316 3.130315 -2.851520
v 1.737084 -1.155937 2.376230
v 1.377484 -0.495037 2.479130
v 1.128334 -0.560437 2.489480
v 1.222484 -0.744737 2.547230
v 2.007384 -1.988636 2.101480
v 1.988634 -1.863737 2.200080
v 1.839284 -1.970587 2.191080
v 1.893434 -1.279137 2.351680
v 1.626684 -1.338637 2.441230
v 1.774934 -1.401237 2.388380
v 1.778184 -1.631436 2.280580
v 1.706284 -1.503386 2.393830
v 1.532284 -1.661937 2.317480
v 1.685084 1.668013 1.279980
v 1.523584 1.640064 1.302280
v 1.769334 -2.250986 2.022929
v 1.805534 -2.340786 1.883230
v 1.567534 -2.337037 1.903030
v 1.825634 -2.439236 1.873780
v 1.576334 -2.408587 1.896879
v 1.566884 -2.476036 1.911680
v 3.873484 -2.242886 -0.360620
v 3.960384 -2.231386 -0.265070
v 3.789434 -2.339486 -0.300520
v 1.409734 -1.984487 2.288880
v 1.462534 -2.038237 2.220580
v 3.720584 0.056764 -0.033720
v 3.584534 -0.813986 -0.619470
v 3.677734 -0.622186 -0.459020
v 0.158334 1.737914 -0.140970
v -1.203966 -2.092286 1.338780
v -1.335866 -2.132136 1.542030
v -1.930916 -0.145386 1.802930
v 0.470184 -2.719636 -1.785721
v 0.673484 -2.518836 -1.763170
v 0.644634 -2.700186 -1.734671
v -1.821166 0.318413 1.716730
v -1.805066 0.527513 1.702780
v 1.755884 -0.742737 2.429980
v 1.646834 -0.602137 2.403230
v 1.568484 -0.825087 2.423630
v 2.333384 0.631464 1.850980
v 2.512734 0.687964 1.723930
v 2.364234 0.882014 1.597280
v 1.491334 -0.951237 2.451730
v 1.353984 -1.094837 2.441730
v 1.660134 0.795664 1.703080
v 1.684784 0.974163 1.699280
v 1.560384 1.007014 1.727280
v 1.556184 -0.612237 2.450080
v 1.457284 -0.719536 2.519480
v 1.535684 -0.291937 2.482880
v 1.475434 -0.080787 2.419330
v 1.272084 -0.317637 2.478830
v 1.366384 -2.456386 1.959579
v 1.341134 -2.331786 1.930830
v 1.244584 -2.325136 1.956880
v 1.401684 -1.870087 2.351030
v 1.372084 -1.791487 2.350230
v 1.217284 -1.853287 2.304730
v 1.146284 -1.119487 2.414130
v 1.288984 -0.959337 2.513780
v 1.282584 -1.668087 2.297530
v 1.163684 -1.701037 2.302930
v 1.512134 -0.517236 2.464030
v -1.962616 2.753764 1.701281
v -1.868616 2.718613 1.649381
v -1.953516 2.916764 1.572330
v -0.975316 2.286264 0.097580
v -1.025366 2.525464 0.128480
v -0.985816 2.354314 0.247030
v 3.767784 -0.745186 0.250230
v 3.759984 -0.739186 0.015930
v 3.761184 -0.531886 0.137680
v 3.370384 0.867164 -0.237320
v 4.392184 -1.612286 -0.128820
v -1.717866 -2.317887 1.480630
v -1.663966 -2.255436 1.446880
v -1.887716 -0.392086 1.776480
v -1.824366 -0.200587 1.838230
v -1.959066 -0.268936 1.775530
v -1.756666 -0.058987 1.860230
v -1.767166 0.184164 1.785680
v 1.445134 -1.625687 2.338030
v 1.587234 -1.537687 2.396680
v 1.379234 -1.516237 2.404180
v 1.334634 1.302514 1.605880
v 1.433284 1.432764 1.519830
v 1.200034 1.446163 1.491430
v 1.276884 -1.578287 2.307980
v 1.245434 -1.416937 2.404430
v 1.802884 -1.749937 2.247830
v 1.874434 -0.687987 2.403080
v 1.781334 -0.548787 2.384680
v 3.607584 -0.485436 -0.585470
v 3.650884 -0.240036 -0.537620
v 3.608034 -0.170436 -0.631370
v 3.671634 -0.047286 -0.448370
v 0.158534 3.910164 -0.924969
v -0.027816 3.890264 -0.797319
v 0.030284 3.750314 -0.769169
v -0.307816 1.601114 0.903580
v -0.370716 1.461514 1.097930
v 1.310534 -2.672886 0.149130
v 1.294884 -2.657686 0.317330
v 1.247634 -2.628386 0.281930
v -1.753816 -0.466736 1.795180
v 1.386334 -1.410137 2.441980
v 1.766384 -2.617436 -0.809070
v 1.656134 -2.601486 -0.678970
v 1.632084 -2.597486 -0.875520
v 2.671284 -2.516186 -0.667320
v 2.607934 -2.467986 -0.758620
v 2.831234 -2.300536 -0.722320
v 1.715134 0.336013 2.140130
v 1.864934 0.306113 2.095380
v 1.736984 0.414264 2.001230
v 1.738484 -2.057236 2.186280
v 3.594434 0.062114 -0.559020
v 2.031134 0.006913 2.275730
v 1.853234 0.193613 2.197730
v 2.023684 0.104164 2.219530
v 1.199434 1.376363 1.546580
v 0.094534 4.024114 -0.909219
v 0.110834 4.172413 -0.906869
v -0.021716 4.060214 -0.791519
v 0.077034 4.301464 -0.781269
v -1.068916 -1.872036 0.356980
v -1.119316 -1.756236 0.370980
v -1.247716 -1.744336 0.183330
v -0.406066 4.109014 -0.436219
v -0.679266 3.988314 -0.409169
v -0.616216 3.945814 -0.315719
v -1.662166 -0.103937 1.880430
v -1.665416 0.151514 1.843080
v -1.653766 0.340514 1.750630
v -1.710516 0.399264 1.723830
v 3.575384 -2.019186 1.233480
v 3.531034 -2.153436 1.201680
v 3.753084 -1.945936 1.192880
v 1.781834 0.728814 1.710230
v 1.212884 -2.261636 1.958780
v 1.220084 -0.466036 2.474030
v 1.129684 -0.361387 2.449930
v 1.881234 -2.157237 2.065680
v 2.304384 0.199064 1.997980
v 2.315084 0.474364 1.939930
v 2.146034 0.316864 2.012430
v 1.496534 0.626513 1.793530
v 1.522134 0.766914 1.744930
v 1.326884 0.754114 1.810380
v -1.753516 3.448664 -3.219820
v -1.691566 3.587464 -3.314220
v -1.506616 3.211913 0.775481
v -1.436866 3.219114 0.571680
v -1.644966 3.254464 0.686831
v -1.982466 2.809514 -1.784670
v -1.941066 2.841464 -1.904520
v -2.825216 -0.529136 0.611230
v -2.869616 -0.543836 0.432030
v -2.780916 -0.663436 0.480280
v -1.457966 1.637614 -0.782220
v -1.585416 1.882414 -0.777520
v -1.359166 1.676964 -0.747220
v 0.768284 3.635414 -1.248719
v 0.805134 3.709414 -1.359869
v 0.824034 3.616414 -1.188119
v -1.707066 -0.834736 1.626580
v -1.690666 -0.677587 1.697230
v -1.821566 -0.702887 1.643080
v -1.606366 0.553063 1.713330
v -1.613616 0.722063 1.631930
v -1.666766 0.985664 1.468730
v 3.118384 -2.166837 1.145830
v 3.256434 -2.062286 1.187280
v 3.191484 -2.021837 1.183630
v 3.593684 0.448214 0.339530
v 1.422234 0.947613 1.740680
v 1.427034 1.122113 1.703730
v 1.431034 0.523964 1.835630
v 1.420634 0.605663 1.813330
v -1.863866 3.146264 -2.751470
v 3.614184 -2.474386 -0.247420
v 3.571684 -2.548586 -0.035820
v 3.443584 -2.591886 -0.183470
v 1.712134 0.283114 2.203230
v -1.309016 2.536664 -0.490320
v -1.131516 2.450214 -0.329720
v 2.160034 0.884564 1.642980
v 2.203834 1.105914 1.524480
v 2.088534 1.125414 1.526080
v 1.362034 0.229213 2.327930
v 1.099284 0.243713 2.323930
v -3.173866 1.319464 0.058180
v -1.613066 -2.182636 -0.088220
v -1.483116 -2.130686 -0.084820
v -1.511216 -2.139686 -0.188720
v -3.058466 2.464814 0.787030
v -3.133266 2.510014 0.628130
v -3.100116 2.416013 0.639930
v 0.204034 1.406064 1.183030
v -1.896266 1.793214 -0.837020
v -1.756016 1.825814 -0.826220
v -1.595666 1.586464 -0.832570
v -1.593116 -0.501487 1.765630
v -1.513816 -0.313536 1.800130
v 4.198834 -1.240636 0.917130
v 4.035784 -1.173786 0.942280
v 4.054734 -1.320236 1.020680
v 1.673184 0.609414 1.803980
v 1.662734 0.720013 1.721130
v 1.563534 0.533414 1.827080
v 1.194934 1.051314 1.713530
v 1.346984 -2.172386 2.070530
v 1.395734 -2.109086 2.137330
v -2.417266 -0.656786 1.260680
v -2.433516 -0.428237 1.415330
v -2.519166 -0.473486 1.315230
v 3.709134 -0.496486 -0.325120
v 3.706884 -0.787686 -0.301920
v 1.225884 0.824463 1.801580
v 2.254484 1.144014 1.490080
v 2.192484 1.384163 1.387980
v 2.074634 1.248863 1.461680
v -0.095716 3.377564 -1.016719
v -0.064216 3.290564 -0.919819
v -2.040366 3.418713 -0.720670
v -2.105816 3.314064 -0.478869
v -1.969366 3.282014 -0.563969
v -0.031766 -2.637686 -0.200470
v -0.083966 -2.639986 -0.208970
v -0.070566 -2.629686 -0.382970
v -1.548766 -0.167236 1.859280
v -1.523966 -0.053736 1.862230
v -1.542416 0.079763 1.872530
v -1.425416 0.177813 1.852680
v -1.521366 0.351363 1.753930
v -1.441966 0.688113 1.674480
v -1.550466 1.003064 1.450830
v -1.611966 1.116163 1.422080
v 1.353834 -1.944786 2.312280
v -1.820416 2.995864 -2.136569
v -1.915716 2.966564 -2.311319
v 2.562934 0.014013 2.011180
v 2.357484 0.014263 2.002730
v 2.363684 -0.113936 2.053280
v 1.422584 -2.264236 1.955980
v 3.497934 0.226764 -0.656120
v 3.488434 0.364614 -0.604120
v -1.465266 -0.766037 1.735530
v -1.429766 -0.599686 1.799780
v -1.503816 -0.441537 1.785380
v -1.428816 1.081864 1.404130
v 1.261034 0.683364 1.811930
v 1.068334 0.797014 1.807330
v 1.631684 0.454013 1.941880
v 1.746584 -0.866737 2.438880
v 2.072834 0.449513 2.004480
v 2.175334 0.584114 1.934530
v -2.293366 2.949264 -1.864619
v -2.285566 3.020664 -1.887420
v -2.214366 2.878964 -1.915320
v 1.288084 1.577814 1.400580
v 1.148884 -2.186786 2.028130
v 3.902834 -2.317586 -0.180470
v 3.851534 -2.392036 -0.015520
v 1.882134 -0.832287 2.410930
v 1.989134 -0.761786 2.353780
v -0.914516 3.375214 0.024881
v -0.969216 3.288514 0.075381
v -0.843266 3.229164 -0.008870
v 3.676434 -1.850836 1.234780
v 3.442084 0.538264 -0.564270
v -0.177766 4.376814 -0.778669
v -0.034016 4.451663 -0.758169
v 0.038284 1.740864 0.199530
v -1.441516 -0.242237 1.820780
v -1.470366 -0.097436 1.837230
v -1.358466 0.056763 1.874080
v -1.349116 0.477063 1.763530
v -1.296466 0.833364 1.589930
v -1.382766 1.148014 1.392680
v 1.569084 0.166263 2.340080
v 3.557734 -1.454786 1.061680
v 3.496434 -1.460886 1.074380
v 3.486884 -1.548186 1.106630
v -0.497966 3.378964 -0.972169
v -2.487916 1.242214 -0.637570
v -2.384516 1.340114 -0.729270
v -2.356466 1.197614 -0.668020
v -2.531516 1.768814 -0.693420
v -2.699816 1.834464 -0.634270
v -2.515416 1.867614 -0.693520
v -1.354166 -0.039136 1.866630
v -0.619516 2.928464 -0.602470
v -0.388666 3.022914 -0.625320
v 0.198134 3.282214 -0.583070
v 0.051134 3.211864 -0.581719
v 0.113034 3.224764 -0.647419
v 1.307584 -1.294887 2.441180
v 1.047884 -1.373187 2.416180
v 3.400634 -1.676036 1.151130
v -2.061466 3.136464 -2.843270
v -1.768416 2.769814 -1.275319
v -1.865066 2.712614 -1.315820
v -1.775966 2.814314 -1.457220
v -1.355116 -2.321986 1.836780
v -1.432416 -2.460387 1.910380
v -0.551216 4.132914 -0.586319
v -0.120366 0.375914 -1.542120
v -0.098366 0.673314 -1.507770
v -0.058066 0.597764 -1.532320
v 0.091684 4.076214 -1.330469
v -1.280216 -0.818837 1.694780
v -1.512616 -0.882836 1.659130
v -1.349866 -0.462286 1.854530
v -1.332666 -0.125186 1.847280
v -1.290666 0.283863 1.775480
v 1.802584 1.386814 1.480330
v 1.942834 1.448913 1.419630
v 1.839434 1.549814 1.380030
v 3.521584 -1.314336 1.026180
v 1.101034 -1.740386 2.289530
v 3.233434 0.782214 -0.704670
v 3.220034 0.901764 -0.595670
v 3.316934 0.874664 -0.388320
v -2.647216 2.094364 -0.563420
v -2.715716 2.192664 -0.474820
v -2.563016 2.223364 -0.599870
v -0.091066 3.863214 -1.234569
v 0.073634 3.813514 -1.269069
v -1.306266 -1.037037 1.543380
v -0.637466 -2.809686 1.649230
v -0.566916 -2.748886 1.747779
v -0.748566 -2.801586 1.717029
v -1.280916 -0.490286 1.859630
v -1.264966 -0.220637 1.872730
v -1.255866 0.997764 1.451080
v -1.306316 1.112463 1.382180
v 3.667584 0.189814 0.375330
v 3.685434 0.007214 0.495030
v 3.709484 0.008714 0.244930
v 2.007134 0.756463 1.773080
v 2.058984 0.309213 2.049480
v 1.905634 0.372763 2.034080
v 3.358834 0.701014 -0.473620
v 1.898834 -1.166886 2.349280
v -1.605366 2.510914 -0.661420
v -1.696066 2.603114 -0.735570
v -1.606166 2.603514 -0.617320
v 2.488084 0.286363 1.954280
v 2.740434 -1.767686 -1.451120
v 2.825634 -1.538486 -1.481420
v 2.870284 -1.696636 -1.329870
v -1.820216 -2.243986 -0.136920
v -1.615216 -2.176336 -0.180570
v 0.163584 3.417814 -1.022519
v 0.298884 3.537114 -1.122469
v 0.403184 3.491514 -1.077869
v -3.123516 2.636813 0.738080
v -3.137766 2.677114 0.643680
v 3.756284 -1.607286 1.198930
v -1.304816 -2.566036 1.965430
v -1.446016 -2.601336 1.948679
v -1.221616 -2.408536 1.895480
v -1.168016 -2.321486 1.825780
v 3.648284 -1.502686 1.132630
v -1.468216 -2.181937 1.602929
v -1.862966 3.089114 -2.493419
v -1.723216 -1.482036 -0.421970
v -1.807566 -1.447586 -0.368320
v -1.698166 -1.472536 -0.508070
v -1.244666 -0.322537 1.871080
v -1.231316 0.191163 1.794980
v 2.226284 0.701613 1.812730
v 1.107884 1.071264 1.691430
v 1.086934 0.940463 1.766430
v 3.669784 -1.228836 0.928630
v 3.598634 -1.196386 0.938780
v 3.603884 -1.314636 0.979080
v 3.682884 -1.135186 0.857580
v -1.034266 2.351064 0.501830
v -0.413216 -1.393886 -1.069420
v -0.541966 -2.249186 -1.469170
v -0.465116 -2.264136 -1.556020
v -0.634166 -2.342686 -1.507020
v 1.000584 -1.611887 2.349930
v 0.954284 -1.493237 2.388130
v -0.003266 -2.607987 2.291529
v -0.115866 -2.748137 2.172280
v 0.014084 -2.712987 2.282929
v -1.909816 -1.097336 -0.825620
v -1.908616 -0.971036 -0.992120
v -1.788166 -1.079636 -0.961170
v -2.720616 1.173564 -0.454370
v -2.596816 1.031814 -0.443620
v -1.188766 -0.615686 1.781380
v -1.148066 -0.529586 1.808430
v -1.137716 -0.407636 1.834580
v -1.217416 -0.030237 1.842180
v -1.202616 0.472514 1.716880
v -1.194766 0.824313 1.587330
v -1.203666 1.133214 1.363230
v -1.200966 1.224364 1.309380
v -1.341266 1.221113 1.387380
v 1.149334 0.576314 1.793580
v 1.110734 1.320563 1.558430
v -1.044716 2.442663 -0.131220
v 2.858984 -1.046636 -1.520920
v 2.966034 -1.096086 -1.368120
v 2.879484 -1.238636 -1.394770
v -0.756816 2.809864 -0.203020
v -0.725316 2.812314 -0.274170
v -0.571766 2.932114 -0.251220
v -3.262366 1.407864 0.425930
v -1.815916 2.682864 -1.138170
v -1.738316 2.742614 -1.107620
v -1.163566 -2.221836 1.708079
v -1.145166 -2.104337 1.492930
v -1.178916 -1.295936 1.343930
v -0.097966 3.755114 -1.204369
v -0.017816 3.524314 -1.122319
v -1.114066 -0.847287 1.722480
v -1.109766 -0.184537 1.888480
v -1.136816 0.064914 1.806180
v -1.135216 0.618213 1.653530
v -1.123266 0.952613 1.493280
v -1.712266 2.721364 -0.938820
v 2.025984 1.526664 1.344930
v -1.820016 4.088865 -2.756619
v -1.897616 4.097764 -2.615069
v -3.137666 2.765764 0.782930
v 2.136734 0.939214 -1.308920
v 1.836184 0.831914 -1.400320
v 1.944284 1.065614 -1.346020
v -0.691316 3.350414 -0.884619
v -0.708166 3.455264 -0.903619
v -1.030566 0.187614 1.846930
v -1.104566 0.385813 1.783630
v -1.059366 0.721163 1.591030
v -1.032066 1.066763 1.409580
v -1.156116 -2.081036 1.375230
v 1.557534 -1.415336 2.445130
v -0.917366 2.827064 -0.531670
v -0.702566 2.969013 -0.660320
v 1.900084 0.914864 1.610580
v 2.035184 0.977564 1.579830
v 1.990934 1.145664 1.541630
v -1.217266 3.234314 0.175731
v -1.119866 3.251564 0.133881
v -2.184866 2.592564 -0.841720
v -2.106666 2.602314 -0.940670
v -1.062166 -2.250836 1.708430
v -1.041416 -2.098986 1.498180
v -1.039866 -1.994087 1.405330
v -0.201566 -1.412886 -1.167520
v -0.229316 -1.415786 -1.095420
v -0.298216 -1.248036 -1.148270
v -1.008266 -0.662637 1.803530
v -1.028966 -0.268637 1.883080
v -1.013166 -0.093786 1.862080
v 1.156084 -1.498087 2.398680
v 1.653484 0.407963 2.039880
v 1.652034 -0.215486 2.458580
v 2.463334 0.836913 1.604380
v 2.592334 1.014413 1.461680
v 2.396634 0.982313 1.537880
v 3.756984 -1.742936 1.216030
v 3.767134 -1.517986 1.162580
v 2.511234 -2.803386 -0.460870
v 2.503234 -2.747436 -0.485020
v 2.601384 -2.705336 -0.489970
v -0.957566 1.398363 1.107280
v -0.910916 1.283414 1.200030
v -0.845966 1.488764 0.977630
v 3.100484 -2.631936 -0.392920
v 2.992034 -2.655986 -0.406270
v 2.943434 -2.628086 -0.468670
v 3.423884 -2.121686 1.216280
v -1.272916 -1.320836 -0.850120
v -1.206666 -1.232286 -0.952520
v -1.098216 -1.305636 -0.961420
v -1.190666 2.643714 -0.414470
v -1.050766 2.657464 -0.332970
v -2.200116 -2.774136 -0.076620
v -2.187066 -2.642436 -0.092320
v -2.163416 -2.809036 -0.166620
v -0.986466 -0.444287 1.810630
v -0.979416 0.037713 1.810830
v -0.986166 0.278514 1.824130
v -1.014916 0.487363 1.743230
v -0.967316 0.586264 1.664580
v -0.903266 1.103513 1.371380
v -1.098016 1.285914 1.250630
v 3.363884 -2.253886 1.157930
v 3.764184 -1.309986 1.032480
v -0.067816 -2.741936 0.790780
v 2.195084 -0.734036 2.298480
v 2.362534 -0.755087 2.229130
v 2.281934 -0.618887 2.280130
v -0.977366 -2.217287 1.645480
v -0.939516 -2.114387 1.549830
v -2.946966 -0.219586 0.340230
v -2.985616 -0.224586 0.206830
v -3.134316 2.873714 0.659730
v -0.924916 -0.793987 1.723430
v -0.961816 -0.908887 1.668080
v -0.888316 -0.322186 1.839780
v -0.921016 -0.135786 1.853580
v -0.926066 0.773263 1.619230
v -0.971466 0.915064 1.541680
v -0.989716 1.285064 1.210030
v -1.428366 1.245964 1.457430
v -1.619866 1.223764 1.506280
v -0.975566 3.110364 0.126530
v -1.662116 4.206465 -3.222769
v -1.763366 4.316614 -3.136769
v -1.672816 4.013414 -3.020569
v -0.912066 -1.986587 1.491330
v -0.938916 -1.865837 1.450830
v -2.031116 2.918615 -2.352419
v -0.880766 -0.465086 1.782730
v -0.854216 0.165714 1.777330
v -0.876866 0.427964 1.727630
v 2.489384 1.079613 1.455080
v 2.276534 0.349164 -1.536370
v 2.170334 0.476764 -1.526570
v -0.157566 -2.662286 -1.920420
v -0.290266 -2.461286 -1.872820
v -0.057416 -2.452886 -1.884020
v 0.973134 -2.844186 -1.381770
v 0.867684 -2.814986 -1.308020
v 0.690684 -2.852886 -1.434520
v 2.388984 1.283214 1.403230
v -0.756716 3.801614 -0.206469
v 0.530534 3.683664 -1.272669
v 0.217034 3.703614 -1.230369
v 0.356684 3.856564 -1.352319
v -0.827366 -2.429436 1.791130
v -0.824716 -2.350687 1.758530
v -0.964516 -2.386337 1.800330
v -2.482966 1.344663 2.150530
v -0.859466 -0.839087 1.708380
v -0.821166 -0.637437 1.714830
v -0.804366 -0.020587 1.755380
v -0.850066 0.266013 1.765680
v -0.815066 0.658863 1.684730
v -0.744766 0.761113 1.643930
v 0.890434 4.558764 -1.798469
v 0.919034 4.453165 -1.870569
v 0.872934 4.522214 -1.857769
v -0.094666 3.144764 -0.551169
v -0.185666 3.112714 -0.644469
v -0.040016 3.169014 -0.650119
v 0.860984 3.856514 -1.560669
v 0.923534 4.024514 -1.742719
v 0.963184 3.946314 -1.671869
v -2.026666 3.158914 -2.899770
v 0.427834 -2.585087 1.558530
v 0.375834 -2.587436 1.549879
v 0.336884 -2.602686 1.365029
v -0.766966 -2.161036 1.605080
v -0.802466 -0.991987 1.706980
v -0.691066 0.942713 1.514080
v -0.706666 1.365113 1.150480
v 1.697384 -0.366586 2.451730
v -0.949016 2.118664 -0.146470
v -1.012466 2.246664 -0.183470
v -3.080116 2.710264 0.314080
v -3.043566 2.819064 0.145230
v -2.072866 2.614314 -1.028170
v -1.989966 2.670064 -1.238120
v -0.725466 -1.961186 1.562480
v -3.049516 2.185614 -0.061770
v -2.922566 2.288914 -0.197420
v -3.040316 2.088914 -0.168120
v -0.862516 -1.260286 1.556580
v -0.726816 -1.039336 1.706030
v -0.712466 -0.827686 1.744380
v -0.768866 -0.466787 1.721080
v -0.772416 -0.320886 1.773830
v -0.742766 -0.212236 1.771430
v -0.738766 0.486514 1.716630
v -0.678966 1.057314 1.412230
v -0.638616 1.211564 1.296130
v 4.014984 -2.284636 0.128130
v 3.857084 -2.409086 0.192030
v 2.046134 -2.091186 1.983679
v 1.965484 -2.203236 1.960980
v -0.768666 3.546064 -0.094069
v -0.709466 3.669714 -0.146169
v -2.796566 -0.648036 0.336430
v -0.760766 -1.865536 1.552230
v -0.663116 -1.592637 1.621230
v -0.766116 -1.621137 1.580130
v -0.666766 -0.653836 1.763880
v -0.700166 -0.463436 1.711180
v -0.616766 0.332064 1.702480
v -0.601466 1.402063 1.135080
v -0.716366 1.547764 0.925080
v 4.450834 -1.445536 -0.043970
v 4.478484 -1.574136 0.156230
v 3.749434 -0.339686 0.064480
v 3.748684 -0.489686 -0.115020
v -1.156516 -2.223886 0.423330
v -1.070016 -2.126136 0.467130
v -1.126766 -2.076986 0.320780
v -1.088616 2.723814 0.226030
v -1.061816 2.885264 0.214430
v -1.128116 2.899564 0.345880
v -1.742716 2.937214 -1.759320
v -0.669766 -2.373786 1.715280
v -0.674966 -2.047837 1.581079
v -1.687166 2.924063 1.456430
v -1.880566 2.972564 1.498230
v -1.805866 2.848914 1.541930
v -0.651516 -1.428886 1.661080
v -0.783766 -1.451087 1.589630
v -0.764466 -1.199286 1.629630
v -0.643766 -1.160737 1.680380
v -0.657466 -0.305436 1.732730
v -0.689216 -0.139436 1.726830
v -0.652266 -0.006087 1.734130
v -0.619866 0.153614 1.713180
v -0.601916 0.507163 1.659230
v -0.677766 0.765614 1.618580
v 2.913084 -1.408236 -1.385920
v 2.918984 -1.523436 -1.360470
v 2.493084 -0.225187 2.075530
v 3.746834 -0.523336 0.389380
v -0.612566 3.871464 -0.250669
v -0.573166 -2.110636 1.591530
v -0.577666 -1.874086 1.578880
v -0.592916 -0.691437 1.764930
v -0.598166 -0.497386 1.737630
v -0.624166 -0.150286 1.734930
v -0.572066 0.930514 1.479030
v -0.633266 3.659014 -0.175119
v -0.562366 3.785414 -0.222069
v -1.170616 -2.005887 1.137730
v -1.129266 -2.025036 1.299929
v -1.104616 -1.937787 1.244180
v 1.905184 1.896314 0.933930
v 1.748034 1.734064 1.203230
v 2.006584 1.740614 1.143230
v -2.722366 2.721463 -0.259420
v -2.747316 2.596364 -0.225870
v -0.622316 -2.370736 1.713430
v -0.582216 -2.281236 1.674380
v -0.479316 -1.975086 1.567230
v -0.506966 -1.617236 1.627130
v -0.537266 -1.240836 1.695480
v -0.385916 -1.183136 1.686580
v -0.531966 -0.878537 1.708680
v -0.522666 -0.538287 1.754130
v -0.540016 -0.397187 1.786580
v -0.498466 -0.207737 1.790480
v -0.547866 0.265864 1.719430
v -0.556366 0.655814 1.595080
v -0.524366 1.150163 1.337030
v -0.093416 3.170264 -0.734169
v -0.540016 -2.391086 1.677230
v -0.443666 -1.473587 1.665180
v -0.438116 -0.606286 1.738730
v -0.514316 1.375514 1.158130
v -0.459016 1.533414 1.038880
v 1.098734 -2.429436 2.042479
v 1.118434 -2.262336 1.969080
v 1.383834 -0.838187 2.529630
v 1.256734 -0.868887 2.543880
v -0.511466 3.902364 -0.276619
v -0.444266 4.013314 -0.353969
v 0.851434 4.186464 -1.806619
v -0.485666 -2.345437 1.655630
v -0.423266 -1.850386 1.557180
v -0.392566 -0.948537 1.710330
v -0.426216 -0.257087 1.805330
v -0.472366 -0.084687 1.783330
v -0.447116 -0.000236 1.786880
v -0.402466 0.142564 1.810230
v -0.458616 0.511164 1.670530
v -0.471666 0.730763 1.537980
v -0.438066 0.924114 1.456280
v -0.451716 3.834164 -0.295419
v -0.380966 -2.190886 1.598530
v -0.354166 -2.092937 1.554880
v -0.360466 -1.350037 1.670780
v -0.342566 -0.692037 1.701180
v -0.385316 -0.465187 1.782180
v -0.329716 0.354714 1.761780
v -0.389716 0.427164 1.729230
v -0.408366 1.057014 1.372780
v -0.382016 1.218014 1.238980
v 2.484684 -2.500986 -1.127670
v 2.494584 -2.525986 -0.970970
v 2.421734 -2.675536 -0.883520
v 0.973984 1.528714 1.395430
v 3.859584 -1.734636 1.169530
v -0.404516 3.936464 -0.327269
v -1.642616 3.698314 -3.321869
v -1.632166 3.904315 -3.193619
v 0.324734 3.367014 -0.898169
v 0.107384 3.337714 -0.939520
v -2.844066 3.081164 0.835880
v -0.286216 -1.906986 1.502280
v -0.293716 -1.575086 1.574630
v -0.366216 -0.560737 1.742680
v -0.304366 -0.281237 1.755680
v -0.344566 -0.082387 1.769280
v -0.273516 0.001713 1.832730
v -0.311966 0.609064 1.641730
v -0.298666 0.751263 1.557330
v -0.208566 1.324764 1.184630
v -1.650766 3.526714 -1.921169
v -1.685866 3.569964 -1.768619
v -1.638066 3.417164 -1.769069
v -0.352016 4.015664 -0.371669
v 1.493034 1.968014 -0.360070
v -0.326566 -2.145486 1.588580
v -0.200316 -1.717986 1.490230
v -0.279616 -1.096887 1.674480
v -0.259666 -0.202136 1.740730
v -0.299366 0.964613 1.446130
v -0.891466 2.704014 -0.250370
v -0.819366 2.766814 -0.162620
v -0.967916 2.662663 -0.192770
v -0.301616 4.086964 -0.424969
v -0.258016 4.054714 -0.455469
v -0.108466 4.121614 -0.620719
v -0.168966 4.159463 -0.525969
v -2.952666 2.542264 0.136180
v -2.967116 2.357464 0.067380
v -0.329566 -2.187836 1.639530
v -0.266766 -0.779987 1.692180
v -0.213066 -0.467886 1.690030
v -0.238616 -0.367587 1.707130
v -0.201616 0.264163 1.832230
v -0.161016 0.406914 1.806080
v -0.173166 0.829964 1.559530
v 0.550084 3.512614 -1.092069
v 0.526534 3.413264 -0.893869
v -2.813216 0.980364 -0.166820
v -0.862216 1.544664 0.940030
v -0.813366 1.715564 0.786030
v -0.862766 1.718964 0.869130
v -0.852816 1.827564 0.778580
v -0.241166 -2.027287 1.524530
v -0.180116 -1.461787 1.535330
v -0.225216 -1.284087 1.601230
v -0.143366 -0.540186 1.668280
v -0.136866 0.599114 1.703480
v -1.918016 3.085214 -2.779170
v -1.881266 3.093215 -2.711870
v -0.256016 4.163264 -0.475919
v -2.869366 -0.381486 -0.079870
v -0.106516 -1.179587 1.563830
v -0.161666 -0.888236 1.635030
v -0.105766 -0.660587 1.656830
v -0.168166 -0.284637 1.705180
v -0.145316 -0.164686 1.790480
v -0.152616 0.149664 1.828180
v -0.038416 0.892614 1.539730
v 4.134834 -2.106086 -0.182170
v 1.909034 -1.608437 2.247730
v -0.196866 4.226714 -0.534519
v -0.189616 4.318414 -0.632269
v -0.132216 4.265163 -0.574269
v -0.079366 4.392764 -0.680719
v 3.741234 -0.595086 0.610530
v 3.711434 -0.892536 0.665030
v 3.750134 -0.851886 0.543280
v -2.163166 2.946665 -2.419369
v -2.185316 3.022814 -2.449370
v -2.141866 3.002564 -2.556969
v -0.048566 -1.828536 1.420880
v -0.043866 -1.618937 1.451430
v -0.082016 -0.010836 1.807730
v 3.203834 -1.381386 -1.079470
v 3.306234 -1.198936 -1.055320
v 3.308934 -1.331986 -0.986020
v 3.896484 -1.363336 1.080880
v -1.574016 -2.379486 0.869880
v -1.475916 -2.451986 0.691480
v -1.630966 -2.526386 0.764730
v 2.446534 -2.786036 -0.590470
v 2.533934 -2.675436 -0.576420
v 2.505134 -2.682286 -0.528620
v 0.009184 -1.416736 1.481180
v -0.088766 -0.861036 1.623230
v -0.090166 -0.556837 1.697780
v -0.095166 -0.369637 1.724080
v -0.075016 -0.205237 1.794030
v -0.011616 0.058613 1.811080
v 0.035284 0.186963 1.866430
v -0.015716 0.262313 1.855880
v -0.021116 0.624013 1.700580
v -0.031716 1.078864 1.389830
v 1.261684 0.517213 1.806330
v 3.174184 -1.954886 1.222530
v 1.060534 -0.193987 2.464280
v -0.075216 4.237164 -0.612519
v -0.043866 4.313964 -0.638219
v 1.896334 2.015464 0.398530
v -0.007566 -1.135136 1.556580
v -0.019816 -0.912686 1.616380
v 0.003134 -0.849286 1.653030
v -0.050666 -0.591937 1.736330
v -0.009266 -0.460787 1.875430
v -2.016366 2.510264 -0.819920
v -1.842316 2.458664 -0.779570
v -1.978016 2.402164 -0.789670
v -0.033016 -0.271036 1.831080
v -0.015766 -0.070637 1.830230
v 0.038234 0.376963 1.775880
v 0.000684 0.491563 1.755930
v -0.306816 4.231214 -0.567019
v -1.791916 4.158464 -3.451669
v -1.771416 3.904114 -3.431269
v -0.923766 2.744764 -0.429220
v 0.030934 -1.657136 1.439830
v -1.716416 4.366014 -3.293969
v 0.203384 -0.604637 2.255830
v 0.295284 -0.840487 2.178480
v 0.056684 0.118613 1.841830
v 0.116084 0.995564 1.494180
v 0.153834 1.133863 1.381230
v 0.150834 1.226664 1.288780
v -1.262366 -2.210636 0.821580
v -1.290116 -2.370286 0.632780
v 2.458684 -2.804836 -0.470520
v 4.019284 -2.291286 0.297580
v 0.020784 4.409614 -0.703519
v 0.098584 4.468564 -0.769419
v 0.037134 4.506864 -0.798419
v -1.718166 3.982464 -2.854319
v -1.903616 2.891214 -2.048670
v -1.772016 2.962514 -1.921370
v -1.307016 -1.743136 0.094530
v -1.343966 -1.698386 0.161430
v -2.031166 2.746864 -1.583620
v -1.930166 2.737614 -1.484570
v -2.002266 2.705464 -1.410670
v 0.008384 -1.864187 1.424880
v 0.073934 -1.434386 1.500480
v 0.070584 -1.094586 1.609680
v 0.058184 -0.973736 1.644030
v -2.507566 4.025264 -2.403669
v -2.465716 3.986915 -2.218319
v -2.448716 4.112564 -2.422919
v -1.738366 3.387614 -2.691870
v -3.235266 1.948764 0.541730
v -3.274916 1.557364 0.412030
v 0.110134 0.088413 1.875080
v 0.092084 0.511313 1.781630
v 0.061534 0.826764 1.601230
v 3.939684 -2.315086 -0.067320
v 1.373834 1.463414 -1.042670
v 1.464934 1.290464 -1.266470
v 1.231634 1.333764 -1.154170
v -2.153916 2.786714 -1.544119
v -2.117716 2.815914 -1.726570
v -1.646516 3.178214 -1.346120
v 0.165834 -2.110186 2.054180
v 0.036834 -2.142586 2.011580
v 0.085834 -2.186636 2.097630
v 0.113534 -2.050286 1.905880
v 0.130284 -1.298386 1.602080
v -1.202966 -2.216236 0.730880
v -1.861266 3.180714 -0.550920
v -1.817666 3.126064 -0.434519
v 0.126934 0.214563 1.817130
v 0.159584 0.428214 1.826180
v 0.172784 0.629313 1.749480
v 0.991384 1.332514 -1.159120
v 0.864134 1.156864 -1.267320
v 0.759834 1.324814 -1.159570
v 2.450834 0.488563 1.894330
v 1.091534 -0.954537 2.501430
v 1.048084 1.073264 -1.412120
v 0.910884 0.889814 -1.487520
v 0.914334 1.076664 -1.356070
v -1.229416 -2.154587 0.863980
v 0.258284 -2.275037 2.243379
v 0.216734 -2.176187 2.143380
v 0.233634 -2.412387 2.302979
v 0.076734 -2.425687 2.259180
v 3.351934 0.224214 -0.855670
v 3.172084 0.224064 -1.053220
v 3.153984 0.396014 -1.053120
v 1.764684 1.926913 0.896530
v -1.926366 3.767264 -1.540869
v -2.053266 3.763764 -1.374769
v -2.252266 2.895413 1.621780
v -1.820866 3.775914 -1.785419
v 0.205834 0.237013 1.815380
v 0.266884 0.311063 1.847280
v 0.223784 0.789363 1.678680
v 0.283484 1.062814 1.537880
v 0.190234 4.465964 -0.854219
v 0.278534 4.532914 -0.939169
v 0.217684 4.545313 -0.874869
v 1.799534 0.873764 1.661080
v 0.212384 4.610864 -0.915519
v 0.139784 4.595814 -0.930169
v 0.255434 -2.054986 1.955679
v 0.235984 -1.995636 1.766380
v 0.149034 -1.986187 1.728380
v 0.236484 -1.935586 1.690429
v 0.138184 -1.932036 1.587880
v 1.862534 1.962713 0.749830
v -2.646816 3.199464 0.409380
v -2.569016 -0.957086 -0.086820
v -2.685316 -0.806236 -0.025970
v -3.142666 2.868564 0.508130
v -1.867016 4.285714 -2.954669
v -1.809866 4.178364 -2.904269
v 0.326684 0.558813 1.807530
v 0.296234 1.351014 1.295180
v 4.440384 -1.114236 0.138380
v 4.354784 -1.204586 -0.186020
v 4.334284 -1.064186 -0.097320
v -1.170866 -1.976536 0.834280
v 3.247984 -2.407136 1.043680
v 3.094084 -2.268086 1.113780
v 2.232634 1.455414 1.322830
v 2.444884 1.416713 1.302030
v 4.491834 -1.333586 0.181780
v 0.144184 4.542614 -0.828169
v 0.271984 -2.139836 2.121630
v 0.655634 0.630514 1.757130
v 0.698234 0.448063 1.830580
v 0.816784 0.508263 1.801330
v -2.751666 -0.722236 -0.028420
v -2.801316 -0.586836 -0.142070
v 0.536284 4.752564 -1.269419
v 0.644784 4.706464 -1.426319
v 0.636684 4.801164 -1.484219
v 0.332184 0.378864 1.841280
v 2.025034 0.694464 -1.390920
v 2.113834 0.733614 -1.358470
v 2.184934 0.691764 -1.374020
v 0.410284 -2.255887 2.232379
v 0.340034 -2.053686 1.936829
v 0.319584 -1.995836 1.810630
v 0.347784 -1.930786 1.820830
v 0.209684 -1.862586 1.648680
v 0.167784 0.256614 -1.637070
v 0.056984 0.137914 -1.687920
v -0.011166 0.188264 -1.621620
v -2.508616 4.100064 -2.621319
v -2.510216 4.087364 -2.542769
v -2.488266 4.162664 -2.596819
v -0.917366 2.895714 -0.579920
v -0.766716 3.055464 -0.712420
v -2.979966 0.108664 -0.024070
v 1.998584 1.938863 0.732830
v -1.168466 -1.748386 0.884280
v -1.144716 -1.797786 0.710530
v -0.248916 3.743164 -1.164719
v 0.331334 0.706364 1.743280
v 0.459684 1.043813 1.595830
v 0.426784 1.515414 1.177880
v 2.289684 -0.210487 2.132680
v 2.388184 -0.327336 2.139030
v 0.453284 -2.175736 2.142680
v 0.470434 -2.099986 2.010630
v 0.404234 -1.991587 1.877829
v -3.072816 2.998564 0.570880
v -3.098266 2.971564 0.388780
v -3.110666 1.924714 -0.037220
v -3.096316 1.751164 -0.109270
v 2.264584 1.568164 1.176830
v 2.106984 1.597614 1.264680
v 0.471534 0.383613 1.834880
v 0.471884 1.265913 1.448430
v 3.957984 -1.472386 1.114830
v 0.423034 -2.052786 1.928380
v -1.799716 3.096014 1.332230
v -1.658766 3.057414 1.352880
v 2.168734 1.882064 -0.306270
v -1.439766 -2.146887 1.259130
v -1.247166 -2.092036 1.258630
v -1.416316 -2.171486 1.117430
v -2.065866 4.191764 -2.576119
v -1.922266 4.194214 -2.759019
v 0.426534 0.601414 1.772480
v 0.500984 0.801963 1.716380
v 0.499434 1.429514 1.323430
v 0.968034 4.069565 -1.773319
v 0.362984 4.605864 -1.022419
v 0.381234 4.679564 -1.050869
v 0.472934 -1.979637 1.935229
v 0.343184 -1.813437 1.851130
v 0.375334 -0.218537 2.391680
v 0.483084 -0.414737 2.482030
v 0.533584 -0.267787 2.470880
v 0.764584 0.443263 1.880080
v 0.612484 0.376564 1.907180
v 0.801684 0.364313 2.101330
v -2.686166 3.088763 1.031830
v -2.649916 3.017564 1.231830
v -2.525616 3.097714 1.169281
v 1.961084 -1.765887 2.239930
v 3.413084 -1.494886 1.153330
v 0.514384 -2.051186 1.944879
v -1.752466 3.116614 -0.765170
v -1.842666 3.223963 -0.699969
v -2.180516 3.270464 0.606530
v -2.262166 3.249163 0.796230
v 0.629434 -0.671137 2.424580
v 0.566634 -0.511137 2.485680
v 0.546084 0.448813 1.797580
v 0.591034 0.611464 1.783930
v 0.564084 0.923863 1.672180
v 0.611134 1.330964 1.428580
v 0.611284 1.519564 1.260880
v -1.747016 3.420464 -3.141570
v -0.459816 -1.126636 -1.173570
v -0.447016 -0.936636 -1.267220
v -0.348416 -1.141986 -1.194120
v 0.664684 -2.273886 2.135329
v 0.682734 -2.170286 2.033780
v 0.572434 -2.114486 1.995030
v 0.607034 -2.050386 1.973180
v 0.595384 -1.874487 2.099580
v 0.487034 -1.700337 2.051880
v 0.570284 -0.358687 2.487030
v 0.594134 -0.158387 2.433580
v 0.506834 -0.028437 2.369030
v 0.647734 1.183564 1.544430
v 2.121934 -2.439786 1.845180
v 0.564734 -2.757236 -1.746721
v 0.660984 -2.805586 -1.692770
v 0.588584 -0.977287 2.349830
v 0.667934 -0.863637 2.383730
v 0.712484 -0.575487 2.442130
v 0.672884 0.030513 2.406380
v 0.658484 0.137363 2.347830
v 0.679434 0.996313 1.674680
v 0.554934 3.438614 -0.778570
v 0.641684 3.462914 -0.909320
v 0.692584 -2.121986 1.992530
v 0.688084 -2.050086 2.016430
v 0.678834 -1.797837 2.148830
v 0.616334 -1.783687 2.141080
v 0.719034 -1.617037 2.197230
v 0.581284 -1.534037 2.190180
v 0.647934 -1.478287 2.247830
v 0.675634 -1.278986 2.287830
v 0.682184 -1.128986 2.339630
v 0.594834 -1.223887 2.278080
v 0.797434 -0.763187 2.451380
v 0.692934 -0.446736 2.453530
v 0.659934 -0.248837 2.449030
v 0.749434 -0.090687 2.452130
v 0.130034 3.244764 -0.712619
v 0.049434 3.237064 -0.794119
v 0.729584 0.833114 1.750830
v 0.725634 1.457363 1.399630
v 3.461384 -1.376936 1.109830
v 0.728484 -1.935637 2.101380
v -2.421516 3.839914 -1.832769
v -1.809716 2.521914 -0.789170
v -1.725566 2.620014 -0.799120
v 0.762934 0.151964 2.337780
v 0.738134 0.704514 1.773830
v 0.756484 1.355814 1.486130
v 3.887584 -1.606537 1.153880
v 0.839284 -2.252936 2.043629
v 0.793984 -2.186387 2.005380
v 0.801484 -2.134737 2.021080
v 0.810284 -2.013986 2.130180
v 0.775484 -1.731387 2.173480
v 0.714934 3.562864 -0.909569
v 0.761534 3.556764 -1.002419
v 0.701384 3.653214 -0.943019
v 0.785884 -1.151437 2.301880
v 0.746034 -1.291237 2.291830
v 0.758234 -0.977537 2.339780
v 0.858134 -0.933387 2.405280
v 0.911784 -0.597636 2.507530
v 0.820884 -0.293537 2.473730
v 0.834884 0.057763 2.422480
v 3.651134 0.252914 -0.214870
v -0.713566 2.822364 -0.350670
v 2.615284 0.713514 1.596330
v 2.652684 0.878814 1.533080
v 0.824584 -2.403436 2.126179
v 0.997284 -2.333786 2.040529
v 0.829134 -1.374087 2.352980
v 0.737534 -1.439787 2.303630
v -0.008016 0.104564 -1.661670
v 0.868934 0.170163 2.365980
v 0.909384 0.614563 1.786830
v 0.946534 1.024814 1.715180
v 3.647134 -1.089136 -0.354920
v 2.498584 0.382414 -1.495520
v 2.419584 0.242064 -1.540820
v 2.396634 0.476064 -1.508370
v 0.925034 -2.189586 1.994730
v 0.924584 -2.067386 2.110630
v 0.934834 -1.179887 2.365630
v 0.899684 -1.085937 2.365980
v 0.861034 -0.128637 2.430930
v 0.837534 0.307713 2.190280
v -1.648966 3.992364 -3.106869
v -1.666266 3.836114 -2.955619
v 1.005134 1.249063 1.607280
v 0.917484 1.361663 1.514830
v 0.967234 -1.916837 2.200830
v 0.952784 -0.790437 2.454880
v 0.964484 -0.531587 2.515630
v 0.948484 -0.254587 2.473680
v 0.943484 0.076563 2.416480
v 0.963134 0.535214 1.806880
v 0.905784 0.487163 1.852830
v 0.981134 0.711713 1.787480
v 0.938584 0.932663 1.749830
v 0.998384 -2.255986 1.994330
v -1.327966 -2.103186 1.420980
v 0.995784 0.449814 2.021930
v -3.011666 -0.123486 0.546380
v -3.049416 0.050464 0.405680
v 1.045434 -2.190586 1.993580
v 1.043934 -2.099536 2.117480
v 1.082134 -0.872137 2.512530
v 1.034184 -0.718137 2.484430
v 1.020434 -0.380587 2.491980
v 0.987834 0.353013 2.201830
v -0.256116 4.146414 -1.094519
v 0.002384 4.324364 -1.207869
v 1.042534 0.539864 1.806030
v -3.042766 3.028264 0.429880
v -2.983666 3.031814 0.236430
v -1.693616 2.992314 -1.615170
v -2.678916 -0.787386 -0.231470
v 1.272384 0.366963 2.200480
v 1.159634 0.449263 2.054830
v -1.681466 3.250414 -2.163069
v 2.248584 -2.240886 1.778780
v 2.090784 -2.315986 1.815780
v 1.895484 1.610113 1.330480
v 1.903434 -0.450587 2.359730
v 1.909584 -0.330687 2.382930
v 0.429634 3.658914 -0.851319
v 0.181234 3.667714 -0.763069
v 0.272534 3.579463 -0.686719
v 2.951184 -1.791536 1.564580
v 3.100734 -1.535336 1.578730
v 2.866884 -1.657637 1.675880
v -0.063166 3.430964 -0.329619
v -0.263066 3.426164 -0.262019
v -0.102216 3.357714 -0.309469
v 0.084284 3.344914 -0.423919
v 0.035684 3.431963 -0.368369
v 1.973734 -1.514086 2.228530
v 1.936584 -1.392437 2.329680
v 1.847434 -1.479487 2.335479
v 2.083234 -0.143287 2.296280
v 2.216484 0.114463 2.124680
v -0.353866 3.863014 -0.406819
v -0.357216 3.738014 -0.489119
v 2.108184 -0.673787 2.333730
v 0.647784 3.648664 -0.913819
v 0.461084 3.764964 -0.970319
v 2.124384 -2.238187 1.807130
v -1.595266 -0.794636 -1.274520
v -1.466416 -0.768636 -1.325170
v -1.456816 -0.935386 -1.225920
v 4.276084 -1.914286 0.702730
v 4.120684 -1.858586 0.952730
v 4.046534 -2.137737 0.756130
v 3.422684 -1.346786 1.230980
v 4.244384 -1.806136 0.824030
v 4.115934 -1.712636 1.029480
v 4.229434 -1.485886 0.945280
v 0.382384 -2.635286 -0.036420
v 0.149684 -2.639486 -0.045870
v 0.256384 -2.631486 -0.289520
v -0.565266 -2.648787 1.743679
v -0.645366 -2.536436 1.759079
v -0.669566 -2.722686 1.791679
v -0.554916 -0.422686 -1.435570
v -0.416716 -0.529386 -1.427420
v -0.299766 -1.374686 -1.081320
v 3.033334 -0.731637 1.735330
v 3.109684 -0.527187 1.687430
v 2.849584 -0.590636 1.868780
v 3.746484 -2.079137 1.124180
v 2.288484 -1.917837 1.952130
v 2.438234 -1.922237 1.907330
v 2.412984 -1.748037 2.020530
v -0.471516 -0.369986 -1.495870
v -0.354666 -0.519486 -1.488170
v 2.748084 -2.206336 -1.204670
v 2.652984 -2.303336 -1.078370
v 2.572184 -2.330236 -1.148870
v 2.998584 -2.311486 1.135580
v 3.055084 -2.056386 1.274230
v -0.515866 -0.223686 -1.485770
v -0.411666 -0.250836 -1.518270
v 1.979084 -0.540337 2.334980
v 2.186084 -1.690987 2.089380
v 2.253184 -1.715787 2.050930
v 2.090334 -1.526537 2.144180
v -1.844916 4.438015 -3.406619
v -1.830316 4.300364 -3.433619
v -1.927266 4.434114 -3.372169
v 0.961434 4.107265 -1.553669
v 0.765384 4.246664 -1.427669
v 0.954084 4.015464 -1.465969
v 3.276234 -1.101336 -1.097270
v 3.387234 -1.055386 -0.980170
v 2.806134 -1.817086 1.639430
v 2.663334 -1.708336 1.801230
v 2.810134 -1.038436 1.753430
v 2.676784 -1.183386 1.838430
v 2.823484 -1.365387 1.793880
v 2.107684 -0.821286 2.319630
v 2.249734 0.146564 -1.625270
v 2.387734 -0.003486 -1.669120
v 2.249784 -0.059536 -1.789270
v -0.946716 -2.718336 -1.020470
v -2.108916 2.362964 1.999730
v 2.025734 -1.328537 2.255580
v -1.754566 3.400614 -2.992169
v 2.129434 -0.563237 2.311780
v 0.811334 3.732164 -1.086720
v 0.780634 3.928614 -1.248219
v 0.706334 3.722964 -1.017619
v -2.213866 3.011815 -2.304220
v -2.089366 1.976164 2.124430
v -2.057866 2.237514 2.013080
v 2.894684 -2.110986 1.429380
v 2.799384 -1.998586 1.520480
v 2.750284 -2.306087 1.482930
v 4.211234 -2.076386 -0.048170
v 1.978534 -1.051937 2.338730
v -1.985866 1.252963 2.171780
v -1.854816 1.368263 2.130730
v -1.944766 1.429563 2.223180
v -1.870716 1.674563 2.124830
v -1.977016 2.003513 2.010430
v -2.067766 2.975964 -2.560120
v -1.045666 -2.692486 1.913379
v 0.947234 3.806164 -1.511569
v -1.845916 0.928864 1.496080
v -1.910616 0.990164 1.511880
v -0.324166 3.678613 -0.528319
v -0.181116 3.664164 -0.610569
v -0.245816 3.791264 -0.611919
v 2.079334 -0.398337 2.265630
v -1.841316 1.494014 2.145280
v -1.977466 2.430313 1.877980
v 2.183684 -1.456237 2.132080
v 2.037984 -1.447287 2.194180
v 2.281484 -0.896787 2.190830
v 2.210384 -0.865687 2.247780
v 2.219534 -1.022287 2.233480
v -1.867616 1.195063 1.969230
v -2.008816 1.153263 2.094280
v -1.835216 1.822864 1.987880
v -1.920866 2.077513 1.900880
v 3.473284 -0.065636 1.149630
v 3.388734 0.174764 1.243380
v 3.330584 -0.011336 1.398330
v 3.520984 -1.152486 1.037630
v 3.605334 -1.055036 0.920880
v 3.487234 -0.913437 1.169330
v -0.054266 3.575814 -0.572469
v -0.245566 3.574514 -0.506619
v -2.039016 1.072263 1.962930
v -1.971816 2.615614 1.792931
v 3.645884 -0.060286 0.783030
v 3.586284 0.199414 0.851580
v 3.166384 0.748014 1.170880
v 3.350134 0.675614 0.992230
v 3.190234 0.991614 0.962780
v 3.614534 -0.773236 0.940930
v 3.566734 -0.641586 1.018380
v -0.335166 0.113664 -1.585270
v -0.527266 0.106364 -1.560170
v -1.754866 1.702213 1.943630
v -1.914816 2.310464 1.827380
v 3.463734 -1.154137 1.154480
v 3.404934 -1.188836 1.294730
v -0.267866 -2.060936 -1.075020
v -0.251516 -2.004786 -0.917270
v 3.387834 -0.169686 1.324280
v 3.549734 -0.258136 1.062780
v 3.606884 -0.287036 0.975480
v -0.584316 0.346164 -1.489970
v -1.760316 1.307863 1.891630
v -1.736266 1.438664 1.941430
v -1.682216 1.566613 1.838730
v -1.887116 2.535314 1.747830
v 3.219434 -0.619336 1.557580
v 3.297034 -0.618886 1.453580
v 3.237284 -0.432736 1.506830
v -1.171866 2.690814 0.478130
v -1.109266 2.600663 0.436580
v 2.942684 0.928963 1.325030
v 2.971884 1.107514 1.166980
v 2.849734 1.144914 1.254080
v -1.765966 1.190313 1.715430
v -1.855316 1.076814 1.656680
v -1.814016 2.072063 1.723030
v -1.853816 2.164263 1.750780
v 4.118284 -1.424636 1.030730
v 3.022084 0.696064 1.370080
v 2.823584 0.877514 1.470730
v 2.817034 0.689764 1.517130
v 3.097134 0.388413 1.485530
v -1.670766 1.789664 1.750530
v -1.810016 2.335814 1.651130
v 2.435384 -2.667436 1.653679
v 2.557334 -2.612137 1.529329
v 2.507884 -2.528986 1.677980
v 3.935484 -1.861086 1.085930
v 3.969284 -1.998336 0.978980
v 4.091984 -1.583836 1.060480
v -1.996666 0.993463 1.659280
v -1.677616 1.359864 1.733230
v -1.761816 2.179664 1.577130
v -1.770266 2.535664 1.573380
v 0.540234 3.876464 -1.095919
v 2.665634 -1.529187 1.855380
v 2.528284 -1.521837 1.989880
v 2.507634 -1.722887 1.966880
v 3.372334 -0.835236 1.331080
v 2.794084 0.317364 1.748330
v 2.737284 0.569063 1.657730
v 2.649984 0.616713 1.695680
v 0.612184 4.272164 -1.319069
v 0.778784 4.484164 -1.545269
v 4.281434 -1.251686 -0.308170
v 2.965134 -1.978686 1.447180
v 3.216034 -0.062936 1.573280
v 3.176734 -0.358286 1.592380
v -1.811666 1.070163 1.542980
v -1.721416 1.176563 1.594930
v -1.613266 1.655214 1.724830
v -1.695116 1.925013 1.674930
v 2.344634 -0.497637 2.227980
v 4.299234 -1.968786 -0.005970
v 4.364434 -1.891636 0.201030
v -3.009416 2.254514 0.994630
v -3.048416 2.337814 1.260830
v -3.012016 2.358414 1.025480
v 1.613184 -2.765486 -1.142920
v 1.842134 -2.801936 -1.081970
v 1.795034 -2.672036 -1.001621
v 3.270384 0.160314 1.428280
v 3.163834 0.188363 1.544230
v 0.892734 3.906464 -1.302019
v 0.791584 4.075214 -1.356119
v 0.791384 3.637014 -1.008469
v -1.110216 2.597214 -0.340720
v -1.782216 1.000813 1.482130
v -1.608116 1.562314 1.719880
v -1.730066 2.332013 1.479930
v -1.740166 2.741064 1.522581
v 0.091984 3.500814 -0.471819
v 2.637584 -2.360936 1.607630
v 2.508784 -2.159836 1.651080
v 2.429034 -2.298136 1.737580
v 2.714134 -2.097036 -1.390870
v 2.570484 -2.252886 -1.286770
v -1.738366 1.073913 1.482880
v -1.589166 1.378514 1.630330
v -1.586316 1.771213 1.679430
v -1.611066 1.914863 1.616980
v -1.664166 2.075963 1.560480
v -1.680016 2.184413 1.493630
v -1.705416 2.453213 1.460480
v -1.696716 2.600564 1.494280
v -0.243516 -1.509786 -1.033870
v 2.692384 -1.063487 1.840430
v 0.898734 3.703414 -1.194419
v 0.835934 3.641914 -1.079569
v -1.684766 2.340113 1.400230
v 0.297434 3.354164 -0.580019
v 0.278034 3.437614 -0.505319
v 2.243034 -0.299187 2.179080
v 2.170634 -0.165537 2.211180
v 3.197984 0.484514 1.321630
v 2.751884 -0.844236 1.854380
v 2.704384 -0.789336 1.960930
v 0.651334 3.489264 -0.873319
v 0.899084 3.798114 -1.218869
v -1.428266 1.421264 1.569230
v -1.382766 1.676814 1.596780
v -1.449316 1.854763 1.576580
v -1.605366 2.812514 1.461030
v -0.547016 0.867964 -1.379670
v -2.456216 2.423314 -0.661720
v -2.315016 2.602364 -0.704520
v -1.299166 -2.741086 1.944129
v -1.192516 -2.579636 1.950880
v 0.586734 4.039264 -1.218469
v 0.698434 3.757864 -1.382469
v 0.541984 3.822564 -1.381869
v 0.700234 3.878564 -1.489969
v -0.290966 -1.136386 -1.241970
v -0.208266 -1.190336 -1.316870
v 2.245334 -0.002786 2.159380
v 2.635534 1.205664 1.316030
v -1.376366 1.590914 1.589130
v -1.581266 2.297863 1.355530
v -1.557866 2.558514 1.373080
v -1.583016 2.599414 1.420380
v 2.538634 1.460514 1.208830
v 1.976034 -2.596286 1.851079
v 2.229784 -2.631336 1.802830
v 0.265134 4.303914 -1.038669
v 0.276334 3.833364 -0.945619
v -2.932216 0.981114 0.506380
v -2.938216 0.975164 0.288680
v -2.886816 0.905464 0.509880
v -1.421966 2.130164 1.405680
v -1.597716 2.399463 1.315680
v -1.546716 2.759163 1.416381
v -1.540866 2.921613 1.389830
v 0.558134 3.577614 -0.775619
v 2.917184 -0.858287 1.768280
v 2.784784 -0.720486 1.894480
v 2.207584 -2.172586 1.807580
v 2.310534 -2.099236 1.789680
v 2.428034 -0.579436 2.188480
v 2.626684 -0.698737 2.056530
v 2.492934 -0.475737 2.142230
v 0.618134 -2.413836 2.204979
v -0.253416 -2.858236 0.224280
v -0.312916 -2.859636 0.204980
v -0.342266 -2.864036 0.136429
v -1.086316 -2.464936 1.882380
v 0.462834 4.797564 -1.351919
v 0.486134 4.799464 -1.267769
v 0.548084 4.820514 -1.360119
v -0.787366 3.436563 -0.064369
v -0.707766 3.417564 -0.145419
v 2.961984 -1.377836 1.671030
v 4.302684 -1.159186 -0.235520
v 2.504384 -1.147237 2.018930
v 2.582184 -1.012287 2.013530
v 2.448884 -1.044736 2.086730
v 0.430534 4.149864 -1.165019
v 0.215484 4.123964 -1.007819
v 0.328484 3.975214 -1.046519
v -1.225316 2.973264 0.794730
v -1.338416 1.373363 1.483980
v -1.344416 1.869714 1.479780
v -1.412866 2.332963 1.231730
v -1.521866 2.500513 1.274530
v -1.492116 2.627464 1.258330
v -1.461666 2.831764 1.241431
v -1.489266 2.867164 1.324230
v -1.557116 3.006814 1.353080
v 3.026534 -0.762986 -1.390720
v 0.541234 4.429714 -1.294169
v 0.542334 4.552364 -1.303469
v 0.419434 4.430364 -1.175319
v 0.284984 3.302414 -0.686319
v 2.394584 -1.321637 2.048330
v 2.514334 -1.281137 1.957230
v 2.527134 -0.822186 2.100730
v 0.602734 3.514064 -0.781569
v 0.488884 3.509364 -0.674169
v -1.187516 1.501114 1.377880
v -1.105566 -2.754486 1.912429
v -1.101516 -2.813537 1.816029
v -1.013666 -2.738837 1.903630
v 2.124834 -0.002336 2.225980
v -1.638666 2.747663 -0.628070
v -0.475616 -2.837936 0.962879
v -0.635716 -2.832487 1.054880
v -0.594816 -2.845686 0.950029
v 2.548734 -0.329237 2.094080
v 0.368084 0.712414 -1.526320
v 0.287384 0.622114 -1.574720
v 0.263534 0.854264 -1.472420
v 2.775284 -0.443286 1.934930
v 2.672934 -0.531236 2.048080
v 2.765884 -0.609837 1.944430
v 0.649184 3.581564 -0.842569
v 2.364984 -2.166036 1.717979
v 0.444734 3.564814 -0.721219
v -1.227316 1.593664 1.449930
v -1.179366 1.675964 1.382380
v -1.345966 2.377413 1.166230
v -1.381716 2.507463 1.147680
v -1.341816 2.658614 1.152580
v 1.576084 -2.817386 1.692179
v 1.489184 -2.814687 1.797830
v 1.457784 -2.808686 1.610729
v -0.809016 -2.646736 1.843930
v 2.676784 -1.998136 1.586430
v 2.597084 -1.964036 1.692980
v 2.562734 -2.090086 1.628680
v 2.672584 -0.307986 1.997430
v 2.524384 -2.671486 1.475680
v 2.552484 -2.677436 1.332979
v 2.667434 -2.574436 1.317980
v -1.132566 1.941613 1.250080
v -1.302616 2.184063 1.254580
v 2.763234 1.066563 1.351380
v 3.227034 -1.026637 1.490180
v 3.123334 -0.996787 1.595430
v 3.025834 -1.148137 1.647430
v 2.369734 -2.586486 1.747730
v 2.355434 -2.415086 1.794929
v 2.289834 -2.363636 1.811730
v 2.453434 -1.383636 2.000230
v 2.428284 -1.567037 2.037880
v -0.594416 3.224914 -0.857070
v -1.204866 1.304463 1.305130
v -1.312516 2.744913 1.094880
v -1.378016 2.862764 1.126280
v -1.339966 3.013963 1.061980
v 3.052784 0.898664 1.201930
v 4.228184 -1.098436 0.797830
v 2.912584 -2.339936 1.214880
v 4.455134 -1.606536 0.426680
v 4.481884 -1.297686 0.408530
v 3.496784 -0.482837 1.180330
v 3.482634 -0.269336 1.205680
v 3.406884 -0.496887 1.330230
v -2.213316 2.860514 -1.630619
v 0.431984 3.436464 -0.639520
v 3.256684 -0.643486 -1.109670
v 3.300984 -0.679336 -1.018970
v 3.250484 -0.790686 -1.047920
v -1.112066 1.810314 1.278030
v -0.789416 -2.726936 1.838680
v 3.171884 -1.826437 1.313530
v -0.324316 3.120864 -0.323270
v 4.274134 -2.045136 0.309180
v 2.337034 -1.506187 2.053880
v 2.710484 -0.198287 1.980380
v 0.885484 3.766164 -1.462269
v 0.427884 3.364564 -0.743519
v -1.201666 2.258164 1.081980
v -1.298516 2.529513 1.055280
v -1.292916 2.836414 0.961080
v -1.794366 3.488464 -3.268869
v 3.410934 -2.634686 0.204530
v 3.413484 -2.614686 0.411130
v 3.263034 -2.705036 0.270380
v 3.148134 -1.320786 1.582630
v 2.704334 0.025963 1.937330
v -0.001066 -2.070836 -1.557770
v -0.000816 -2.005086 -1.524020
v 0.100184 -2.037536 -1.665370
v -1.033216 1.495414 1.220330
v -1.060366 1.668114 1.226880
v -1.061616 2.034813 1.108980
v -1.254716 2.642013 0.932330
v -1.230816 2.479813 0.961930
v -0.089516 3.926664 -0.750819
v 0.960434 3.788514 -1.359369
v 0.912384 3.708064 -1.281769
v 3.239184 -1.293037 1.507180
v 2.964484 -0.960886 1.671180
v 2.904284 -1.015437 1.693030
v 2.718834 0.209614 1.880880
v 2.588184 0.352613 1.896980
v -0.994066 1.396013 1.154030
v -1.203316 2.333014 0.987280
v 2.896284 -0.394937 1.797180
v 3.303634 0.553313 1.124880
v 3.276884 0.303114 1.304630
v 2.916734 0.477364 1.615630
v 0.402084 3.506714 -0.617819
v -0.966966 1.721463 1.104080
v -0.989466 1.894763 1.069430
v 2.195534 -1.885937 2.006730
v 2.036834 -1.722587 2.211630
v 4.228384 -2.096436 0.169430
v 3.258884 -0.827287 1.507530
v -0.098466 3.793314 -0.716819
v 3.634834 -0.485386 0.913430
v 3.080684 -0.849936 1.632580
v 3.096234 -0.359386 1.681130
v 3.111184 -0.177637 1.704330
v 3.025634 -0.365937 1.728880
v 2.825134 -0.097436 1.846580
v 2.612884 -2.498286 1.571180
v 2.697484 -2.266286 1.541180
v 2.697534 -1.827337 1.700780
v 2.630284 -2.149887 1.573529
v -0.968466 1.498464 1.058680
v 2.901834 -0.255287 1.776430
v 2.904234 -0.029137 1.788680
v 3.330734 -1.710286 1.182480
v 3.274184 1.039864 0.471880
v 3.054334 -0.065736 1.737730
v -3.156066 2.587863 0.447930
v -0.742216 0.947114 -1.317320
v -0.677716 0.791464 -1.410670
v -2.983616 -0.185686 0.453380
v -0.954516 2.250263 0.348430
v 2.964284 0.155513 1.722580
v 3.289834 -1.613036 1.288930
v 3.257984 -1.554686 1.398480
v 2.796184 -0.260137 1.918430
v 2.717884 1.330964 1.156880
v 2.869084 -1.835136 -1.343370
v 2.781284 -1.977236 -1.423670
v -1.700816 3.123764 -2.034670
v 3.492984 0.670114 0.353630
v 0.314284 -2.482887 2.309380
v -0.107316 3.507363 -0.480769
v -0.526516 3.689114 -0.258119
v -0.453166 3.500114 -1.039769
v 0.249134 3.503564 -0.535619
v 0.041884 -2.106836 -1.606870
v -3.080416 2.395964 0.391530
v -3.043466 2.490264 0.300730
v -1.904466 2.540764 -0.846220
v 2.666834 -2.808386 -0.237270
v 2.684484 -2.741486 -0.386970
v 2.787734 -2.777636 -0.243520
v -0.693216 2.899814 -0.145270
v 2.840284 -2.709786 -0.384570
v 2.716234 -2.627486 -0.543070
v 3.097234 -1.667987 1.523580
v 2.340684 -1.418836 2.061280
v 2.579334 -2.801686 -0.354970
v -0.431316 -2.546936 -1.841320
v -0.444216 -2.744236 -1.884620
v -0.519366 -2.766486 -1.859770
v 2.141434 -1.250286 2.247630
v -1.126066 2.328313 0.794730
v -0.282416 -1.558036 -0.997520
v 2.808084 -1.532186 1.786430
v 4.346684 -1.748686 0.698580
v -1.319616 -1.117686 -1.072370
v -1.130266 -1.174786 -1.029570
v -2.761716 3.085814 0.012281
v -2.187416 2.654914 -1.052520
v 0.373634 3.346764 -0.806920
v -2.395316 3.721164 -1.551219
v -2.396016 3.628614 -1.366519
v -1.418666 -1.662986 0.065080
v -1.375516 -1.734586 -0.007970
v 0.683934 4.736764 -1.534019
v -1.041916 2.673014 0.092480
v -0.068216 -2.646587 1.122280
v -0.088316 -2.630236 1.312679
v -0.109316 -2.636886 1.225179
v -1.054916 -2.699036 -0.996920
v -1.056966 -2.387536 -0.916020
v -0.998866 -2.481236 -0.960420
v 2.040784 -0.954587 2.308680
v 2.651684 -1.379637 1.870430
v 3.787284 -0.864936 0.024080
v 3.802934 -0.938786 -0.102870
v 3.759234 -0.876936 -0.133120
v 3.693584 -2.244487 0.989430
v 3.556684 -2.221486 1.127780
v 2.558084 -2.386736 -1.073420
v 2.566684 -2.407886 -0.944370
v 3.694584 -0.594686 0.768680
v 2.397134 -1.087436 2.112580
v 2.226984 -1.151637 2.197880
v -0.158266 -2.757836 1.004579
v 3.676034 -0.273286 0.780780
v -2.359566 -1.164686 -0.106870
v -2.266716 -1.190586 -0.317570
v -2.216466 -1.266086 -0.211470
v 4.336934 -1.915486 0.519080
v 0.794484 4.630564 -1.799669
v 0.803784 4.671265 -1.715619
v -2.126366 3.087964 -2.662369
v 0.904334 3.718414 -1.378619
v 3.877784 -2.158736 0.935130
v 2.835534 0.122364 1.822780
v -1.637166 3.777414 -3.409270
v -1.702966 3.819314 -3.439719
v -1.152266 2.994313 0.340030
v -1.077316 3.017364 0.203880
v -1.666116 4.244464 -3.474019
v -1.691016 4.357814 -3.402719
v -1.645316 4.270614 -3.401719
v 0.475634 0.824064 -1.509020
v 0.616134 0.726814 -1.517170
v -2.393316 3.988464 -2.088219
v -2.292116 4.080914 -2.197670
v -0.395166 3.667014 -1.098320
v 0.468684 4.681664 -1.160519
v 0.402734 4.742564 -1.109819
v 0.878834 4.424165 -1.649519
v 3.411684 0.446164 1.015730
v 2.373884 -2.694436 -1.116021
v 2.348434 -2.791036 -0.919120
v 0.322134 -2.692837 2.307780
v 0.545234 -2.442887 2.234980
v 0.389834 0.312863 1.862430
v -1.808766 0.791914 -1.125170
v -2.133016 0.878664 -0.933520
v -1.698066 3.801564 -2.595219
v 0.132034 -1.809486 -1.758720
v 0.196334 -1.867336 -1.796320
v -1.023366 2.812164 0.132880
v -1.000266 2.926813 0.146780
v 0.972484 4.362714 -1.828369
v 0.976434 4.318814 -1.778469
v 0.979684 4.231464 -1.834219
v 1.121284 0.510513 1.833530
v 2.853384 -2.273486 1.383530
v -2.534766 -1.035686 0.379580
v -2.553066 -0.970236 0.517480
v 4.226384 -2.038236 0.625380
v 2.735484 -2.565136 1.177580
v 2.821084 -2.499187 1.158330
v 4.424484 -1.201286 0.584430
v -2.171066 2.721814 -1.312919
v -2.153566 2.750264 -1.440970
v -1.892516 3.470264 -3.244870
v -1.926066 3.563364 -3.232720
v -1.874566 3.683014 -3.316269
v 2.752684 -2.420236 1.383130
v 0.973384 3.858714 -1.383269
v -2.319066 -0.320986 -1.114920
v -2.084616 -0.409336 -1.237020
v -2.222566 -0.437436 -1.160770
v 3.708384 -2.262236 -0.485770
v 2.481234 -2.677986 -0.642620
v 2.669034 -2.574886 -0.611420
v 2.595884 -2.531236 -0.720270
v 0.616984 -2.609636 -0.807120
v 0.386884 -2.622136 -0.767470
v 0.552534 -2.605586 -0.986670
v -0.854316 2.867864 -0.013520
v -0.801716 3.120914 0.014280
v 1.481484 0.297414 -1.854270
v 1.732884 0.314614 -1.725170
v 1.693434 0.222614 -1.909220
v -0.247016 -2.768286 1.221729
v 0.522084 -2.662286 -1.267521
v 0.322784 -2.624636 -1.247870
v 0.318184 -2.667736 -1.304420
v 2.434834 1.545113 1.181180
v 0.726984 -2.739537 2.158530
v 0.840584 -2.727536 2.124429
v -0.193116 3.890814 -0.648569
v -0.819116 3.274314 -0.055569
v 0.639684 -2.745836 2.180580
v -1.729166 3.269764 -1.037869
v -1.713716 3.067314 -0.833320
v -0.758566 -2.761236 1.803879
v 3.464484 0.219314 1.071130
v 3.669934 -1.006236 0.792030
v 3.728134 -0.976636 0.665430
v -0.356616 3.499664 -0.386869
v -0.670916 3.104064 -0.073770
v -0.695916 3.206214 -0.046920
v -0.263616 3.290614 -0.263819
v 3.507034 -1.118986 -0.745720
v -2.248666 2.039414 -0.784520
v -2.300216 0.330214 -1.067920
v -2.391966 0.150814 -1.051320
v -2.426666 0.364564 -0.933920
v -3.002016 0.451714 0.064980
v -0.289616 -2.700736 -1.917571
v -0.716216 3.317614 -0.127069
v -0.772116 3.348064 -0.090519
v 0.913034 -2.601086 2.098629
v -0.086166 -2.282886 -1.789420
v 0.080284 -2.154586 -1.673520
v 3.528534 -0.657086 -0.724970
v 2.568284 -1.878686 1.803330
v -0.626416 3.275764 -0.082969
v -1.734516 4.378264 -3.423970
v -2.994166 0.607214 0.356080
v 3.710284 -0.266436 0.554630
v 4.348334 -0.980636 0.115280
v -0.884966 -2.490186 -1.006570
v -0.935266 -2.538436 -0.987470
v -0.532216 3.038414 -0.208920
v -0.523716 3.216114 -0.131569
v -0.622666 3.364664 -0.204169
v -0.576416 3.493214 -0.285569
v 2.672784 -2.500336 1.469930
v 0.711384 4.609414 -1.504019
v 0.066584 0.650014 -1.558120
v -0.207866 0.026214 -1.608070
v -1.820466 0.384914 -1.235970
v -1.692016 0.503364 -1.309970
v 3.628284 -2.367786 -0.370070
v 3.542534 -0.274486 -0.799620
v -0.533466 3.282713 -0.111969
v -0.593966 3.426664 -0.256819
v -2.182466 -2.697786 -0.001870
v -2.155716 -2.774686 0.037480
v -2.082366 -2.711236 0.122680
v 0.987684 -2.669036 2.076730
v 2.836934 1.278313 1.126580
v 2.414934 -2.097786 1.706480
v -0.485066 3.347164 -0.152769
v 1.153534 -2.665537 2.032230
v 0.142484 -2.093086 -1.695770
v -0.397266 3.282264 -0.185919
v -0.529266 3.425464 -0.279719
v 1.037384 -2.744836 2.069930
v -1.676766 3.050064 -0.999869
v -1.876516 4.107164 -3.354869
v -0.851566 2.787014 -0.092020
v -0.506266 3.578864 -0.357119
v 0.069034 4.388263 -0.738319
v -0.427066 2.996014 -0.342670
v -0.338066 3.357064 -0.196869
v -0.401366 3.431814 -0.290669
v -0.430116 3.500013 -0.369019
v 1.309634 -2.635036 1.979929
v -0.359366 -2.825536 1.411680
v -0.432066 3.647264 -0.426019
v 2.458034 -2.806786 -0.377270
v -2.276366 2.893514 -1.438769
v 0.722334 4.730064 -1.660119
v 0.673534 4.744014 -1.655519
v 4.137884 -1.100786 0.855080
v -0.384316 3.568264 -0.440669
v -1.971066 3.401114 -3.137470
v -1.975416 3.257214 -3.025919
v -2.026666 3.295464 -2.983819
v -0.922716 2.180314 0.175330
v -0.682416 1.610164 0.843430
v -1.229416 -2.561736 -0.943420
v -1.415666 -2.485886 -0.833020
v -1.313066 -2.257786 -0.722870
v 1.436484 -2.730536 1.950529
v -2.672116 -0.643137 0.824530
v -2.531666 -0.764786 0.958530
v -2.680616 -0.572036 1.019080
v -1.695866 3.663114 -2.054869
v -2.801566 -0.346336 0.825280
v -2.846016 -0.378236 0.663480
v -2.763816 -0.499587 0.742730
v -2.878616 -0.275486 0.762730
v -0.643766 4.085914 -0.680569
v -0.775416 3.991414 -0.621619
v -0.649616 4.066763 -0.543819
v -2.894816 0.838614 0.329430
v -1.630866 3.319614 -1.709020
v 3.241984 1.048714 -0.262320
v 3.340434 0.949114 -0.092520
v -3.181966 1.718564 1.340880
v -3.196866 1.547913 1.210580
v -3.224566 1.513913 1.483830
v -1.560766 -2.199937 1.269580
v -1.609316 -2.263036 1.137330
v -0.237816 4.339664 -0.901869
v -0.446016 4.173213 -0.895219
v 3.333734 -2.600236 -0.300770
v 3.246684 -2.564986 -0.441070
v 3.402634 -2.481986 -0.457770
v -2.886966 0.837314 0.483380
v -1.608716 -2.712837 1.855479
v -1.747116 -2.643537 1.709980
v -1.703416 -2.743536 1.765029
v -1.152716 -1.788986 1.027930
v -1.200216 -1.573436 0.940880
v -3.022016 3.004064 0.722630
v -2.942166 3.085814 0.572231
v 0.616384 -2.805836 1.789930
v 0.527034 -2.810886 1.957429
v 0.532684 -2.806587 1.860729
v -3.114866 2.029514 0.002230
v -1.633316 3.421264 -2.010520
v -1.644316 3.501314 -2.140070
v -2.887366 0.573464 0.814680
v -2.759016 0.837164 0.862380
v -2.770116 0.905114 0.849380
v -3.052866 2.929164 0.207280
v -2.871466 3.031814 0.077730
v -3.272416 1.799314 0.723330
v -0.661016 -2.182186 -1.012420
v -0.517866 -2.139036 -1.036720
v -0.620416 -2.230886 -1.220670
v 2.352434 1.416314 -0.913770
v 2.198234 1.570664 -0.852270
v 2.371184 1.569014 -0.727620
v 1.005634 4.164265 -1.728369
v 3.526684 -2.502036 -0.291220
v -3.066916 2.214263 0.777230
v -1.669866 3.458914 -1.536969
v -1.641116 3.193364 -1.550120
v 2.474334 -2.411386 -1.375820
v 2.547584 -2.321536 -1.236620
v 2.763484 -1.286886 -1.505220
v -0.286566 -2.126336 -1.311120
v -0.467266 -2.167486 -1.232770
v 0.909834 4.467264 -1.748769
v -3.054216 2.286563 0.768530
v 2.777184 -1.495636 -1.530670
v -3.104866 2.858363 0.822030
v -0.323266 -2.838686 0.945279
v 3.109634 -0.296486 -1.333370
v 3.045334 -0.159286 -1.362470
v 3.162534 -0.124736 -1.278870
v -0.310666 -0.264836 -1.613020
v -0.351516 -0.331786 -1.523070
v -3.121566 1.908863 1.518330
v -3.176866 1.765964 1.566080
v -3.064316 1.906663 1.720330
v -1.727266 -2.601387 0.891230
v -1.757816 -2.525636 0.916230
v -1.648216 -2.610687 0.791530
v -3.112216 2.575714 0.940730
v -3.039716 2.476663 1.095180
v 1.007334 4.057414 -1.722969
v 1.003684 4.002714 -1.608869
v -1.424916 -2.284386 0.885580
v 2.795484 -0.872986 -1.590870
v 0.614884 4.002014 -1.527719
v -1.671466 3.252464 -1.217070
v 0.563234 1.108214 -1.341370
v 0.455684 1.008464 -1.376170
v 0.337584 1.061764 -1.324870
v 0.447084 -2.783936 -1.352771
v 0.647734 -2.819236 -1.346321
v -3.051366 1.307264 -0.167070
v -3.033566 1.446814 -0.238920
v -3.125216 1.335414 1.005430
v -3.191616 1.530213 1.029880
v -2.986016 0.476164 0.642130
v -0.516016 -1.520086 -0.988270
v 3.947584 -2.226537 0.765030
v -3.119066 2.878764 0.336730
v -2.804916 0.892364 -0.150320
v -2.857966 0.717814 -0.156570
v -0.213666 -1.281286 -1.276720
v 2.198634 -2.718036 -1.404120
v 2.314784 -2.710686 -1.248271
v 2.261634 -2.784836 -1.201921
v 2.957884 -1.657236 -1.237720
v 3.094084 -1.734336 -1.052720
v 3.034634 -1.785236 -1.086570
v -1.681816 3.676614 -2.284269
v 3.079484 -1.305486 -1.284170
v 3.141484 -1.048986 -1.233570
v 3.172534 -1.208636 -1.189570
v -2.971616 -0.198586 0.030830
v 0.247134 4.669363 -1.119819
v 0.150584 4.600463 -1.024419
v 0.641334 3.480014 -0.996269
v 0.457834 1.368514 -1.022670
v 0.255584 1.191014 -1.187570
v 0.240034 1.281364 -1.109770
v 2.944734 -1.829886 -1.205170
v 2.874884 -1.964436 -1.306320
v 0.764384 3.564264 -1.119969
v -1.091166 3.711714 -0.416169
v -1.211366 3.602364 -0.292519
v -1.012216 3.735964 -0.264269
v -1.575566 -2.191686 1.459830
v -1.592366 -2.204237 1.348430
v 2.038484 -2.760786 -1.477270
v 2.074034 -2.811586 -1.374870
v -1.639766 3.354564 -1.543619
v -1.671366 3.372664 -1.372719
v 3.073584 -0.965386 -1.298820
v 3.122484 -0.768136 -1.228970
v 3.196934 -0.843386 -1.129370
v 2.733984 -1.609086 -1.553520
v -0.340166 -2.841937 0.815480
v 0.999984 3.942214 -1.534769
v 0.082984 -2.266636 -1.777070
v -2.763666 -0.476136 0.925680
v -2.916616 0.084064 -0.194320
v -2.942266 -0.082386 -0.234270
v 3.464584 -0.225586 -0.957370
v 3.538884 -0.030786 -0.803570
v 0.110934 -2.659336 0.390930
v 0.078534 -2.658586 0.472779
v -0.003166 -2.776636 0.473179
v -0.515716 1.598014 0.952980
v -1.676766 2.904214 -0.993520
v -1.681766 2.789814 -0.807670
v 0.462834 -2.626136 -0.458420
v 3.336384 -0.439986 -1.141820
v 3.320834 -0.244286 -1.171770
v 3.442034 -0.400586 -0.987870
v 2.656134 -1.685286 -1.626620
v 1.398834 -2.809636 -1.580471
v 1.475284 -2.805186 -1.566270
v 1.473634 -2.848586 -1.474520
v 0.985034 3.904464 -1.595269
v 2.723334 -2.340486 -0.817370
v 2.907034 -2.195786 -0.771120
v 3.434284 -0.046636 -0.949370
v 3.491734 0.041214 -0.837120
v -2.423716 -1.083336 -0.033970
v -2.420016 -1.023686 -0.222870
v 1.026934 0.541364 -1.593120
v 0.881834 0.464814 -1.604970
v 0.821434 0.579564 -1.600120
v -1.666716 3.453614 -2.324769
v -1.665716 3.616014 -2.363270
v -1.674366 -2.768336 -0.827571
v -1.690716 -2.850486 -0.849171
v -1.737966 -2.859486 -0.787521
v -0.344516 -2.265086 -1.682020
v -0.196316 -2.271436 -1.758570
v -0.345616 -2.382436 -1.807920
v -3.134216 2.748414 0.489730
v -1.182366 -1.994136 0.950630
v -1.245666 -2.091537 1.062430
v -3.185416 1.697464 1.116780
v -3.193816 1.795914 1.054280
v -2.890966 2.961364 0.027830
v -2.760116 2.947913 -0.182070
v 3.259884 -1.518636 -0.984220
v 3.342234 -1.501636 -0.883320
v 3.206134 -1.674386 -0.942270
v -0.575316 -1.357936 -1.073120
v -2.933866 1.132664 -0.155970
v -3.045216 1.184114 -0.089520
v -2.935416 1.283064 -0.283320
v 3.128484 -1.483586 -1.170220
v -2.802016 -0.232737 0.954830
v -2.896316 3.105314 0.398980
v 0.213834 -2.650786 0.227130
v 0.096884 -2.653286 0.292230
v 1.038384 1.447114 -1.084670
v 1.103584 1.563464 -0.969670
v -1.747266 -2.247336 -0.003970
v -2.962766 -0.238336 -0.141020
v -2.904166 -0.313786 -0.215670
v -2.960016 0.353364 -0.133020
v -3.112766 2.510914 0.369080
v -1.192116 -2.282586 0.622530
v -1.138466 -2.248586 0.512380
v 2.822984 -2.205636 -1.008120
v 2.871784 -2.193936 -0.843970
v 0.154584 0.452114 -1.591970
v -1.448716 -2.482436 0.600530
v -1.264116 -2.371536 0.540230
v 1.110834 0.456164 -1.600120
v -2.348566 1.098214 -0.683320
v -2.413816 1.114014 -0.614270
v 2.353134 0.764864 -1.262770
v 2.325434 0.578164 -1.475570
v -2.960316 0.643714 0.126480
v -2.899216 0.676864 -0.043120
v 3.201634 -1.601686 -1.015470
v 2.388684 -2.600086 -1.249971
v -2.774266 0.989264 0.944130
v -2.859916 0.970964 0.667030
v -2.908016 1.053464 0.758130
v -2.176166 -0.716836 -1.042470
v -2.343866 -0.508636 -0.960370
v -2.175416 -0.551986 -1.125470
v 3.098384 1.239664 -0.321920
v 3.148534 0.997014 -0.639620
v 2.960934 1.285714 -0.516370
v 3.093884 -0.635086 -1.320270
v 3.131684 -0.571436 -1.288020
v 2.735384 -2.279536 -0.994120
v 1.065384 -2.797486 -1.628121
v 1.280884 -2.804986 -1.589421
v 1.051834 -2.855986 -1.547121
v 2.726784 -1.116186 -1.583670
v -1.686816 2.909414 -0.768420
v -1.674516 2.794414 -0.714220
v -1.609316 3.883164 -3.344169
v -0.050216 -2.832136 0.423330
v -0.212166 -2.856186 0.566879
v -0.075416 -2.846736 0.340979
v 3.381184 -1.172186 -0.971520
v 3.421784 -1.343536 -0.807420
v 2.948184 -1.962936 -1.120070
v -1.156366 -1.730636 0.612480
v -1.101466 -1.824486 0.545680
v 2.657484 -1.234336 -1.593220
v -3.151116 1.864964 1.215530
v -3.058816 2.087213 1.285230
v -3.110216 2.009963 1.155230
v 1.006484 4.178664 -1.779669
v 0.086834 -2.645437 0.869130
v -0.041166 -2.660336 0.904180
v 0.070084 -2.659736 0.766080
v -2.744216 2.387864 -0.370970
v -2.825516 2.183814 -0.371070
v 2.529884 -2.563936 -0.792870
v -0.186316 -2.686486 1.251980
v -0.112566 -2.666337 1.077330
v -1.057666 -1.858686 0.426780
v 2.810684 -2.137086 -1.231720
v 2.912634 -2.061786 -1.085470
v -3.092716 2.723064 0.955180
v -1.663816 3.139614 -1.176370
v 0.593284 4.771564 -1.564419
v 0.657634 4.792564 -1.562819
v 1.954384 -2.739486 -1.526720
v 1.995184 -2.657786 -1.540521
v 2.731284 -2.808436 -0.127070
v 4.445484 -1.304536 0.569130
v 3.359284 -0.759236 -0.956870
v 2.419634 -2.744787 1.499779
v -3.082466 1.571514 -0.106320
v 3.401584 -1.553986 -0.668170
v 3.391584 -0.621586 -0.939470
v 2.370034 -0.139786 -1.737970
v 2.253234 -0.204336 -1.844070
v 3.036134 -1.525936 -1.270870
v 3.320634 0.404514 -0.871720
v 3.075334 -1.865136 -0.923520
v 3.126934 -1.921336 -0.790120
v 3.006134 -2.072236 -0.776770
v 3.002434 -1.989936 -0.928770
v 2.116234 -2.819686 -0.246820
v 2.084084 -2.771736 -0.201770
v -1.669116 3.612814 -2.506770
v 1.809734 -2.809336 -1.474520
v 1.879084 -2.833386 -1.407920
v 1.678734 -2.842836 -1.439670
v 1.301734 -2.852386 -1.501920
v 1.870784 0.137714 -1.880870
v 1.722134 0.118764 -1.990470
v 1.913634 0.011914 -1.935720
v 1.773134 -0.073686 -2.047870
v -1.420716 3.420364 -0.227219
v -1.557316 3.240463 -0.233919
v -1.559666 3.263314 -0.129519
v 3.338484 -1.711636 -0.678820
v 3.247184 -1.821786 -0.738920
v 3.306634 -1.700736 -0.745270
v -0.529266 1.850114 -0.356720
v -0.820066 1.891514 -0.341970
v -0.748466 1.899014 -0.228620
v -0.485216 -2.790036 1.723330
v 3.033634 0.281264 -1.157170
v 2.992684 0.123514 -1.308470
v 2.846734 0.242764 -1.362520
v -1.855466 -2.627936 1.027030
v -1.835016 -2.552686 1.084280
v -1.767766 -2.587487 0.923580
v -0.189716 -1.568636 -1.031070
v -0.154216 -1.689786 -1.043220
v -0.195316 -1.736936 -0.961370
v 1.410884 1.012164 -1.392470
v 1.487434 0.911164 -1.406970
v 1.215184 0.907514 -1.509270
v 3.361884 0.502364 -0.770370
v -2.555616 1.267513 2.044680
v -2.433815 1.171663 2.084030
v 2.162534 -2.604436 -1.489170
v 2.307984 -2.504686 -1.464970
v 0.707684 0.445264 -1.576620
v 3.704234 -2.491986 0.255330
v 3.569934 -2.541636 0.419080
v -0.474066 -2.775036 0.824730
v 0.821934 0.406964 -1.636870
v -1.677516 3.730114 -2.674919
v -1.161166 -1.741086 0.539030
v 3.513184 -0.835136 -0.767020
v 3.432984 -0.697586 -0.846270
v 3.502184 -0.533686 -0.784170
v 0.902534 -2.805786 1.762479
v 0.823834 -2.813337 1.930129
v 0.850884 -2.807636 1.753279
v -2.004366 -1.326536 -0.466570
v -1.866416 -1.425686 -0.452720
v -1.958016 -1.409186 -0.295970
v -1.687566 3.560464 -2.685770
v 3.764734 -0.790986 0.409130
v -1.767266 3.541064 -1.372819
v 3.479934 -1.352986 -0.639020
v 1.529534 1.040264 -1.405470
v 1.485284 1.135014 -1.379770
v 1.710534 1.054564 -1.401870
v 1.609934 -2.805036 -1.541820
v -0.537716 -0.977286 -1.249320
v 0.709884 -2.862436 -1.607971
v 0.503384 -2.870186 -1.637071
v -1.972166 2.887864 -2.128370
v 0.524234 0.536064 -1.584720
v 0.660034 0.600464 -1.559620
v -0.357316 -0.133486 -1.603270
v -0.192266 -0.169086 -1.660520
v -0.515166 -0.779486 -1.296120
v 1.688584 -2.620386 -0.980120
v 2.417684 -2.369636 -1.485270
v -0.344316 -2.817236 1.591879
v -0.515916 -2.817137 1.622530
v -2.077816 2.922514 -2.393519
v -1.381916 -1.910736 -0.066070
v -1.402516 -1.743336 -0.148470
v -1.425816 -1.924686 -0.264620
v 2.403684 -2.758786 -0.728870
v -1.733566 -2.445386 0.948580
v 3.037284 -1.260986 -1.326370
v 3.011484 -1.420486 -1.326570
v 0.383434 -2.622386 -0.655570
v 1.811384 0.216064 -1.833520
v -1.712666 -2.282686 1.251880
v -1.731066 -2.334136 1.155030
v -0.967066 3.491464 -0.737769
v -1.032816 3.606314 -0.650919
v -0.868416 3.687514 -0.773419
v -1.425316 -2.449836 0.529830
v -0.535466 -0.585086 -1.364620
v -1.312716 -2.162236 1.003930
v -0.109866 -2.827836 0.586279
v -2.026916 0.940564 1.516330
v 1.745884 -2.639836 -0.703220
v 1.659834 -2.676786 -0.547720
v 3.051984 -0.535236 -1.364020
v 2.970734 -0.682486 -1.440220
v -0.647766 -2.847986 -1.794120
v -0.562516 -2.844886 -1.870021
v 2.744684 0.577464 -1.270670
v 2.834634 0.428914 -1.269920
v 2.616384 0.484314 -1.396070
v -3.083616 2.124763 1.026830
v -3.036216 2.193213 1.084280
v -2.255816 3.019364 -2.060820
v -2.279316 2.945264 -1.952819
v -1.677316 3.843615 -2.826220
v -3.051816 2.190913 1.327430
v -2.887866 0.504864 -0.171720
v 0.146634 1.067014 -1.257670
v 2.156734 -2.818536 -1.283620
v 2.144534 0.076214 -1.785870
v 2.045384 0.032714 -1.883070
v 0.883334 4.420664 -1.882369
v -3.066766 2.069464 1.522980
v -3.042166 2.082664 1.647230
v -0.408266 -2.812236 -1.922020
v -0.484416 -2.860736 -1.874570
v 2.320834 -2.607386 -1.356171
v 3.492284 0.494664 0.780580
v 4.395584 -1.694236 0.605630
v 2.586884 -2.830836 0.028930
v 2.579534 -2.831236 -0.061670
v 1.710684 -2.740886 -1.574370
v -2.976066 -0.081836 0.729330
v 0.157234 -2.328486 -1.816270
v -0.129316 -2.370686 -1.851220
v 2.514834 -2.257086 -1.354620
v 3.382134 0.733564 0.866080
v -1.180916 2.402613 0.837280
v -1.212316 2.642463 0.784280
v -1.245466 2.767214 0.803280
v -1.257416 2.993863 0.902130
v 1.412934 0.113364 -2.073270
v 1.193134 0.049664 -2.162670
v 1.272684 0.251164 -1.997670
v 3.635284 0.132064 0.740380
v -1.868166 2.784164 -1.579520
v 2.578684 -2.189586 -1.372470
v 3.523434 -1.405786 -0.548020
v 3.445284 -1.614636 -0.624470
v 0.936984 -0.170836 -2.256570
v 0.874934 -0.239436 -2.320570
v 0.802434 -0.152136 -2.304320
v -0.472816 -2.863886 -1.834370
v -1.212266 -1.579486 0.862630
v 3.603684 0.277964 0.703380
v 2.433384 1.757964 -0.297970
v 1.809984 -2.589186 1.138229
v 1.667284 -2.584587 1.048379
v 1.801184 -2.603537 1.051630
v -1.183466 2.552314 0.656680
v -1.286616 -2.329136 0.453830
v -1.434966 -2.322486 0.338030
v 3.398784 -2.369236 1.054180
v 0.093184 -2.633386 -0.303670
v -1.211066 2.736564 0.673430
v -1.180616 2.879914 0.597680
v 3.695884 -0.190886 0.660430
v -0.470116 -0.090836 -1.570670
v 1.184834 -2.591587 1.233930
v 1.116784 -2.587337 1.375929
v 1.045984 -2.607736 1.074679
v -1.126416 2.441763 0.658130
v 4.155334 -2.141286 0.556930
v -0.077466 -2.872686 -1.846621
v -0.212616 -2.867136 -1.877920
v -0.183966 -2.783886 -1.937071
v 4.180534 -2.139186 0.395130
v 4.253834 -2.048686 0.498980
v -0.111216 -2.137836 -1.580520
v -1.038466 2.274214 0.659080
v 3.934534 -2.296886 0.649980
v -2.533316 3.185313 0.071630
v 1.255284 -2.711987 2.015829
v -1.538266 -2.560286 0.576830
v -1.551966 -2.621386 0.604980
v -1.542266 -2.555386 0.661280
v 2.441184 -2.241736 -1.459570
v -2.362116 3.187964 -0.389370
v -2.479416 3.155714 -0.128170
v -2.020666 3.268214 0.410780
v -2.001816 3.272614 0.682881
v -2.090866 3.256913 0.843731
v -1.675916 3.225363 0.903381
v -1.857366 3.207413 1.039180
v -1.714316 3.159113 1.174180
v -2.121616 4.127514 -2.356319
v -2.159066 4.034464 -2.041070
v -0.077066 1.724664 0.464280
v -2.269316 4.343514 -2.712369
v -1.348066 3.176064 0.689431
v -2.226116 3.995314 -1.902869
v 4.280934 -1.003036 0.618130
v 0.233284 -2.797987 1.789430
v 0.205434 -2.805086 1.876480
v 0.179534 -2.803787 1.782929
v -3.188316 1.930563 0.944880
v 0.744184 4.685514 -1.644819
v 0.482734 -1.382486 2.116880
v 0.640934 -1.373986 2.263180
v 4.178884 -0.927486 0.602630
v 4.096234 -0.985686 0.739930
v -2.876566 0.503814 0.883180
v 4.199134 -0.883086 0.400280
v -1.020666 -1.754187 1.334630
v -1.115066 -1.685586 1.167430
v 4.192784 -0.887686 0.172980
v 4.005884 -0.894286 0.561530
v -2.425366 3.062814 1.315480
v -2.289816 3.071963 1.343030
v -1.995266 3.523114 -0.945269
v 4.191634 -0.919836 0.026030
v 3.953084 -0.964536 0.698730
v -2.138266 3.421314 -0.688119
v -2.211516 3.330614 -0.551019
v -0.751016 1.900263 0.394980
v -0.838566 2.053713 0.262530
v -0.844316 2.035214 0.500380
v 4.060334 -0.859736 0.349680
v -2.322016 3.257664 -0.530119
v -0.324816 -0.940786 -1.307870
v -0.293916 -0.862886 -1.423070
v 4.091634 -0.897236 0.032780
v 3.766234 -1.030036 0.717480
v -2.474966 3.108114 -0.316370
v -1.803766 -2.393786 1.301230
v 3.880084 -0.874786 0.266180
v 3.888184 -0.882836 0.384880
v 3.811234 -0.944336 0.537130
v 3.683634 -1.071486 0.809780
v -1.108416 3.650014 -0.219119
v 3.855584 -0.892886 0.142130
v 3.814684 -0.871686 0.388730
v 3.779584 -0.873986 0.478130
v -1.264966 3.482114 -0.087519
v -1.602366 -2.301687 1.015730
v 3.817984 -0.862086 0.296430
v -1.905766 4.460664 -3.135869
v -1.821766 -2.505486 1.073030
v 0.280734 -2.804036 1.804729
v 3.859934 -0.962786 -0.099420
v 3.792184 -0.849036 0.171430
v -0.826716 2.022264 0.076630
v -1.761816 3.234014 0.083081
v -1.774166 3.145813 -0.310520
v -1.081266 -1.580587 1.244980
v -2.824316 3.118664 0.244330
v -2.607766 -0.813036 0.583630
v -0.017016 1.694414 -0.290870
v -0.059966 1.728664 -0.100820
v -1.795416 3.678714 -1.607119
v -1.874866 3.656014 -1.353519
v -1.951466 3.640714 -1.214569
v -1.862416 1.957364 -0.840770
v -2.950416 1.146963 1.026930
v -2.023366 3.592764 -1.039420
v -1.684916 2.915763 -0.612270
v -2.168216 3.512014 -0.851919
v -1.983566 3.009514 1.478480
v -0.303966 1.832064 0.078380
v -0.405266 1.840964 0.286630
v -1.731966 4.403914 -3.388069
v -1.619416 3.251714 0.419881
v -2.420366 4.322414 -2.748019
v -2.380816 4.405564 -2.920269
v -2.475066 4.289165 -2.839669
v -0.347816 1.782114 -0.429370
v -0.427116 1.854514 -0.120570
v -0.290166 1.806113 -0.195420
v -2.038766 4.101765 -2.383369
v -0.405966 1.797313 0.517030
v -1.916516 0.581414 -1.176820
v -1.560616 -2.620436 0.668380
v -1.475216 -1.230736 -0.875220
v -1.343566 -1.294036 -0.834320
v -0.120916 1.714164 -0.289270
v -0.115566 1.629064 -0.570370
v -2.436116 4.191114 -2.541670
v -2.466916 4.251814 -2.689469
v -2.040766 3.086264 1.353330
v -0.563916 1.850064 0.334430
v -0.690566 1.867914 0.356980
v -0.662766 1.791064 0.525230
v -0.750016 1.820514 0.549380
v -0.673916 1.904914 -0.027020
v -0.750216 1.941214 0.228130
v -0.638866 1.896414 0.168730
v -0.820316 3.858114 -0.288669
v -1.833166 3.265664 0.382831
v -2.062016 4.524564 -3.206869
v -1.698466 3.202764 -0.117619
v -1.631616 3.226464 -0.063870
v -0.813816 1.943264 0.609930
v -0.780866 1.785863 0.603980
v -0.751616 1.733714 0.628030
v -0.538416 1.791514 0.531680
v -2.276816 3.419514 -0.793320
v -0.524366 1.742064 0.669930
v -0.435116 1.712214 0.739230
v -1.736666 3.041764 -0.528120
v -3.018466 0.262614 0.549330
v -0.451916 1.868564 0.037430
v -0.819966 1.946564 -0.129970
v -0.738616 1.936864 0.039030
v -2.025316 3.166664 1.173680
v -1.744266 -2.300836 0.103280
v -1.932466 -2.328036 -0.027120
v -0.729266 1.676964 0.725080
v -2.334366 3.653064 -1.279369
v -1.919016 3.251364 0.886931
v -1.573566 3.246013 0.115381
v -1.580616 3.128164 1.211030
v 0.122234 -0.395436 -2.249870
v 0.034434 -0.317836 -2.179770
v 0.118284 -0.206686 -2.200420
v -2.251216 3.266964 0.334731
v -0.853366 3.790864 -0.746569
v -0.715716 3.723964 -0.895519
v -1.823566 3.264163 0.761531
v -1.734266 3.398014 -1.220469
v 1.104484 1.913664 -0.389820
v -2.363116 3.487914 -1.024819
v -3.005366 2.318613 0.897480
v -1.651766 3.182163 -0.236769
v -3.048766 2.429363 0.867030
v 0.522184 -2.715687 2.242080
v 0.361734 -2.736537 2.283779
v 0.457034 -2.782137 2.196880
v 0.725484 4.684914 -1.735819
v -3.004866 1.887864 -0.200320
v -3.013916 1.700714 -0.225970
v -2.927516 0.153114 -0.125720
v 2.003134 -2.827136 -0.750821
v 1.798484 -2.816936 -0.537570
v 1.906634 -2.788186 -0.769520
v -2.947166 2.955464 0.965630
v 3.345534 0.954764 0.174680
v 3.117834 1.205414 0.788730
v -0.986416 2.023364 -0.365120
v -1.059216 2.078264 -0.447820
v -1.537366 3.271564 -0.020069
v -0.888766 1.944764 -0.288970
v -1.468666 3.327564 -0.051369
v -2.502316 3.884864 -2.135269
v 3.145334 1.213214 0.527730
v 0.419734 4.778563 -1.224319
v 0.340184 4.733963 -1.111769
v -0.676266 -0.543736 -1.392770
v -0.615266 -0.346936 -1.452720
v 2.943484 1.309314 0.964530
v -1.188166 -1.500036 1.059980
v 3.162534 1.191164 -0.149020
v -0.676316 -1.739336 -0.970620
v 0.127234 1.685414 -0.361320
v 0.809434 4.004714 -1.663169
v -3.162816 1.240264 1.456180
v 3.047684 1.351114 0.084730
v 2.987284 1.382964 0.625780
v -1.929316 -2.384786 0.064430
v -1.837116 -2.388086 0.150580
v -3.155166 1.297813 1.679530
v -3.212566 1.377864 1.564880
v 2.880884 1.454764 0.788430
v -2.443516 3.692964 -1.650519
v 2.753234 1.447014 0.984180
v -2.758916 0.963014 -0.241470
v 3.024684 1.361764 -0.062320
v 2.840684 1.542514 0.317480
v 2.678634 1.587464 0.844230
v -1.146766 -1.871786 0.257830
v 3.736484 -2.315836 0.865830
v -1.551066 -2.336636 0.927430
v -1.349666 -1.826986 0.006730
v 2.547434 1.553814 1.090980
v -1.997716 4.497014 -3.304969
v -2.073366 4.484964 -3.257919
v 0.478934 0.332113 1.899080
v 0.517434 0.377764 1.841380
v 0.739384 0.287563 2.204930
v 0.585984 0.256863 2.183030
v -1.517266 -1.616086 -0.094670
v 2.927534 1.377914 -0.353120
v 2.827934 1.517414 -0.146820
v 2.641984 1.682014 0.578080
v -2.962316 2.105414 -0.264620
v 0.042734 -0.766737 1.795830
v 2.799484 1.572614 0.042930
v 2.532034 1.719064 0.752580
v 1.393834 0.463913 2.023180
v -2.769216 -0.466836 -0.255270
v 2.640884 1.696264 0.158880
v 2.801184 1.396414 -0.560470
v 2.338784 1.686264 0.982330
v 2.614784 1.665114 -0.198270
v 2.375934 1.739164 0.827480
v 2.649634 1.577414 -0.392620
v 2.418684 1.821263 0.383380
v 2.350184 1.820363 0.597980
v 2.523534 1.752314 -0.026220
v 2.130134 1.680214 1.169980
v -2.611016 2.955214 -0.325670
v 2.224084 1.812063 0.891980
v 0.073184 4.472564 -1.156769
v -1.777766 -2.424386 1.488330
v -1.888566 -2.619586 1.359480
v -2.679866 2.847714 -0.274920
v 2.609584 1.480364 -0.646870
v 2.455984 1.712864 -0.385670
v 2.120234 1.799163 1.013530
v 1.418484 0.366464 -1.761770
v -0.275216 -2.844236 0.673479
v -2.651266 -0.720436 0.736380
v -0.553016 0.654114 -1.416120
v 2.329834 -2.799086 -1.068121
v 2.357884 1.850514 0.138030
v 2.105334 -0.152486 -1.928820
v -2.234566 0.324113 1.595280
v -2.215966 0.142463 1.655480
v -0.309966 3.885414 -1.137169
v -2.547166 -1.013886 0.105580
v 0.524684 0.310164 2.015530
v -2.445766 4.345914 -2.897069
v -2.440416 4.242064 -2.886769
v 0.238534 -1.629887 1.700130
v 0.339834 0.257913 1.902480
v -0.135866 -2.075037 1.731680
v -0.107516 -1.980136 1.551130
v -0.223366 -2.080287 1.622679
v 0.391034 -0.948036 2.229780
v 0.251634 0.177014 1.944180
v 0.306684 -1.398237 1.822380
v 0.494734 0.169763 2.229880
v 0.008284 -1.991536 1.680680
v 0.067834 -1.931536 1.521880
v -2.487366 4.230064 -2.772869
v -1.280116 -1.669736 0.609180
v -1.354616 -1.576686 0.742230
v -1.438266 -1.595886 0.683880
v -1.682366 -2.489136 1.736330
v -0.221566 -2.198436 1.816380
v -0.322316 -2.277286 1.805980
v -0.372066 -2.610736 1.914029
v -0.383566 -2.447436 1.864080
v -0.486666 -2.501536 1.738730
v 0.030634 -2.503037 2.281679
v 0.135834 -2.509137 2.308179
v -0.095716 -1.941486 1.473280
v -2.183316 -0.030636 1.680030
v 0.285134 -0.277987 2.360980
v -2.282866 3.330963 -0.647869
v -2.352916 3.277263 -0.681719
v -0.455716 -2.377836 1.694480
v -0.223666 -2.592437 2.128279
v -0.149716 -2.446986 2.143229
v -1.855466 -1.390486 -0.553770
v 0.078834 -0.808436 -2.192170
v 0.002334 -0.563236 -2.164570
v 0.209484 -0.679586 -2.280170
v -2.959166 2.362664 1.653980
v -3.012366 2.432714 1.477880
v 0.318834 0.076113 2.181830
v 0.182034 -0.158837 2.193230
v 0.402634 -1.687837 1.946580
v -0.294366 -2.842636 0.288279
v -0.289666 -2.847436 0.360129
v -0.345666 -2.751886 0.380830
v 3.188034 -0.380786 -1.299620
v 0.373984 0.185014 2.100830
v -0.263316 -2.495486 2.066679
v -0.217816 -2.361636 2.021630
v 0.128084 -1.657187 1.533030
v -1.868716 -2.631037 1.472479
v 0.667184 4.425264 -1.739169
v 0.734434 4.508464 -1.801169
v -1.595466 -1.393886 -0.659570
v -1.579416 -1.252536 -0.827670
v -1.400666 -1.409386 -0.702220
v 0.353384 4.714014 -1.299469
v 0.223134 -0.463437 2.333180
v 0.114734 -0.458636 2.148230
v -0.888666 -1.678087 1.489080
v -0.978666 -1.351286 1.425930
v -1.673216 0.328814 -1.287820
v -1.811216 0.227364 -1.297670
v 0.253384 -0.892137 2.059730
v 0.076084 -0.635236 1.946130
v 2.973134 -2.728436 -0.251370
v 0.104184 -0.901737 1.781630
v 0.118884 -2.631686 -0.597520
v -0.098416 -0.029336 -1.642070
v -0.007716 0.041114 -1.745970
v -2.097016 -0.245486 1.690130
v -1.549066 -2.620936 1.897079
v -1.593666 -2.500237 1.811580
v 0.180534 3.998414 -1.363619
v 0.079384 -0.535086 -2.234670
v 0.188984 -2.704287 2.318279
v -1.254366 -1.813086 -0.690070
v -1.182016 -1.748686 -0.782720
v -1.237616 -1.943486 -0.689270
v 0.075034 -1.831936 1.460380
v -1.427666 -1.465336 0.929230
v -1.485466 -1.524086 0.779730
v -0.517766 4.085114 -0.906669
v -0.260966 -2.338637 1.908730
v -2.437966 3.506114 -1.314669
v -2.396416 3.519864 -1.166520
v 0.284884 0.106863 2.089930
v 0.176584 -0.902036 1.897280
v -0.897716 3.870663 -0.388069
v -0.499166 -2.696887 1.763579
v 0.686334 -2.605836 -1.110821
v 0.435834 -1.149886 2.203030
v 0.334334 -1.149987 2.044930
v -0.518316 -2.543087 1.701580
v -0.124016 -2.196236 1.868280
v -0.334266 -2.491186 1.929229
v 0.103884 -0.105736 2.033880
v 0.212134 0.095763 2.017980
v -2.178666 -0.551936 1.547480
v -2.005166 -0.605937 1.618680
v 0.058084 -0.280987 2.021030
v -1.110716 -1.209887 1.434730
v -2.220666 -0.398886 1.576580
v -1.164766 -1.724236 0.690230
v 0.202484 -0.378237 2.302530
v -0.562866 3.525714 -0.990919
v -2.367666 3.358914 -0.848470
v -2.389816 3.252914 -0.790769
v -1.196966 -1.649936 0.743880
v -1.251816 -1.549286 -0.795370
v -1.078366 -1.506286 -0.939370
v 0.231384 -1.161386 1.855580
v -0.624966 3.650964 -0.963169
v -1.304816 -1.491536 0.956380
v -1.261116 -1.576286 0.809830
v 0.412584 4.470164 -1.518069
v 0.280434 4.330264 -1.430819
v 0.296634 4.502113 -1.391469
v 0.402284 0.015863 2.289130
v -0.282066 -1.791586 -0.910570
v -2.836616 3.017514 1.021430
v -2.818316 2.949814 1.182330
v -2.600466 1.382263 2.049880
v -0.349166 -2.790986 0.505329
v -0.611216 3.852064 -0.940619
v -1.179366 -1.415637 1.175980
v -1.247966 -1.425436 1.118780
v -1.822066 -2.532537 1.221330
v -1.900166 -2.670786 1.277580
v -1.913616 -2.761537 1.186430
v -1.859166 -2.798786 1.336529
v -1.897966 -2.744136 1.333079
v -0.023166 -2.043886 1.770030
v -2.072866 2.842964 -1.969069
v 0.064384 -2.649386 0.101380
v 0.050384 -2.643336 0.002580
v 3.074434 -2.558936 -0.503920
v 2.842484 -2.521436 -0.592720
v -2.714966 2.589714 1.731631
v -2.377616 3.195364 -0.567419
v -2.710566 1.594663 2.080730
v -2.803916 1.672014 2.070330
v -2.876516 1.640314 2.027030
v -1.244616 -1.499386 0.981280
v -0.976466 -1.131436 1.565180
v -1.970466 0.257114 -1.210970
v -2.384916 -0.173436 1.537430
v -1.896616 -2.658437 1.156379
v -2.865666 1.464463 2.046330
v -1.799266 2.159364 -0.796070
v -1.595566 2.057014 -0.772220
v -2.662116 2.251264 2.058481
v -2.789266 2.366114 1.871280
v -2.871866 1.939864 2.040480
v -2.819366 1.770563 2.085630
v -1.491116 -1.388186 1.092880
v 0.482084 -1.091287 2.261130
v -0.294716 -0.641536 -1.485620
v -0.306966 -0.740686 -1.424420
v -2.668066 1.553214 2.071530
v -2.744366 1.400013 2.066530
v -1.115316 3.232164 -0.636919
v -0.986216 3.267964 -0.726719
v -0.997866 3.142213 -0.680119
v -1.236916 -1.653286 0.681530
v 0.302184 -0.243786 -2.286920
v 0.302434 -0.013436 -2.184570
v 0.447934 -0.227786 -2.302520
v 1.385534 -2.653436 0.585430
v 1.424984 -2.618286 0.702930
v 1.319884 -2.624536 0.572880
v 1.585934 -2.621536 1.909279
v -2.126716 -2.610186 -0.274870
v -2.145716 -2.642486 -0.360020
v -2.195616 -2.768736 -0.336520
v -2.317516 -1.051236 -0.425570
v -1.927266 3.342014 -3.127620
v -0.056066 0.748114 -1.487570
v -3.039616 1.701364 1.883030
v -2.954916 1.880513 1.907180
v -2.813216 2.637214 1.600630
v -2.712116 1.286414 2.042630
v -2.930366 1.293663 1.961980
v -2.818666 2.053514 2.050280
v -2.175566 -2.695936 -0.200170
v -2.113916 -2.548836 -0.240870
v -2.081516 -2.544336 -0.378120
v -2.226866 2.748714 -1.121920
v -3.059366 1.529463 1.899980
v -2.447116 -0.066487 1.483780
v -2.523116 -0.266836 1.396930
v 0.543184 -2.612236 -1.198120
v -2.358666 0.168114 1.536130
v -1.270016 -2.803437 1.853330
v -1.320966 -0.992986 -1.182970
v -0.621266 -2.000836 -0.948820
v -2.110816 -2.589836 -0.183620
v -2.080916 -2.509936 -0.194170
v -2.014616 -2.390836 -0.284370
v 0.213634 4.101764 -1.393119
v -2.393716 0.693464 1.347980
v -1.884866 -2.696386 1.075379
v -1.840066 -2.709836 0.945680
v -1.868166 -2.778636 1.047929
v -2.235416 -0.739986 1.394630
v -2.645866 2.337414 -0.481070
v -1.832566 1.637114 -0.841920
v -2.489616 -0.736686 -0.702720
v -2.478916 -0.591586 -0.778020
v -2.255866 -0.730286 -0.925620
v -2.134316 -2.571536 0.000630
v -2.051616 -2.421036 -0.048520
v -2.089366 -2.649536 -0.430670
v -1.614016 -0.079186 -1.353670
v -1.643116 -0.246886 -1.358270
v -1.917216 -2.304286 -0.114870
v -2.707216 1.047264 -0.344320
v -1.794016 -2.654486 0.842830
v -2.389366 0.329813 1.459880
v 0.161684 -2.762687 2.261580
v -0.573366 -1.183836 -1.160470
v 2.638084 -1.340836 -1.600570
v -0.189916 -2.861836 0.295229
v -0.089516 -2.840636 0.242230
v -2.984566 0.301764 0.754830
v -1.818866 -2.811136 1.011230
v -2.895916 2.175964 1.879830
v -1.834216 -2.789587 1.496729
v -1.869016 -2.732486 1.516029
v -1.842816 -1.182636 -0.768120
v -1.367666 -2.197236 0.199780
v -2.881016 -0.084436 0.914330
v -2.978966 0.046464 0.778130
v -2.901116 0.066364 0.927630
v -1.948966 -2.568836 0.162930
v -1.504916 3.262064 -0.289119
v -2.887566 0.299764 0.938680
v -2.061066 -2.788586 0.159330
v -1.972866 -2.767736 0.274630
v -1.968816 -2.677636 0.264530
v -0.716566 -0.678436 -1.351070
v 0.769184 -2.578836 1.533780
v 0.675284 -2.589586 1.482329
v 0.822934 -2.581636 1.481529
v -2.299766 -0.879186 -0.794020
v -2.387666 -0.892486 -0.690570
v -0.014366 -2.782187 2.195780
v -2.882316 2.422564 1.719380
v -0.613516 -0.192186 -1.466720
v -2.781466 0.193614 1.099030
v -2.757316 0.718114 0.940530
v 1.672234 -2.841236 -0.035870
v 1.607584 -2.837586 0.095830
v 1.582284 -2.840086 -0.096670
v -1.718916 -1.408386 -0.595370
v -2.951516 2.804163 1.165080
v -0.184866 -1.954386 1.474230
v -2.492116 3.754714 -1.908520
v -2.753466 -0.085286 1.089230
v -2.761216 0.470964 1.059430
v -2.890966 2.880614 1.178080
v -0.744816 3.988663 -0.719169
v -0.964066 -2.796587 1.811280
v -1.839316 -2.489836 0.264730
v -1.808866 -2.758337 1.634730
v -0.842516 -2.782236 -1.490721
v -0.793866 -2.843136 -1.562370
v -0.839666 -2.829586 -1.445071
v -0.237966 -1.696986 -0.943320
v -3.062366 1.400813 1.882430
v -2.716216 -0.299686 1.123830
v 0.079584 -2.744086 -1.873621
v 0.283634 -2.726286 -1.828921
v 0.142034 -2.796286 -1.839420
v -1.891966 -2.670186 0.345080
v -1.506116 -2.181036 0.020130
v -1.539166 -2.226686 0.099730
v -1.442916 -2.118436 -0.005020
v -1.378766 -2.037136 0.043230
v -2.677466 -0.434486 1.135980
v -2.603166 0.820613 1.089830
v -0.782316 -2.792586 -1.599221
v -1.722816 -2.455336 0.322080
v -0.597866 0.496464 -1.463670
v -2.739566 1.955364 -0.565570
v -2.025366 4.402464 -3.297469
v -1.970816 4.279614 -3.303669
v 0.840384 -2.650186 -1.213120
v -1.990666 -2.386236 -0.167020
v -1.744216 -2.655236 0.451730
v -2.013766 1.493314 -0.841570
v -1.962716 0.417964 -1.172770
v -2.604066 -0.579886 1.135880
v -2.618666 0.031364 1.272880
v -2.592166 0.286414 1.303330
v -2.406216 0.811564 1.356930
v -2.961016 2.610114 1.405180
v -2.811916 2.863763 1.324330
v -1.852166 -2.815786 0.343080
v -1.780416 -2.762536 0.467080
v -1.572066 -2.359586 0.303930
v 0.083834 -2.825886 -1.858071
v 0.070034 -2.872386 -1.715271
v -2.111366 1.867764 -0.851820
v -2.581416 0.533563 1.218080
v -2.562216 0.715114 1.169380
v -1.331716 -2.099836 0.143280
v -1.282766 -1.943986 0.123730
v -1.811166 -2.718536 -0.777020
v -2.915916 2.605263 1.502330
v -1.278216 3.537464 -0.218319
v -1.642716 -2.576736 0.491330
v -1.196216 -0.994386 -1.168520
v -0.117316 -0.127986 -1.713220
v -1.929566 -2.479636 -0.489720
v -1.906216 -2.505836 -0.632720
v -1.948216 -2.593336 -0.639970
v 3.036134 -2.461787 1.016580
v -0.376066 -2.855336 -1.919871
v -0.324266 -2.784136 -1.953020
v -2.221816 2.947464 -2.234770
v -1.699266 -2.778936 0.588629
v -1.059466 -2.229336 -0.847570
v -1.222966 -2.132286 -0.725620
v -1.060966 -1.965336 -0.812270
v -3.019966 1.224663 1.832880
v -1.510316 -2.750386 1.906830
v -1.270866 -0.055536 -1.513820
v -1.102416 0.140364 -1.479820
v -1.043316 -0.027936 -1.480220
v -0.393316 -2.781286 0.757280
v -0.424466 -2.777336 0.836980
v -2.651216 0.904114 1.024780
v -1.633116 -2.685686 0.614380
v 0.032134 -2.645486 -0.089870
v -0.017966 -2.643736 -0.101620
v -1.499916 1.531464 -0.842420
v -1.573316 1.409564 -0.902920
v -1.653016 1.444114 -0.856670
v 0.080584 -2.651336 0.196880
v -0.271666 4.281914 -0.962169
v -2.417716 3.097264 -0.654970
v -2.016966 -0.304686 -1.267270
v -1.742166 -0.425136 -1.352570
v -1.937866 -0.454136 -1.285920
v -2.546616 2.337164 -0.605320
v 1.100834 1.192914 -1.257220
v -0.660866 3.985514 -0.829019
v 1.313584 1.119814 -1.332970
v 1.174334 0.399464 -1.733170
v 1.074434 0.338764 -1.859520
v 1.046934 0.427064 -1.653320
v 1.996934 1.416214 -1.124570
v 1.798784 1.383564 -1.169420
v 1.731434 1.533914 -1.052120
v -0.184516 0.865764 -1.349220
v 1.233884 1.036414 -1.430420
v 2.051584 1.880664 -0.415170
v 1.887934 1.814414 -0.635370
v -1.918866 3.923414 -3.239820
v 1.608234 0.381914 -1.613620
v 1.837434 0.355264 -1.586620
v 2.065384 1.759014 -0.628920
v 1.898384 1.663564 -0.836270
v 1.834434 0.429114 -1.498220
v -1.996866 4.098664 -3.175469
v -2.104566 4.347314 -3.207469
v -0.833066 -2.818236 1.613879
v -0.815466 -2.813686 1.426229
v -2.155516 4.492115 -3.191170
v -1.974566 3.733564 -3.090369
v -2.035916 3.880664 -2.999719
v -2.085866 4.117414 -3.063269
v -2.206066 4.238914 -3.032219
v -2.287016 4.358214 -3.069919
v -2.021266 3.553464 -2.953320
v -2.376316 4.283364 -2.966619
v -2.394316 4.344265 -2.983520
v -2.084516 3.713464 -2.807219
v -2.128366 3.906965 -2.839369
v -2.230066 4.141864 -2.909769
v -2.065066 3.214464 -2.878170
v -2.059366 3.462914 -2.804970
v -1.839216 1.293764 -0.873720
v -1.715316 1.275664 -0.936020
v -2.258366 4.096614 -2.832019
v -2.099966 3.171164 -2.756969
v -2.096416 3.317564 -2.671220
v -2.463166 4.161065 -2.776069
v -2.279066 4.011815 -2.717719
v -2.110116 3.382214 -2.571969
v -2.193416 3.773614 -2.576019
v -2.238216 3.909914 -2.648219
v -2.466766 4.049664 -2.646119
v -2.494166 4.133614 -2.694319
v -2.158066 3.576564 -2.493020
v -2.314816 3.961664 -2.629169
v -2.408716 3.075214 -0.756270
v -2.156216 3.085514 -2.559220
v -2.259666 3.854014 -2.552219
v -2.436766 3.935965 -2.512369
v -2.507266 3.987464 -2.518719
v -2.171616 3.201614 -2.305119
v -2.143166 3.287514 -2.405770
v -2.295166 3.800564 -2.435769
v 0.183384 -1.734886 -1.854070
v -2.235016 3.698764 -2.402369
v -2.498466 3.893164 -2.399869
v -2.527916 3.936514 -2.402769
v -2.528866 3.871064 -2.293119
v -2.177516 3.329114 -2.213070
v -2.225516 3.573314 -2.265670
v -2.291666 3.679514 -2.272619
v 2.904034 0.083214 -1.376770
v 2.944434 -0.181336 -1.412270
v 2.779684 -0.031136 -1.508120
v 1.429684 1.855114 -0.569420
v 1.476634 1.722714 -0.777820
v 1.374534 1.741564 -0.756620
v -1.777466 1.444564 -0.834070
v -1.901666 1.343814 -0.837220
v -2.486016 3.797964 -2.264669
v 0.919634 1.712114 -0.767420
v 1.125884 1.693064 -0.875470
v 0.904434 1.549214 -0.932270
v -2.180316 3.225364 -2.165220
v -2.377616 3.697764 -2.201919
v -0.578366 4.119364 -0.774219
v -2.221716 3.442514 -2.111470
v -2.500166 3.758464 -2.173969
v 1.950034 -2.803186 -0.878420
v 2.564484 1.173014 -1.022820
v 2.695534 1.031264 -1.001120
v 2.472934 1.004264 -1.153620
v -0.016266 -0.332986 -2.116670
v -2.316566 3.583464 -2.078070
v -2.519466 3.785914 -2.127769
v -0.175866 0.959664 -1.312470
v 1.726334 1.800664 -0.706770
v 0.072884 -1.091286 -2.065320
v 0.000884 -0.867586 -2.108170
v 0.121384 -0.989086 -2.166720
v -0.091166 -0.725286 -2.065320
v -0.133516 -0.538986 -1.993020
v -0.025616 -0.134436 -1.988070
v -2.140766 2.879964 -2.160669
v -2.212916 3.183814 -2.002869
v -2.273466 3.485064 -2.005769
v -2.501816 3.709464 -2.075569
v 2.931434 1.040314 -0.871120
v 2.869734 0.810564 -1.060370
v 2.732884 0.870214 -1.102970
v 0.311584 -1.316086 -2.145920
v 0.184534 -1.310286 -2.038020
v -0.020816 -1.060686 -1.949670
v -0.172116 -0.675036 -1.948520
v -0.107616 -0.330786 -1.940820
v 0.058784 -0.006936 -1.970070
v 0.138484 -0.061536 -2.122520
v -2.230366 3.336214 -1.904119
v -2.507866 3.701514 -1.939519
v 0.919434 0.334464 -1.858870
v 0.062734 -1.238336 -1.931970
v 0.013684 -1.169486 -1.902270
v -0.093516 -0.850286 -1.979870
v -3.133166 1.150914 0.587080
v -2.473866 3.620914 -1.945469
v 1.799184 1.163664 -1.334970
v 1.993634 1.195764 -1.228570
v 0.139234 -1.531486 -1.928620
v -0.101466 -1.010286 -1.831770
v -0.096116 -0.154086 -1.815770
v -2.310466 3.470114 -1.888469
v 1.603134 1.701514 -0.829320
v 0.302334 -1.596836 -2.021870
v 0.056434 -1.501286 -1.833470
v -0.055766 -1.295286 -1.774870
v -0.152416 -0.803586 -1.845670
v -0.189666 -0.714186 -1.837020
v -0.191466 -0.407836 -1.860370
v -2.247266 3.232764 -1.702520
v 1.964834 1.339414 -1.173420
v 1.681734 1.625514 -0.913020
v 0.094334 -1.689636 -1.765870
v -0.073516 -1.122036 -1.794520
v -0.208066 -0.603536 -1.781370
v 0.211534 0.231914 -1.668120
v 0.124884 0.109814 -1.870220
v -2.249916 3.164864 -1.734570
v -2.476266 3.564414 -1.814469
v -3.034766 0.119814 0.638680
v 1.565634 1.461064 -1.085920
v 0.004634 -1.449886 -1.744970
v -0.227616 -0.743436 -1.769870
v -0.189716 -0.240686 -1.683870
v -0.246916 -0.377936 -1.657770
v -2.311116 3.019464 -1.727620
v -2.271616 3.318164 -1.702969
v -2.332766 3.411714 -1.726369
v -2.488716 3.598664 -1.731619
v -2.223266 0.888864 1.516330
v 1.664784 0.530464 -1.483470
v 1.587634 0.421764 -1.559170
v 1.474834 0.496914 -1.536820
v -0.109266 -1.245286 -1.630470
v -0.148066 -1.117086 -1.586870
v -0.237566 -0.819886 -1.667570
v -0.256116 -0.625536 -1.701520
v 1.249684 -2.632536 0.387880
v -2.315366 2.953564 -1.647020
v -2.470016 3.502364 -1.691919
v 2.021734 0.206514 -1.739620
v -0.759566 -2.791836 -1.675870
v -0.732316 -2.659536 -1.650171
v -0.720416 -2.721836 -1.713770
v -0.714016 -2.837286 -1.727821
v -0.670316 -2.646286 -1.732120
v -0.653216 -2.540286 -1.650520
v -0.544766 -2.476686 -1.715120
v 0.054784 -1.906786 -1.627070
v 0.002984 -1.668636 -1.562120
v -0.041866 -1.403736 -1.602220
v -0.176866 -0.982536 -1.626870
v -0.281566 -0.693336 -1.580770
v 1.911834 1.580914 -0.971670
v -0.779066 -2.698236 -1.552770
v -0.565866 -2.440686 -1.615020
v -0.427566 -2.308186 -1.669720
v -0.294766 -0.554636 -1.568820
v -0.321366 -2.818936 0.552279
v 0.311234 0.914814 -1.446770
v 0.098834 0.974064 -1.344420
v 0.570434 1.257564 -1.201420
v 0.707584 1.045414 -1.340720
v 1.355834 -0.036386 -2.154920
v -0.646616 -2.469136 -1.558020
v -0.070816 -1.519236 -1.453820
v -0.133516 -1.241686 -1.484970
v -0.241766 -0.862436 -1.563320
v 0.910484 -2.859686 -1.571421
v 0.915584 -2.736036 -1.669121
v -2.301466 3.294214 -1.559769
v -2.446866 3.412664 -1.568319
v -2.472116 3.530464 -1.555319
v 0.337034 1.698064 -0.468070
v 0.624834 1.742714 -0.507170
v 0.448434 1.668014 -0.612570
v 1.112184 0.919714 -1.519470
v -0.805566 -2.625686 -1.509120
v -0.045116 -1.844786 -1.451270
v -0.019266 -1.635536 -1.505720
v -0.215166 -1.041086 -1.441320
v 0.872734 1.784364 -0.612470
v 0.673684 1.660514 -0.674920
v -2.353616 3.020814 -1.382820
v -2.302466 3.093464 -1.456770
v -2.288216 3.157214 -1.407270
v -2.300916 3.222564 -1.443320
v -2.214716 -0.994886 -0.730220
v -2.169516 -1.063736 -0.624670
v -2.314966 -0.980036 -0.647970
v 0.395884 4.629614 -1.446369
v 0.515084 4.719564 -1.533419
v 0.533584 4.572814 -1.619469
v -0.842166 -2.630286 -1.426821
v -0.724866 -2.397686 -1.391420
v -0.086566 -2.073286 -1.426670
v -0.272466 -2.142186 -1.401170
v -0.036616 -1.987036 -1.423970
v 1.560984 -2.773886 -0.310020
v 1.557184 -2.640586 -0.463270
v -2.425116 3.338564 -1.473719
v -2.465616 3.397364 -1.450819
v 0.274884 0.089864 -2.080520
v 0.812784 -2.803636 -1.670271
v -0.573366 -2.239236 -1.375520
v -0.173216 -1.405586 -1.282520
v -0.176616 -1.246436 -1.373220
v 0.651234 0.383864 -1.615270
v -2.350016 2.953864 -1.351120
v -2.561866 0.902363 1.212130
v -2.409416 1.019264 -0.632170
v -2.532716 1.089364 -0.512970
v -0.755816 -2.427386 -1.270020
v -0.161716 -2.061786 -1.325820
v -0.047466 -2.003886 -1.360320
v -0.070816 -1.916936 -1.267820
v -0.075616 -1.700086 -1.366820
v -0.125616 -1.578336 -1.265070
v -1.455766 -2.690486 -0.895970
v -1.168316 -2.772786 -1.014271
v -1.371316 -2.830636 -0.968020
v -1.210016 -2.702386 -0.986920
v -2.246866 2.678064 -0.894420
v -2.415266 3.256764 -1.346670
v -3.074566 1.243464 1.045330
v 0.510084 4.792014 -1.450069
v -0.869366 -2.657336 -1.298620
v -0.890466 -2.810886 -1.300170
v -0.100366 -1.692686 -1.280370
v 1.193084 1.230264 -1.225520
v -0.185016 -2.859536 0.059379
v -0.234916 -2.857736 0.047630
v -2.231716 2.816614 -1.334720
v -2.308316 3.094164 -1.219720
v -2.312416 3.150464 -1.294220
v -2.453666 3.310014 -1.297469
v -0.155116 -2.063686 -1.259470
v -0.095516 -2.001586 -1.234420
v 0.738234 4.607064 -1.792869
v 0.237534 4.603164 -1.243869
v -0.937116 -2.783836 -1.161721
v -0.931116 -2.660536 -1.113420
v -0.871966 -2.569786 -1.205121
v -0.099166 -1.760886 -1.177920
v -0.164966 -1.550386 -1.141920
v 2.052034 1.556764 -0.958670
v 2.929084 0.546714 -1.178920
v 0.562584 -0.161436 -2.312270
v 0.574234 0.018364 -2.218220
v -2.674416 0.978964 1.081430
v -2.327466 2.882464 -1.170420
v -2.356216 3.020464 -1.211869
v -2.418666 3.204064 -1.196670
v 0.159484 4.426164 -1.300669
v -0.852016 -2.432736 -1.043320
v -0.747816 -2.317286 -1.103570
v -0.097216 -1.920286 -1.131370
v -2.369566 2.955364 -1.137769
v -0.220416 -1.498886 -1.124020
v 0.795534 1.821214 -0.456570
v 0.808584 0.125414 -2.150020
v 0.818384 0.012064 -2.221570
v 4.096134 -1.204836 -0.373270
v 3.997984 -1.320036 -0.483170
v -2.339716 3.080214 -1.062770
v -2.427216 3.195614 -1.115470
v -0.902766 -2.559386 -1.055720
v -0.148416 -1.923436 -1.031270
v -0.110166 -2.846886 0.153330
v -0.166516 -2.857386 0.151480
v -0.278516 -2.803186 1.886180
v 1.813334 -2.831186 0.439480
v 1.775234 -2.839436 0.529980
v 1.765684 -2.825336 0.424630
v -2.278466 -0.187086 -1.152370
v -2.313616 -0.054836 -1.123320
v 0.666384 0.173514 -2.080470
v 0.512734 0.134314 -2.112620
v 0.465734 -2.861436 -1.472121
v 2.660284 0.381814 -1.418220
v 2.583534 0.234614 -1.477920
v -2.327916 3.024764 -0.993020
v -0.110416 4.325114 -1.094669
v -0.241666 1.418414 -0.945120
v -0.176266 1.193914 -1.200420
v -0.339466 1.337114 -1.034020
v 1.454384 -2.653936 -0.297170
v -2.399516 -0.361436 -1.003420
v -2.447466 -0.148286 -0.989070
v -2.469066 0.099714 -0.972420
v 4.218134 -1.091136 -0.242770
v 0.024084 1.564364 -0.728220
v 0.170184 1.581364 -0.685170
v 0.121334 1.465614 -0.879820
v -2.364966 2.876214 -0.951670
v -2.369266 2.944014 -0.913320
v -2.410416 3.147214 -0.954969
v 2.625534 -1.938786 -1.538170
v -0.854166 -2.399236 -0.968270
v -1.942416 -2.854936 -0.685970
v -1.889466 -2.854986 -0.741520
v -1.909166 -2.864186 -0.655521
v 2.495734 1.567514 -0.602420
v -2.532666 0.199614 -0.899120
v 0.036634 1.039664 -1.280920
v -0.122466 1.100614 -1.267720
v -0.057316 1.166164 -1.216970
v 1.483384 0.210614 -1.982020
v -2.522266 -0.380836 -0.869520
v -0.649466 -0.121636 -1.499270
v 0.795384 1.084214 -1.304420
v -2.585616 -0.124436 -0.796720
v -2.602666 0.324464 -0.759870
v -2.392566 0.546664 -0.910870
v -2.514566 0.564164 -0.799070
v 1.417184 0.445114 -1.582570
v 2.292084 1.748014 -0.479870
v 2.742334 1.147214 -0.877770
v 2.615534 1.359314 -0.813020
v 2.763634 1.321664 -0.686670
v 3.224984 0.725964 -0.809470
v 3.083334 0.882664 -0.834320
v 1.262784 0.399914 -1.719570
v 0.660234 0.260214 -1.955070
v 0.688634 0.872564 -1.425970
v 0.450384 -2.811486 -1.775871
v -2.605166 -0.271336 -0.753370
v -2.648666 0.040814 -0.785070
v -2.632416 0.546614 -0.682320
v -0.771666 -2.261886 -0.948220
v -0.673116 -2.125936 -0.959820
v -1.414716 0.460914 -1.373420
v -1.531166 0.420914 -1.339870
v -1.388016 0.616214 -1.339320
v -2.241066 2.613264 -0.787570
v -2.395116 2.875414 -0.786520
v -2.357166 2.955414 -0.789970
v -2.349216 3.023464 -0.838920
v 1.521634 0.665214 -1.493720
v 1.768284 0.699814 -1.451470
v 1.838034 0.553664 -1.443570
v 2.552534 0.034414 -1.565320
v -2.566516 -0.425636 -0.752570
v -2.686966 -0.132186 -0.699970
v -2.676916 0.158764 -0.735970
v 2.135784 1.232514 -1.182020
v 0.238584 -2.622886 -0.800320
v -2.314666 2.682914 -0.736420
v -2.405866 2.834464 -0.723020
v -0.965966 3.838264 -0.495669
v -0.086216 0.922564 -1.328070
v 1.748184 -2.648186 1.886729
v -1.389916 -1.537486 -0.558420
v -1.343066 -1.475136 -0.692670
v -2.749466 -0.022686 -0.672370
v -2.681266 0.415764 -0.675770
v 0.489034 1.186114 -1.274220
v 3.037484 0.757464 -0.987020
v -0.272866 1.134764 -1.243320
v -0.355416 -2.221886 -1.602370
v 1.045434 0.186664 -2.079770
v 0.875234 0.263964 -1.997820
v 1.592684 0.817714 -1.412020
v 1.364884 0.683414 -1.518170
v -2.595066 -0.541786 -0.652470
v -2.677366 -0.348636 -0.661570
v -2.803166 0.041364 -0.597070
v -2.314916 0.955314 -0.791020
v -2.395066 0.869814 -0.763520
v -0.168266 1.542514 -0.758120
v -0.257666 1.635614 -0.682220
v -2.383066 2.699463 -0.640370
v -2.432666 2.966313 -0.657370
v -0.890916 3.879564 -0.631669
v -1.833066 -2.406136 -0.571470
v -1.670866 -2.486286 -0.747070
v -1.389666 -2.183436 -0.599970
v -1.307316 -2.101236 -0.643070
v -1.341316 -1.957336 -0.554920
v -2.024166 -1.166986 -0.625520
v -2.093316 -1.054936 -0.710820
v -2.490116 -0.871186 -0.586070
v -2.689566 -0.418736 -0.610720
v -2.768266 0.311114 -0.564920
v -2.761216 0.446164 -0.574270
v -2.600366 0.854064 -0.567770
v 0.401334 1.587814 -0.761120
v 0.543584 0.277414 -1.833420
v 0.416184 0.182814 -2.003920
v -2.435616 2.763314 -0.590270
v -2.448716 3.007764 -0.552820
v -1.011166 3.747314 -0.591469
v -1.576166 -2.303086 -0.589070
v -1.432666 -2.323436 -0.709270
v -1.528416 -2.227036 -0.492720
v -1.316016 -1.747036 -0.594520
v -1.403166 -1.486086 -0.595120
v 1.936584 0.484564 -1.504320
v -2.145666 -1.120736 -0.528670
v -2.213016 -1.048836 -0.559070
v -2.406666 -0.957236 -0.522520
v -2.598916 -0.737786 -0.525020
v -2.788166 -0.351986 -0.519320
v -2.802666 -0.121286 -0.541820
v -2.749616 0.577214 -0.521270
v -2.541316 1.020614 -0.493020
v 0.041234 -2.616036 1.262029
v 0.140634 -2.622987 1.194579
v 1.180934 0.511614 -1.558270
v -2.555466 2.484063 -0.584270
v -2.497266 2.665214 -0.563270
v -2.476916 2.894364 -0.514820
v 1.977684 0.375514 -1.540770
v -1.748816 -2.304336 -0.434520
v -1.413916 -2.132686 -0.507720
v -1.392616 -1.784736 -0.405570
v -2.497916 -0.884536 -0.489320
v -2.683616 -0.510286 -0.484570
v -2.605666 0.970814 -0.459820
v 0.318934 0.286314 -1.635870
v 0.546084 0.335564 -1.665570
v 0.289284 0.194814 -1.881170
v 2.111034 0.186464 -1.690770
v -2.602616 2.638014 -0.451320
v -1.436316 -1.541436 -0.497870
v -1.404916 -1.602136 -0.454120
v -1.158216 3.547164 -0.542669
v -1.875066 -2.386436 -0.451670
v -1.743666 -2.846186 0.340080
v -1.649666 -2.835836 0.540129
v -1.422616 -2.030236 -0.401270
v -1.493116 -1.561836 -0.347720
v -2.600316 -0.748686 -0.448620
v -2.827816 -0.310936 -0.435820
v -2.849266 -0.092086 -0.406320
v -2.845666 0.048464 -0.421970
v -2.851216 0.303714 -0.397720
v -2.784166 0.572364 -0.422320
v -2.697616 0.846614 -0.394570
v -2.907366 1.703714 -0.469120
v -2.891216 1.835164 -0.470770
v -2.806716 1.755714 -0.561620
v -2.453216 3.088814 -0.424220
v -1.246516 3.499914 -0.466219
v -1.169716 3.614914 -0.467519
v -2.001766 -2.449786 -0.393270
v -1.985366 -2.561836 -0.490520
v -1.931666 -2.323036 -0.270970
v -1.478366 -2.142136 -0.374620
v -1.422866 -1.649986 -0.346820
v -2.114016 -1.269136 -0.385470
v -2.468716 -0.912536 -0.367670
v -2.647766 -0.724036 -0.369770
v -2.683816 0.946814 -0.382470
v -2.903016 1.443714 -0.447970
v -2.969266 1.524614 -0.381170
v -2.863916 1.556114 -0.527370
v -2.630666 2.765664 -0.402820
v -2.541816 3.007064 -0.383970
v -1.619216 -2.209236 -0.337670
v -2.442966 -0.970986 -0.318720
v -2.711316 -0.660136 -0.313620
v -2.907716 -0.208936 -0.306920
v -2.878566 0.195514 -0.322070
v -2.821566 0.595514 -0.348270
v -2.767566 0.785014 -0.326720
v -2.960166 1.746814 -0.379920
v -2.952316 1.951114 -0.303170
v 2.954284 0.685514 -1.101420
v -2.680866 2.589064 -0.327770
v -1.344716 3.298514 -0.441270
v -1.336316 3.456814 -0.372669
v -1.225466 3.589214 -0.386369
v -1.496016 -2.136586 -0.271670
v -1.412566 -1.748236 -0.298320
v 0.471134 -2.837136 -1.398970
v -2.846466 -0.340536 -0.305120
v -2.862416 0.078264 -0.286720
v -2.883316 0.405264 -0.283820
v -2.831116 1.304264 -0.411920
v -2.843416 2.353214 -0.304570
v -1.354616 3.466714 -0.299219
v -1.732166 -2.232486 -0.269720
v -1.437316 -1.670736 -0.189820
v -2.598016 -0.869736 -0.254170
v -2.939416 0.266214 -0.227120
v -2.823166 1.062114 -0.239970
v 2.644784 -0.101936 -1.582770
v 2.703934 -0.239236 -1.575820
v 2.571534 -0.177036 -1.622870
v -1.401016 3.377814 -0.329819
v -1.522766 -1.572786 -0.248320
v 0.117634 -2.797336 2.171130
v 0.066384 -2.801336 1.963530
v 2.640484 1.227614 -0.930320
v 2.192334 0.781264 -1.315620
v -1.825616 4.474564 -3.360019
v 0.963384 0.026464 -2.201870
v -1.621266 1.148864 -1.090220
v 2.520784 0.597164 -1.368070
v 1.502984 -2.802336 -0.166221
v 2.022134 0.560114 -1.482070
v 3.544634 -1.418736 -0.523820
v 3.551284 -1.549136 -0.592720
v 1.907234 -2.818086 0.716680
v 1.817234 -2.827586 0.621279
v 1.895084 -2.806136 0.524279
v -1.661016 4.152014 -3.486319
v 2.472984 1.442214 -0.816870
v 2.240084 1.384464 -1.031120
v 2.495934 1.287264 -0.974420
v 4.047834 -1.120036 -0.321570
v 3.732384 -0.947436 -0.229270
v 0.271984 1.422114 -0.981820
v -0.038566 1.337064 -1.050670
v 1.644684 1.315714 -1.264170
v -0.003866 -2.802736 2.106979
v 0.765034 1.439114 -1.036820
v 0.627634 1.365464 -1.099970
v -2.225616 0.245814 -1.127220
v -0.257966 1.543664 -0.809220
v 2.747634 0.183864 -1.430020
v 0.397284 0.373464 -1.612470
v 1.098684 1.811664 -0.680820
v 2.179534 0.583864 -1.485770
v 1.583984 0.099614 -2.021170
v 3.627534 -1.229586 -0.397620
v 3.629284 -1.344136 -0.466420
v 3.252534 -0.104886 -1.205620
v 1.654534 -0.141486 -2.074620
v 2.121534 1.046914 -1.293670
v 3.283534 0.016214 -1.086320
v 3.212934 0.025364 -1.178170
v 2.671084 0.666414 -1.251870
v 2.520034 0.866564 -1.172170
v 1.624234 1.192714 -1.354570
v 3.048584 0.020514 -1.320270
v 3.034334 1.051264 -0.757770
v 2.308884 0.883364 -1.253120
v 0.124284 1.654614 -0.461070
v 4.191734 -1.011336 -0.158470
v 2.325084 1.275614 -1.080120
v 2.303634 1.103464 -1.178920
v 3.616234 -1.713986 -0.685820
v 3.802334 -1.561986 -0.632070
v 3.976434 -1.008886 -0.195520
v 2.237134 1.695014 -0.614170
v 2.362384 -0.332836 -1.793070
v 2.586484 -0.349086 -1.681620
v 3.169884 0.662764 -0.938220
v 0.129284 0.836764 -1.470370
v 0.626084 1.494514 -0.868470
v 0.761334 1.571014 -0.810670
v 0.140184 -2.670136 -1.852270
v 3.705584 -1.099386 -0.282470
v 3.698334 -1.272786 -0.416520
v 2.224134 -2.811386 -1.110970
v 2.072534 -2.834136 -0.955121
v 2.118434 -2.828386 -1.156520
v 3.819084 -1.461086 -0.576370
v 1.310384 1.568764 -0.938520
v 0.834984 -2.548336 -1.717420
v 3.146684 0.545664 -1.020570
v 0.375784 1.486914 -0.906420
v 2.855684 -0.342736 -1.475070
v 2.841484 -0.602536 -1.518770
v 2.700184 -0.403486 -1.619870
v 0.179634 -2.846286 -1.447320
v 3.776784 -1.001736 -0.187220
v 3.776034 -1.142636 -0.317220
v 1.251534 -2.611937 0.897530
v -1.701566 3.041264 -0.443220
v 3.866334 -1.275236 -0.447070
v 0.823484 0.747314 -1.529920
v 0.671084 0.710564 -1.519370
v -0.091216 1.439314 -0.897370
v -1.642066 3.075664 -0.381120
v -1.641466 2.858564 -0.550070
v -0.617116 -2.724636 -1.784521
v -0.696316 -2.754936 -1.773970
v 1.353384 1.928564 -0.423620
v 1.256834 1.799064 -0.714220
v -1.177516 3.373064 -0.579820
v 1.166334 0.292414 -1.938820
v -1.571266 3.110964 -0.362470
v -1.541266 2.874814 -0.469020
v 2.299534 1.003614 -1.212470
v -1.502066 3.180614 -0.355970
v -1.458916 3.006713 -0.443220
v -1.539916 2.792364 -0.507470
v -1.373416 3.201514 -0.449869
v -1.528416 2.629314 -0.532570
v 3.658284 -2.202536 -0.592720
v 3.768484 -2.093986 -0.613220
v -1.466216 2.495864 -0.613770
v 0.963334 0.759264 -1.530270
v 0.074184 1.216364 -1.153420
v -1.343916 2.649214 -0.471370
v -1.396016 2.397814 -0.622970
v -1.517816 1.245214 -1.067670
v -1.586316 -2.866386 -0.852070
v -1.611966 -2.872636 -0.732971
v -1.498066 2.166064 -0.712720
v -1.338316 2.220864 -0.588770
v -1.385366 2.072264 -0.680670
v -1.377866 1.408914 -0.984920
v -1.420716 1.505114 -0.872170
v -1.442066 2.821364 -0.484770
v -1.220316 2.017314 -0.625520
v -1.293266 1.356314 -1.066170
v 0.585784 4.814214 -1.475419
v -1.252066 1.767114 -0.684170
v -1.291716 1.615264 -0.796620
v -1.222816 1.501464 -0.952220
v -1.203366 1.211714 -1.177020
v -1.371366 1.011314 -1.260970
v 1.022734 -2.761136 -1.243220
v 1.029184 -2.650536 -1.178771
v -1.154966 1.883614 -0.599920
v -1.297716 1.864864 -0.671920
v -1.157966 1.742364 -0.709720
v -1.097016 1.391664 -1.087920
v -0.837666 3.545064 -0.824069
v -1.086816 1.855764 -0.586470
v -1.037366 1.557764 -0.971670
v -1.082416 1.209214 -1.190520
v -1.061816 0.956314 -1.328070
v 1.978534 -0.119286 -1.9541
gitextract_enxg8n42/
├── .clang-format
├── .gitattributes
├── .github/
│ └── FUNDING.yml
├── .gitignore
├── COPYING
├── COPYING.LESSER
├── Makefile
├── README.md
├── format.bat
├── samples/
│ ├── blit_framebuffer/
│ │ ├── Makefile
│ │ └── main.c
│ ├── camera/
│ │ ├── Makefile
│ │ ├── bunny.obj
│ │ ├── lambertian.frag
│ │ ├── lambertian.vert
│ │ ├── main.cpp
│ │ └── plane.obj
│ ├── draw_batching/
│ │ ├── Makefile
│ │ └── main.c
│ ├── draw_elements/
│ │ ├── Makefile
│ │ └── main.c
│ ├── glesgear/
│ │ ├── Makefile
│ │ └── main.c
│ ├── illumination_models/
│ │ ├── Makefile
│ │ ├── blinn.frag
│ │ ├── blinn.vert
│ │ ├── bunny.obj
│ │ ├── cube.obj
│ │ ├── fdg.frag
│ │ ├── fdg.vert
│ │ ├── lambertian.frag
│ │ ├── lambertian.vert
│ │ ├── main.cpp
│ │ ├── phong.frag
│ │ ├── phong.vert
│ │ ├── plane.obj
│ │ └── sphere.obj
│ ├── immediate_mode/
│ │ ├── Makefile
│ │ └── main.c
│ ├── immediate_mode_texture/
│ │ ├── Makefile
│ │ └── main.c
│ ├── immediate_mode_texture_compressed/
│ │ ├── Makefile
│ │ ├── main.c
│ │ └── texture.pvr
│ ├── immediate_mode_texture_yuv/
│ │ ├── Makefile
│ │ ├── main.c
│ │ └── texture.yuv
│ ├── lighting_fog_ffp/
│ │ ├── Makefile
│ │ ├── main.c
│ │ └── texture.h
│ ├── lighting_fog_sphere_ffp/
│ │ ├── Makefile
│ │ └── main.c
│ ├── models_rendering/
│ │ ├── Makefile
│ │ ├── bunny.obj
│ │ └── main.c
│ ├── occlusion_queries/
│ │ ├── Makefile
│ │ └── main.c
│ ├── resolution_change/
│ │ ├── Makefile
│ │ └── main.c
│ ├── rotating_cube/
│ │ ├── Makefile
│ │ └── main.c
│ ├── rotating_cube_sysapp/
│ │ ├── Makefile
│ │ └── main.c
│ ├── skybox_env_map/
│ │ ├── Makefile
│ │ ├── bunny.obj
│ │ ├── cube.obj
│ │ ├── main.cpp
│ │ ├── mirror.frag
│ │ ├── mirror.vert
│ │ ├── skybox.frag
│ │ ├── skybox.vert
│ │ └── stb_image.h
│ ├── ssao_deferred_rendering/
│ │ ├── Makefile
│ │ ├── bunny.obj
│ │ ├── cube.obj
│ │ ├── geometry.frag
│ │ ├── geometry.vert
│ │ ├── lighting.frag
│ │ ├── lighting.vert
│ │ ├── main.cpp
│ │ ├── sphere.obj
│ │ ├── ssao.frag
│ │ └── ssao.vert
│ ├── uniform_buffers/
│ │ ├── Makefile
│ │ └── main.c
│ ├── vbo_rotating_cube/
│ │ ├── Makefile
│ │ └── main.c
│ ├── vertex_array/
│ │ ├── Makefile
│ │ └── main.c
│ └── video_playback/
│ ├── Makefile
│ └── main.c
└── source/
├── blending.c
├── buffers.c
├── custom_shaders.c
├── debug.c
├── display_lists.c
├── draw.c
├── egl.c
├── ffp.c
├── framebuffers.c
├── get_info.c
├── gxm.c
├── lookup.c
├── matrices.c
├── misc.c
├── shaders/
│ ├── ffp_ext_f.h
│ ├── ffp_ext_v.h
│ ├── ffp_f.h
│ ├── ffp_v.h
│ ├── glsl_translator_hdr.h
│ ├── precompiled_blit_f.h
│ ├── precompiled_blit_v.h
│ ├── precompiled_clear_f.h
│ ├── precompiled_clear_v.h
│ └── texture_combiners/
│ ├── add.h
│ ├── blend.h
│ ├── combine.h
│ ├── decal.h
│ ├── modulate.h
│ └── replace.h
├── shaders.h
├── shared.h
├── tests.c
├── texture_callbacks.c
├── texture_callbacks.h
├── textures.c
├── utils/
│ ├── atitc_utils.c
│ ├── atitc_utils.h
│ ├── debug_utils.h
│ ├── eac_utils.c
│ ├── eac_utils.h
│ ├── etc1_utils.c
│ ├── etc1_utils.h
│ ├── etc_utils.c
│ ├── font_utils.h
│ ├── glsl_utils.c
│ ├── glsl_utils.h
│ ├── gpu_utils.c
│ ├── gpu_utils.h
│ ├── gxm_utils.c
│ ├── gxm_utils.h
│ ├── math_utils.h
│ ├── mem_utils.c
│ ├── mem_utils.h
│ ├── preprocessor/
│ │ ├── const.h
│ │ ├── expression.cpp
│ │ ├── expression.h
│ │ ├── preprocessor.cpp
│ │ └── preprocessor_c.h
│ ├── shacccg_paramquery.h
│ ├── stb_dxt.h
│ ├── texture_swizzler.cpp
│ ├── texture_swizzler.h
│ └── xxhash_utils.h
├── vgl.c
└── vitaGL.h
SYMBOL INDEX (1414 symbols across 71 files)
FILE: samples/blit_framebuffer/main.c
function main (line 5) | int main() {
FILE: samples/camera/main.cpp
function update_camera (line 42) | void update_camera() {
function init_msg_dialog (line 74) | int init_msg_dialog(const char *msg) {
function get_msg_dialog_result (line 90) | int get_msg_dialog_result(void) {
function fatal_error (line 98) | void fatal_error(const char *fmt, ...) {
function loadShader (line 118) | void loadShader(const char *name, int type) {
function drawModel (line 183) | void drawModel(to_model *mdl) {
function main (line 191) | int main() {
FILE: samples/draw_batching/main.c
type fan_s (line 4) | typedef struct {
function setup_vbo (line 13) | static void setup_vbo(void) {
function draw_fans (line 22) | static void draw_fans(const fan_s *fans, int num_fans) {
function display (line 46) | static void display(void) {
function reshape (line 70) | static void reshape(int w, int h) {
function main (line 79) | int main(int argc, char **argv) {
FILE: samples/draw_elements/main.c
function main (line 8) | int main(){
FILE: samples/glesgear/main.c
function sincos (line 61) | static void
type vertex_strip (line 72) | struct vertex_strip {
type GLfloat (line 80) | typedef GLfloat GearVertex[GEAR_VERTEX_STRIDE];
type gear (line 85) | struct gear {
type gear (line 101) | struct gear
function GearVertex (line 125) | static GearVertex *
type gear (line 149) | struct gear
type gear (line 156) | struct gear
type point (line 216) | struct point {
type point (line 222) | struct point
function multiply (line 298) | static void
function rotate (line 326) | static void
function translate (line 351) | static void
function identity (line 364) | static void
function transpose (line 382) | static void
function invert (line 401) | static void
function perspective (line 430) | void perspective(GLfloat *m, GLfloat fovy, GLfloat aspect, GLfloat zNear...
function draw_gear (line 466) | static void
function gears_draw (line 524) | static void
function gears_reshape (line 556) | static void
function gears_special (line 571) | static void
function gears_idle (line 586) | static void
function gears_init (line 671) | static void
function main (line 717) | int
FILE: samples/illumination_models/main.cpp
function init_msg_dialog (line 69) | int init_msg_dialog(const char *msg) {
function get_msg_dialog_result (line 85) | int get_msg_dialog_result(void) {
function fatal_error (line 93) | void fatal_error(const char *fmt, ...) {
function loadShader (line 113) | void loadShader(const char *name, int type) {
function drawModel (line 185) | void drawModel(to_model *mdl) {
function main (line 193) | int main() {
FILE: samples/immediate_mode/main.c
function main (line 5) | int main(){
FILE: samples/immediate_mode_texture/main.c
function main (line 9) | int main(){
FILE: samples/immediate_mode_texture_compressed/main.c
function main (line 10) | int main(){
FILE: samples/immediate_mode_texture_yuv/main.c
function main (line 9) | int main(){
FILE: samples/lighting_fog_ffp/main.c
function load_textures (line 14) | static void load_textures(GLuint *texture)
function main (line 39) | int main(){
FILE: samples/lighting_fog_sphere_ffp/main.c
function Normalize3 (line 11) | inline void Normalize3(GLfloat *v) {
function SphereFace (line 19) | void SphereFace(int p_recurse, GLfloat p_radius, GLfloat *a, GLfloat *b,...
function Sphere (line 47) | void Sphere(GLfloat p_radius) {
function main (line 74) | int main(){
FILE: samples/models_rendering/main.c
function main (line 5) | int main() {
FILE: samples/occlusion_queries/main.c
function main (line 23) | int main(){
FILE: samples/resolution_change/main.c
function reset_wvp (line 23) | void reset_wvp(float w, float h) {
function main (line 31) | int main() {
FILE: samples/rotating_cube/main.c
function main (line 22) | int main(){
FILE: samples/rotating_cube_sysapp/main.c
function main (line 22) | int main(){
FILE: samples/skybox_env_map/main.cpp
function update_camera (line 37) | void update_camera() {
function init_msg_dialog (line 68) | int init_msg_dialog(const char *msg) {
function get_msg_dialog_result (line 84) | int get_msg_dialog_result(void) {
function fatal_error (line 92) | void fatal_error(const char *fmt, ...) {
function loadShader (line 112) | void loadShader(const char *name, int type) {
function drawModel (line 178) | void drawModel(to_model *mdl, GLboolean is_skybox) {
function main (line 190) | int main() {
FILE: samples/skybox_env_map/stb_image.h
type stbi_uc (line 340) | typedef unsigned char stbi_uc;
type stbi_us (line 341) | typedef unsigned short stbi_us;
type stbi_io_callbacks (line 364) | typedef struct
type stbi__uint16 (line 587) | typedef unsigned short stbi__uint16;
type stbi__int16 (line 588) | typedef signed short stbi__int16;
type stbi__uint32 (line 589) | typedef unsigned int stbi__uint32;
type stbi__int32 (line 590) | typedef signed int stbi__int32;
type stbi__uint16 (line 593) | typedef uint16_t stbi__uint16;
type stbi__int16 (line 594) | typedef int16_t stbi__int16;
type stbi__uint32 (line 595) | typedef uint32_t stbi__uint32;
type stbi__int32 (line 596) | typedef int32_t stbi__int32;
function stbi__cpuid3 (line 677) | static int stbi__cpuid3(void)
function stbi__sse2_available (line 699) | static int stbi__sse2_available(void)
function stbi__sse2_available (line 710) | static int stbi__sse2_available(void)
type stbi__context (line 743) | typedef struct
function stbi__start_mem (line 763) | static void stbi__start_mem(stbi__context *s, stbi_uc const *buffer, int...
function stbi__start_callbacks (line 772) | static void stbi__start_callbacks(stbi__context *s, stbi_io_callbacks *c...
function stbi__stdio_read (line 785) | static int stbi__stdio_read(void *user, char *data, int size)
function stbi__stdio_skip (line 790) | static void stbi__stdio_skip(void *user, int n)
function stbi__stdio_eof (line 795) | static int stbi__stdio_eof(void *user)
function stbi__start_file (line 807) | static void stbi__start_file(stbi__context *s, FILE *f)
function stbi__rewind (line 816) | static void stbi__rewind(stbi__context *s)
type stbi__result_info (line 831) | typedef struct
function STBIDEF (line 901) | STBIDEF const char *stbi_failure_reason(void)
function stbi__err (line 907) | static int stbi__err(const char *str)
function stbi__addsizes_valid (line 931) | static int stbi__addsizes_valid(int a, int b)
function stbi__mul2sizes_valid (line 943) | static int stbi__mul2sizes_valid(int a, int b)
function stbi__mad2sizes_valid (line 953) | static int stbi__mad2sizes_valid(int a, int b, int add)
function stbi__mad3sizes_valid (line 960) | static int stbi__mad3sizes_valid(int a, int b, int c, int add)
function stbi__mad4sizes_valid (line 968) | static int stbi__mad4sizes_valid(int a, int b, int c, int d, int add)
function STBIDEF (line 1013) | STBIDEF void stbi_image_free(void *retval_from_stbi_load)
function STBIDEF (line 1028) | STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip)
function STBIDEF (line 1038) | STBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_sh...
function stbi_uc (line 1096) | static stbi_uc *stbi__convert_16_to_8(stbi__uint16 *orig, int w, int h, ...
function stbi__uint16 (line 1112) | static stbi__uint16 *stbi__convert_8_to_16(stbi_uc *orig, int w, int h, ...
function stbi__vertical_flip (line 1128) | static void stbi__vertical_flip(void *image, int w, int h, int bytes_per...
function stbi__vertical_flip_slices (line 1153) | static void stbi__vertical_flip_slices(void *image, int w, int h, int z,...
function stbi__uint16 (line 1190) | static stbi__uint16 *stbi__load_and_postprocess_16bit(stbi__context *s, ...
function stbi__float_postprocess (line 1216) | static void stbi__float_postprocess(float *result, int *x, int *y, int *...
function STBIDEF (line 1233) | STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, c...
function FILE (line 1239) | static FILE *stbi__fopen(char const *filename, char const *mode)
function STBIDEF (line 1268) | STBIDEF stbi_uc *stbi_load(char const *filename, int *x, int *y, int *co...
function STBIDEF (line 1278) | STBIDEF stbi_uc *stbi_load_from_file(FILE *f, int *x, int *y, int *comp,...
function STBIDEF (line 1291) | STBIDEF stbi__uint16 *stbi_load_from_file_16(FILE *f, int *x, int *y, in...
function STBIDEF (line 1304) | STBIDEF stbi_us *stbi_load_16(char const *filename, int *x, int *y, int ...
function STBIDEF (line 1317) | STBIDEF stbi_us *stbi_load_16_from_memory(stbi_uc const *buffer, int len...
function STBIDEF (line 1324) | STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *cl...
function STBIDEF (line 1331) | STBIDEF stbi_uc *stbi_load_from_memory(stbi_uc const *buffer, int len, i...
function STBIDEF (line 1338) | STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk,...
function STBIDEF (line 1346) | STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int le...
function STBIDEF (line 1380) | STBIDEF float *stbi_loadf_from_memory(stbi_uc const *buffer, int len, in...
function STBIDEF (line 1387) | STBIDEF float *stbi_loadf_from_callbacks(stbi_io_callbacks const *clbk, ...
function STBIDEF (line 1395) | STBIDEF float *stbi_loadf(char const *filename, int *x, int *y, int *com...
function STBIDEF (line 1405) | STBIDEF float *stbi_loadf_from_file(FILE *f, int *x, int *y, int *comp, ...
function STBIDEF (line 1419) | STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len)
function STBIDEF (line 1433) | STBIDEF int stbi_is_hdr (char const *filename)
function STBIDEF (line 1444) | STBIDEF int stbi_is_hdr_from_file(FILE *f)
function STBIDEF (line 1461) | STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clb...
function STBIDEF (line 1477) | STBIDEF void stbi_ldr_to_hdr_gamma(float gamma) { stbi__l2h_gamma = ga...
function STBIDEF (line 1478) | STBIDEF void stbi_ldr_to_hdr_scale(float scale) { stbi__l2h_scale = sc...
function STBIDEF (line 1483) | STBIDEF void stbi_hdr_to_ldr_gamma(float gamma) { stbi__h2l_gamma_i = ...
function STBIDEF (line 1484) | STBIDEF void stbi_hdr_to_ldr_scale(float scale) { stbi__h2l_scale_i = ...
function stbi__refill_buffer (line 1499) | static void stbi__refill_buffer(stbi__context *s)
function stbi_inline (line 1515) | stbi_inline static stbi_uc stbi__get8(stbi__context *s)
function stbi_inline (line 1529) | stbi_inline static int stbi__at_eof(stbi__context *s)
function stbi__skip (line 1545) | static void stbi__skip(stbi__context *s, int n)
function stbi__getn (line 1566) | static int stbi__getn(stbi__context *s, stbi_uc *buffer, int n)
function stbi__get16be (line 1594) | static int stbi__get16be(stbi__context *s)
function stbi__uint32 (line 1604) | static stbi__uint32 stbi__get32be(stbi__context *s)
function stbi__get16le (line 1614) | static int stbi__get16le(stbi__context *s)
function stbi__uint32 (line 1622) | static stbi__uint32 stbi__get32le(stbi__context *s)
function stbi_uc (line 1645) | static stbi_uc stbi__compute_y(int r, int g, int b)
function stbi__uint16 (line 1702) | static stbi__uint16 stbi__compute_y_16(int r, int g, int b)
function stbi__uint16 (line 1711) | static stbi__uint16 *stbi__convert_format16(stbi__uint16 *data, int img_...
function stbi_uc (line 1783) | static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp)
type stbi__huffman (line 1837) | typedef struct
type stbi__jpeg (line 1848) | typedef struct
function stbi__build_huffman (line 1902) | static int stbi__build_huffman(stbi__huffman *h, int *count)
function stbi__build_fast_ac (line 1946) | static void stbi__build_fast_ac(stbi__int16 *fast_ac, stbi__huffman *h)
function stbi__grow_buffer_unsafe (line 1971) | static void stbi__grow_buffer_unsafe(stbi__jpeg *j)
function stbi_inline (line 1993) | stbi_inline static int stbi__jpeg_huff_decode(stbi__jpeg *j, stbi__huffm...
function stbi_inline (line 2047) | stbi_inline static int stbi__extend_receive(stbi__jpeg *j, int n)
function stbi_inline (line 2063) | stbi_inline static int stbi__jpeg_get_bits(stbi__jpeg *j, int n)
function stbi_inline (line 2074) | stbi_inline static int stbi__jpeg_get_bit(stbi__jpeg *j)
function stbi__jpeg_decode_block (line 2102) | static int stbi__jpeg_decode_block(stbi__jpeg *j, short data[64], stbi__...
function stbi__jpeg_decode_block_prog_dc (line 2154) | static int stbi__jpeg_decode_block_prog_dc(stbi__jpeg *j, short data[64]...
function stbi__jpeg_decode_block_prog_ac (line 2181) | static int stbi__jpeg_decode_block_prog_ac(stbi__jpeg *j, short data[64]...
function stbi_inline (line 2301) | stbi_inline static stbi_uc stbi__clamp(int x)
function stbi__idct_block (line 2352) | static void stbi__idct_block(stbi_uc *out, int out_stride, short data[64])
function stbi__idct_simd (line 2415) | static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64])
function stbi__idct_simd (line 2596) | static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64])
function stbi_uc (line 2804) | static stbi_uc stbi__get_marker(stbi__jpeg *j)
function stbi__jpeg_reset (line 2821) | static void stbi__jpeg_reset(stbi__jpeg *j)
function stbi__parse_entropy_coded_data (line 2834) | static int stbi__parse_entropy_coded_data(stbi__jpeg *z)
function stbi__jpeg_dequantize (line 2958) | static void stbi__jpeg_dequantize(short *data, stbi__uint16 *dequant)
function stbi__jpeg_finish (line 2965) | static void stbi__jpeg_finish(stbi__jpeg *z)
function stbi__process_marker (line 2984) | static int stbi__process_marker(stbi__jpeg *z, int m)
function stbi__process_scan_header (line 3087) | static int stbi__process_scan_header(stbi__jpeg *z)
function stbi__free_jpeg_components (line 3126) | static int stbi__free_jpeg_components(stbi__jpeg *z, int ncomp, int why)
function stbi__process_frame_header (line 3148) | static int stbi__process_frame_header(stbi__jpeg *z, int scan)
function stbi__decode_jpeg_header (line 3240) | static int stbi__decode_jpeg_header(stbi__jpeg *z, int scan)
function stbi__decode_jpeg_image (line 3265) | static int stbi__decode_jpeg_image(stbi__jpeg *j)
type stbi_uc (line 3307) | typedef stbi_uc *(*resample_row_func)(stbi_uc *out, stbi_uc *in0, stbi_u...
function stbi_uc (line 3312) | static stbi_uc *resample_row_1(stbi_uc *out, stbi_uc *in_near, stbi_uc *...
function stbi_uc (line 3321) | static stbi_uc* stbi__resample_row_v_2(stbi_uc *out, stbi_uc *in_near, s...
function stbi_uc (line 3331) | static stbi_uc* stbi__resample_row_h_2(stbi_uc *out, stbi_uc *in_near, ...
function stbi_uc (line 3361) | static stbi_uc *stbi__resample_row_hv_2(stbi_uc *out, stbi_uc *in_near, ...
function stbi_uc (line 3386) | static stbi_uc *stbi__resample_row_hv_2_simd(stbi_uc *out, stbi_uc *in_n...
function stbi_uc (line 3502) | static stbi_uc *stbi__resample_row_generic(stbi_uc *out, stbi_uc *in_nea...
function stbi__YCbCr_to_RGB_row (line 3516) | static void stbi__YCbCr_to_RGB_row(stbi_uc *out, const stbi_uc *y, const...
function stbi__YCbCr_to_RGB_simd (line 3542) | static void stbi__YCbCr_to_RGB_simd(stbi_uc *out, stbi_uc const *y, stbi...
function stbi__setup_jpeg (line 3677) | static void stbi__setup_jpeg(stbi__jpeg *j)
function stbi__cleanup_jpeg (line 3699) | static void stbi__cleanup_jpeg(stbi__jpeg *j)
type stbi__resample (line 3704) | typedef struct
function stbi_uc (line 3715) | static stbi_uc stbi__blinn_8x8(stbi_uc x, stbi_uc y)
function stbi_uc (line 3721) | static stbi_uc *load_jpeg_image(stbi__jpeg *z, int *out_x, int *out_y, i...
function stbi__jpeg_test (line 3892) | static int stbi__jpeg_test(stbi__context *s)
function stbi__jpeg_info_raw (line 3904) | static int stbi__jpeg_info_raw(stbi__jpeg *j, int *x, int *y, int *comp)
function stbi__jpeg_info (line 3916) | static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp)
type stbi__zhuffman (line 3942) | typedef struct
function stbi_inline (line 3952) | stbi_inline static int stbi__bitreverse16(int n)
function stbi_inline (line 3961) | stbi_inline static int stbi__bit_reverse(int v, int bits)
function stbi__zbuild_huffman (line 3969) | static int stbi__zbuild_huffman(stbi__zhuffman *z, const stbi_uc *sizeli...
type stbi__zbuf (line 4022) | typedef struct
function stbi_inline (line 4036) | stbi_inline static stbi_uc stbi__zget8(stbi__zbuf *z)
function stbi__fill_bits (line 4042) | static void stbi__fill_bits(stbi__zbuf *z)
function stbi__zreceive (line 4051) | int stbi__zreceive(stbi__zbuf *z, int n)
function stbi__zhuffman_decode_slowpath (line 4061) | static int stbi__zhuffman_decode_slowpath(stbi__zbuf *a, stbi__zhuffman *z)
function stbi_inline (line 4079) | stbi_inline static int stbi__zhuffman_decode(stbi__zbuf *a, stbi__zhuffm...
function stbi__zexpand (line 4093) | static int stbi__zexpand(stbi__zbuf *z, char *zout, int n) // need to m...
function stbi__parse_huffman_block (line 4126) | static int stbi__parse_huffman_block(stbi__zbuf *a)
function stbi__compute_huffman_codes (line 4168) | static int stbi__compute_huffman_codes(stbi__zbuf *a)
function stbi__parse_uncompressed_block (line 4217) | static int stbi__parse_uncompressed_block(stbi__zbuf *a)
function stbi__parse_zlib_header (line 4246) | static int stbi__parse_zlib_header(stbi__zbuf *a)
function stbi__parse_zlib (line 4288) | static int stbi__parse_zlib(stbi__zbuf *a, int parse_header)
function stbi__do_zlib (line 4316) | static int stbi__do_zlib(stbi__zbuf *a, char *obuf, int olen, int exp, i...
function STBIDEF (line 4326) | STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int ...
function STBIDEF (line 4342) | STBIDEF char *stbi_zlib_decode_malloc(char const *buffer, int len, int *...
function STBIDEF (line 4347) | STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *b...
function STBIDEF (line 4363) | STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, char const ...
function STBIDEF (line 4374) | STBIDEF char *stbi_zlib_decode_noheader_malloc(char const *buffer, int l...
function STBIDEF (line 4390) | STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, co...
type stbi__pngchunk (line 4413) | typedef struct
function stbi__pngchunk (line 4419) | static stbi__pngchunk stbi__get_chunk_header(stbi__context *s)
function stbi__check_png_header (line 4427) | static int stbi__check_png_header(stbi__context *s)
type stbi__png (line 4436) | typedef struct
function stbi__paeth (line 4464) | static int stbi__paeth(int a, int b, int c)
function stbi__create_png_image_raw (line 4478) | static int stbi__create_png_image_raw(stbi__png *a, stbi_uc *raw, stbi__...
function stbi__create_png_image (line 4690) | static int stbi__create_png_image(stbi__png *a, stbi_uc *image_data, stb...
function stbi__compute_transparency (line 4734) | static int stbi__compute_transparency(stbi__png *z, stbi_uc tc[3], int o...
function stbi__compute_transparency16 (line 4759) | static int stbi__compute_transparency16(stbi__png *z, stbi__uint16 tc[3]...
function stbi__expand_png_palette (line 4784) | static int stbi__expand_png_palette(stbi__png *a, stbi_uc *palette, int ...
function STBIDEF (line 4824) | STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpr...
function STBIDEF (line 4829) | STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_conv...
function stbi__de_iphone (line 4834) | static void stbi__de_iphone(stbi__png *z)
function stbi__parse_png_file (line 4879) | static int stbi__parse_png_file(stbi__png *z, int scan, int req_comp)
function stbi__png_test (line 5090) | static int stbi__png_test(stbi__context *s)
function stbi__png_info_raw (line 5098) | static int stbi__png_info_raw(stbi__png *p, int *x, int *y, int *comp)
function stbi__png_info (line 5110) | static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp)
function stbi__png_is16 (line 5117) | static int stbi__png_is16(stbi__context *s)
function stbi__bmp_test_raw (line 5134) | static int stbi__bmp_test_raw(stbi__context *s)
function stbi__bmp_test (line 5149) | static int stbi__bmp_test(stbi__context *s)
function stbi__high_bit (line 5158) | static int stbi__high_bit(unsigned int z)
function stbi__bitcount (line 5170) | static int stbi__bitcount(unsigned int a)
function stbi__shiftsigned (line 5183) | static int stbi__shiftsigned(unsigned int v, int shift, int bits)
type stbi__bmp_data (line 5203) | typedef struct
function stbi__tga_get_comp (line 5484) | static int stbi__tga_get_comp(int bits_per_pixel, int is_grey, int* is_r...
function stbi__tga_info (line 5500) | static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp)
function stbi__tga_test (line 5565) | static int stbi__tga_test(stbi__context *s)
function stbi__tga_read_rgb16 (line 5597) | static void stbi__tga_read_rgb16(stbi__context *s, stbi_uc* out)
function stbi__psd_test (line 5818) | static int stbi__psd_test(stbi__context *s)
function stbi__psd_decode_rle (line 5825) | static int stbi__psd_decode_rle(stbi__context *s, stbi_uc *p, int pixelC...
function stbi__pic_is4 (line 6070) | static int stbi__pic_is4(stbi__context *s,const char *str)
function stbi__pic_test_core (line 6080) | static int stbi__pic_test_core(stbi__context *s)
type stbi__pic_packet (line 6096) | typedef struct
function stbi_uc (line 6101) | static stbi_uc *stbi__readval(stbi__context *s, int channel, stbi_uc *dest)
function stbi__copyval (line 6115) | static void stbi__copyval(int channel,stbi_uc *dest,const stbi_uc *src)
function stbi_uc (line 6124) | static stbi_uc *stbi__pic_load_core(stbi__context *s,int width,int heigh...
function stbi__pic_test (line 6270) | static int stbi__pic_test(stbi__context *s)
type stbi__gif_lzw (line 6282) | typedef struct
type stbi__gif (line 6289) | typedef struct
function stbi__gif_test_raw (line 6309) | static int stbi__gif_test_raw(stbi__context *s)
function stbi__gif_test (line 6319) | static int stbi__gif_test(stbi__context *s)
function stbi__gif_parse_colortable (line 6326) | static void stbi__gif_parse_colortable(stbi__context *s, stbi_uc pal[256...
function stbi__gif_header (line 6337) | static int stbi__gif_header(stbi__context *s, stbi__gif *g, int *comp, i...
function stbi__gif_info_raw (line 6365) | static int stbi__gif_info_raw(stbi__context *s, int *x, int *y, int *comp)
function stbi__out_gif_code (line 6379) | static void stbi__out_gif_code(stbi__gif *g, stbi__uint16 code)
function stbi_uc (line 6416) | static stbi_uc *stbi__process_gif_raster(stbi__context *s, stbi__gif *g)
function stbi_uc (line 6503) | static stbi_uc *stbi__gif_load_next(stbi__context *s, stbi__gif *g, int ...
function stbi__gif_info (line 6776) | static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp)
function stbi__hdr_test_core (line 6786) | static int stbi__hdr_test_core(stbi__context *s, const char *signature)
function stbi__hdr_test (line 6796) | static int stbi__hdr_test(stbi__context* s)
function stbi__hdr_convert (line 6830) | static void stbi__hdr_convert(float *output, stbi_uc *input, int req_comp)
function stbi__hdr_info (line 6985) | static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp)
function stbi__bmp_info (line 7031) | static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp)
function stbi__psd_info (line 7054) | static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp)
function stbi__psd_is16 (line 7089) | static int stbi__psd_is16(stbi__context *s)
function stbi__pic_info (line 7118) | static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp)
function stbi__pnm_test (line 7190) | static int stbi__pnm_test(stbi__context *s)
function stbi__pnm_isspace (line 7228) | static int stbi__pnm_isspace(char c)
function stbi__pnm_skip_whitespace (line 7233) | static void stbi__pnm_skip_whitespace(stbi__context *s, char *c)
function stbi__pnm_isdigit (line 7247) | static int stbi__pnm_isdigit(char c)
function stbi__pnm_getinteger (line 7252) | static int stbi__pnm_getinteger(stbi__context *s, char *c)
function stbi__pnm_info (line 7264) | static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp)
function stbi__info_main (line 7303) | static int stbi__info_main(stbi__context *s, int *x, int *y, int *comp)
function stbi__is_16_main (line 7345) | static int stbi__is_16_main(stbi__context *s)
function STBIDEF (line 7359) | STBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp)
function STBIDEF (line 7369) | STBIDEF int stbi_info_from_file(FILE *f, int *x, int *y, int *comp)
function STBIDEF (line 7380) | STBIDEF int stbi_is_16_bit(char const *filename)
function STBIDEF (line 7390) | STBIDEF int stbi_is_16_bit_from_file(FILE *f)
function STBIDEF (line 7402) | STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x...
function STBIDEF (line 7409) | STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *c, void *u...
function STBIDEF (line 7416) | STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len)
function STBIDEF (line 7423) | STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *c, vo...
FILE: samples/ssao_deferred_rendering/main.cpp
function update_camera (line 40) | void update_camera() {
function init_msg_dialog (line 65) | int init_msg_dialog(const char *msg) {
function get_msg_dialog_result (line 81) | int get_msg_dialog_result(void) {
function fatal_error (line 89) | void fatal_error(const char *fmt, ...) {
function loadShader (line 109) | void loadShader(const char *name, int type) {
function drawModel (line 170) | void drawModel(to_model *mdl) {
function DrawQuad (line 179) | void DrawQuad() {
function main (line 193) | int main() {
FILE: samples/uniform_buffers/main.c
function main (line 33) | int main() {
FILE: samples/vbo_rotating_cube/main.c
function main (line 28) | int main(){
FILE: samples/vertex_array/main.c
function main (line 7) | int main(){
FILE: samples/video_playback/main.c
function free_for_cpu (line 17) | void free_for_cpu(void *p, void *ptr) {
function free_for_gpu (line 36) | void free_for_gpu(void *p, void *addr) {
function audio_thread (line 55) | int audio_thread(SceSize args, void *argp) {
function main (line 78) | int main(){
FILE: source/blending.c
function GLenum (line 38) | GLenum gxm_blend_eq_to_gl(SceGxmBlendFunc factor) {
function GLenum (line 57) | GLenum gxm_blend_to_gl(SceGxmBlendFactor factor) {
function change_blend_factor (line 88) | void change_blend_factor() {
function change_blend_mask (line 98) | void change_blend_mask() {
function glBlendFunc (line 114) | void glBlendFunc(GLenum sfactor, GLenum dfactor) {
function glBlendFuncSeparate (line 198) | void glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, ...
function glBlendEquation (line 356) | void glBlendEquation(GLenum mode) {
function glBlendEquationSeparate (line 385) | void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha) {
function glColorMask (line 433) | void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboole...
FILE: source/buffers.c
function resetVao (line 47) | void resetVao(vao *v) {
function resetQueries (line 79) | void resetQueries() {
function glGenQueries (line 98) | void glGenQueries(GLsizei n, GLuint *ids) {
function glDeleteQueries (line 116) | void glDeleteQueries(GLsizei n, const GLuint *ids) {
function glBeginQuery (line 127) | void glBeginQuery(GLenum target, GLuint id) {
function glEndQuery (line 153) | void glEndQuery(GLenum target) {
function glGetQueryObjectiv (line 160) | void glGetQueryObjectiv(GLuint id, GLenum pname, GLint *params) {
function glGenVertexArrays (line 194) | void glGenVertexArrays(GLsizei n, GLuint *res) {
function glBindVertexArray (line 210) | void glBindVertexArray(GLuint array) {
function glDeleteVertexArrays (line 216) | void glDeleteVertexArrays(GLsizei n, const GLuint *gl_arrays) {
function glGenBuffers (line 231) | inline __attribute__((always_inline)) void glGenBuffers(GLsizei n, GLuin...
function glCreateBuffers (line 249) | void glCreateBuffers(GLsizei n, GLuint *buffers) {
function glBindBuffer (line 253) | void glBindBuffer(GLenum target, GLuint buffer) {
function glBufferData (line 374) | void glBufferData(GLenum target, GLsizei size, const GLvoid *data, GLenu...
function glNamedBufferSubData (line 393) | inline void glNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizei...
function glBufferSubData (line 448) | void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, co...
function GLboolean (line 544) | inline GLboolean glUnmapNamedBuffer(GLuint buffer) {
function GLboolean (line 558) | GLboolean glUnmapBuffer(GLenum target) {
function glFlushMappedNamedBufferRange (line 577) | void glFlushMappedNamedBufferRange(GLuint buffer, GLintptr offset, GLsiz...
function glFlushMappedBufferRange (line 589) | void glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr...
function glGetNamedBufferParameteriv (line 614) | inline void glGetNamedBufferParameteriv(GLuint buffer, GLenum pname, GLi...
function glGetBufferParameteriv (line 631) | void glGetBufferParameteriv(GLenum target, GLenum pname, GLint *params) {
function vglVertexPointer (line 652) | void vglVertexPointer(GLint size, GLenum type, GLsizei stride, GLuint co...
function vglColorPointer (line 682) | void vglColorPointer(GLint size, GLenum type, GLsizei stride, GLuint cou...
function vglTexCoordPointer (line 724) | void vglTexCoordPointer(GLint size, GLenum type, GLsizei stride, GLuint ...
function vglIndexPointer (line 754) | void vglIndexPointer(GLenum type, GLsizei stride, GLuint count, const GL...
function vglVertexPointerMapped (line 783) | void vglVertexPointerMapped(GLint size, const GLvoid *pointer) {
function vglColorPointerMapped (line 794) | void vglColorPointerMapped(GLenum type, const GLvoid *pointer) {
function vglTexCoordPointerMapped (line 830) | void vglTexCoordPointerMapped(const GLvoid *pointer) {
function vglIndexPointerMapped (line 841) | void vglIndexPointerMapped(const GLvoid *pointer) {
function vglBufferData (line 845) | void vglBufferData(GLenum target, const GLvoid *data) {
function vglSetVertexAttribPoolSize (line 869) | void vglSetVertexAttribPoolSize(uint32_t main_size, uint32_t aux_size) {
FILE: source/custom_shaders.c
type attr_mapping (line 271) | typedef struct {
type uniform_location (line 278) | typedef union {
type uniform (line 299) | typedef struct {
type prog_status (line 311) | typedef enum {
type ubo (line 318) | typedef struct {
type attrib_mode (line 327) | typedef enum {
type program (line 335) | typedef struct {
function uniform (line 381) | static inline __attribute__((always_inline)) uniform *getUniformFromPtr(...
function release_shader (line 392) | void release_shader(shader *s) {
function GLenum (line 434) | static inline __attribute__((always_inline)) GLenum gxm_vd_fmt_to_gl(Sce...
function GLenum (line 457) | static inline __attribute__((always_inline)) GLenum gxm_attr_type_to_gl(...
function GLenum (line 476) | static inline __attribute__((always_inline)) GLenum gxm_unif_type_to_gl(...
function gxm_unif_to_mat (line 512) | static inline __attribute__((always_inline)) void gxm_unif_to_mat(GLenum...
function serialized_shader_size (line 531) | static inline __attribute__((always_inline)) size_t serialized_shader_si...
function unserialize_shader (line 584) | void unserialize_shader(void *in, size_t sz, shader *s, GLboolean load_b...
function compile_shader (line 625) | static inline __attribute__((always_inline)) void compile_shader(shader ...
function resetCustomShaders (line 676) | void resetCustomShaders(void) {
function _vglDrawObjects_CustomShadersIMPL (line 1430) | void _vglDrawObjects_CustomShadersIMPL(GLboolean implicit_wvp) {
function shark_log_cb (line 1467) | void shark_log_cb(const char *msg, shark_log_level msg_level, int line) {
function shark_log_cb (line 1498) | void shark_log_cb(const char *msg, shark_log_level msg_level, int line) {
function ubo (line 1525) | static inline __attribute__((always_inline)) ubo *hasBlockAlias(ubo *u, ...
function block_uniform (line 1535) | static inline __attribute__((always_inline)) block_uniform *getBlockDeta...
function vglSetupRuntimeShaderCompiler (line 1549) | void vglSetupRuntimeShaderCompiler(shark_opt opt_level, int32_t use_fast...
function GLuint (line 1556) | GLuint glCreateShader(GLenum shaderType) {
function glGetShaderiv (line 1591) | void glGetShaderiv(GLuint handle, GLenum pname, GLint *params) {
function glGetShaderInfoLog (line 1625) | void glGetShaderInfoLog(GLuint handle, GLsizei maxLength, GLsizei *lengt...
function glGetShaderSource (line 1645) | void glGetShaderSource(GLuint handle, GLsizei bufSize, GLsizei *length, ...
function glShaderSource (line 1667) | void glShaderSource(GLuint handle, GLsizei count, const GLchar *const *s...
function glShaderBinary (line 1703) | void glShaderBinary(GLsizei count, const GLuint *handles, GLenum binaryF...
function glCompileShader (line 1710) | void glCompileShader(GLuint handle) {
function glDeleteShader (line 1750) | void glDeleteShader(GLuint shad) {
function glAttachShader (line 1761) | void glAttachShader(GLuint prog, GLuint shad) {
function glGetAttachedShaders (line 1804) | void glGetAttachedShaders(GLuint prog, GLsizei maxCount, GLsizei *count,...
function GLuint (line 1839) | GLuint glCreateProgram(void) {
function GLboolean (line 1888) | GLboolean glIsProgram(GLuint i) {
function glGetProgramBinary (line 1894) | void glGetProgramBinary(GLuint prog, GLsizei bufSize, GLsizei *length, G...
function glProgramBinary (line 1922) | void glProgramBinary(GLuint prog, GLenum binaryFormat, const void *binar...
function glDeleteProgram (line 1961) | void glDeleteProgram(GLuint prog) {
function glGetProgramInfoLog (line 2015) | void glGetProgramInfoLog(GLuint program, GLsizei maxLength, GLsizei *len...
function glGetProgramiv (line 2020) | void glGetProgramiv(GLuint progr, GLenum pname, GLint *params) {
function glUseProgram (line 2364) | void glUseProgram(GLuint prog) {
function GLuint (line 2371) | GLuint glGetUniformBlockIndex(GLuint prog, const GLchar *uniformBlockNam...
function glUniformBlockBinding (line 2394) | void glUniformBlockBinding(GLuint prog, GLuint uniformBlockIndex, GLuint...
function GLint (line 2399) | GLint glGetUniformLocation(GLuint prog, const GLchar *name) {
function glUniform1i (line 2471) | inline void glUniform1i(GLint location, GLint v0) {
function glProgramUniform1i (line 2492) | void glProgramUniform1i(GLuint prog, GLint location, GLint v0) {
function glUniform1iv (line 2496) | inline void glUniform1iv(GLint location, GLsizei count, const GLint *val...
function glProgramUniform1iv (line 2525) | void glProgramUniform1iv(GLuint prog, GLint location, GLsizei count, con...
function glUniform1f (line 2529) | inline void glUniform1f(GLint location, GLfloat v0) {
function glProgramUniform1f (line 2547) | void glProgramUniform1f(GLuint prog, GLint location, GLfloat v0) {
function glUniform1fv (line 2551) | inline void glUniform1fv(GLint location, GLsizei count, const GLfloat *v...
function glProgramUniform1fv (line 2574) | void glProgramUniform1fv(GLuint prog, GLint location, GLsizei count, con...
function glUniform2i (line 2578) | inline void glUniform2i(GLint location, GLint v0, GLint v1) {
function glProgramUniform2i (line 2597) | void glProgramUniform2i(GLuint prog, GLint location, GLint v0, GLint v1) {
function glUniform2iv (line 2601) | inline void glUniform2iv(GLint location, GLsizei count, const GLint *val...
function glProgramUniform2iv (line 2626) | void glProgramUniform2iv(GLuint prog, GLint location, GLsizei count, con...
function glUniform2f (line 2630) | inline void glUniform2f(GLint location, GLfloat v0, GLfloat v1) {
function glProgramUniform2f (line 2649) | void glProgramUniform2f(GLuint prog, GLint location, GLfloat v0, GLfloat...
function glUniform2fv (line 2653) | inline void glUniform2fv(GLint location, GLsizei count, const GLfloat *v...
function glProgramUniform2fv (line 2676) | void glProgramUniform2fv(GLuint prog, GLint location, GLsizei count, con...
function glUniform3i (line 2680) | inline void glUniform3i(GLint location, GLint v0, GLint v1, GLint v2) {
function glProgramUniform3i (line 2700) | void glProgramUniform3i(GLuint prog, GLint location, GLint v0, GLint v1,...
function glUniform3iv (line 2704) | inline void glUniform3iv(GLint location, GLsizei count, const GLint *val...
function glProgramUniform3iv (line 2729) | void glProgramUniform3iv(GLuint prog, GLint location, GLsizei count, con...
function glUniform3f (line 2733) | inline void glUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat ...
function glProgramUniform3f (line 2753) | void glProgramUniform3f(GLuint prog, GLint location, GLfloat v0, GLfloat...
function glUniform3fv (line 2757) | inline void glUniform3fv(GLint location, GLsizei count, const GLfloat *v...
function glProgramUniform3fv (line 2780) | void glProgramUniform3fv(GLuint prog, GLint location, GLsizei count, con...
function glUniform4i (line 2784) | inline void glUniform4i(GLint location, GLint v0, GLint v1, GLint v2, GL...
function glProgramUniform4i (line 2805) | void glProgramUniform4i(GLuint prog, GLint location, GLint v0, GLint v1,...
function glUniform4iv (line 2809) | inline void glUniform4iv(GLint location, GLsizei count, const GLint *val...
function glProgramUniform4iv (line 2834) | void glProgramUniform4iv(GLuint prog, GLint location, GLsizei count, con...
function glUniform4f (line 2838) | inline void glUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat ...
function glProgramUniform4f (line 2859) | void glProgramUniform4f(GLuint prog, GLint location, GLfloat v0, GLfloat...
function glUniform4fv (line 2863) | inline void glUniform4fv(GLint location, GLsizei count, const GLfloat *v...
function glProgramUniform4fv (line 2886) | void glProgramUniform4fv(GLuint prog, GLint location, GLsizei count, con...
function glUniformMatrix2fv (line 2890) | inline void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean ...
function glProgramUniformMatrix2fv (line 2918) | void glProgramUniformMatrix2fv(GLuint prog, GLint location, GLsizei coun...
function glUniformMatrix3fv (line 2922) | inline void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean ...
function glProgramUniformMatrix3fv (line 2950) | void glProgramUniformMatrix3fv(GLuint prog, GLint location, GLsizei coun...
function glUniformMatrix4fv (line 2954) | inline void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean ...
function glProgramUniformMatrix4fv (line 2983) | void glProgramUniformMatrix4fv(GLuint prog, GLint location, GLsizei coun...
function glEnableVertexAttribArray (line 2987) | void glEnableVertexAttribArray(GLuint index) {
function glDisableVertexAttribArray (line 2996) | void glDisableVertexAttribArray(GLuint index) {
function glGetVertexAttribPointerv (line 3005) | void glGetVertexAttribPointerv(GLuint index, GLenum pname, void **pointe...
function glVertexAttribPointer (line 3016) | void glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLbool...
function glVertexAttribDivisor (line 3064) | void glVertexAttribDivisor(GLuint index, GLuint divisor) {
function glGetVertexAttribiv (line 3081) | void glGetVertexAttribiv(GLuint index, GLenum pname, GLint *params) {
function glGetVertexAttribfv (line 3122) | void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat *params) {
function glVertexAttrib1f (line 3163) | void glVertexAttrib1f(GLuint index, GLfloat v0) {
function glVertexAttrib2f (line 3169) | void glVertexAttrib2f(GLuint index, GLfloat v0, GLfloat v1) {
function glVertexAttrib3f (line 3176) | void glVertexAttrib3f(GLuint index, GLfloat v0, GLfloat v1, GLfloat v2) {
function glVertexAttrib4f (line 3184) | void glVertexAttrib4f(GLuint index, GLfloat v0, GLfloat v1, GLfloat v2, ...
function glVertexAttrib1fv (line 3193) | void glVertexAttrib1fv(GLuint index, const GLfloat *v) {
function glVertexAttrib2fv (line 3199) | void glVertexAttrib2fv(GLuint index, const GLfloat *v) {
function glVertexAttrib3fv (line 3206) | void glVertexAttrib3fv(GLuint index, const GLfloat *v) {
function glVertexAttrib4fv (line 3214) | void glVertexAttrib4fv(GLuint index, const GLfloat *v) {
function glBindBufferRange (line 3223) | void glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLint...
function glBindBufferBase (line 3238) | void glBindBufferBase(GLenum target, GLuint index, GLuint buffer) {
function glBindAttribLocation (line 3251) | void glBindAttribLocation(GLuint prog, GLuint index, const GLchar *name) {
function GLint (line 3286) | GLint glGetAttribLocation(GLuint prog, const GLchar *name) {
function glGetActiveAttrib (line 3302) | void glGetActiveAttrib(GLuint prog, GLuint index, GLsizei bufSize, GLsiz...
function glGetActiveUniform (line 3334) | void glGetActiveUniform(GLuint prog, GLuint index, GLsizei bufSize, GLsi...
function vglBindAttribLocation (line 3408) | void vglBindAttribLocation(GLuint prog, GLuint index, const GLchar *name...
function GLint (line 3453) | GLint vglBindPackedAttribLocation(GLuint prog, const GLchar *name, const...
function vglVertexAttribPointer (line 3500) | void vglVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboo...
function vglVertexAttribPointerMapped (line 3544) | void vglVertexAttribPointerMapped(GLuint index, const GLvoid *pointer) {
function vglGetShaderBinary (line 3551) | void vglGetShaderBinary(GLuint handle, GLsizei bufSize, GLsizei *length,...
function vglCgShaderSource (line 3571) | void vglCgShaderSource(GLuint handle, GLsizei count, const GLchar *const...
function vglAddSemanticBinding (line 3598) | void vglAddSemanticBinding(const GLchar *const *varying, GLint index, GL...
function vglAddSemanticBindingHint (line 3613) | void vglAddSemanticBindingHint(const GLchar *const *varying, GLenum type) {
function vglUseLowPrecision (line 3628) | void vglUseLowPrecision(GLboolean val) {
function vglSetSemanticBindingMode (line 3634) | void vglSetSemanticBindingMode(GLenum mode) {
function vglOverrideTexFormat (line 3640) | void vglOverrideTexFormat(GLenum target) {
function vglShaderGxpBinary (line 3653) | void vglShaderGxpBinary(GLsizei count, const GLuint *handles, const void...
FILE: source/debug.c
function glPushGroupMarker (line 25) | void glPushGroupMarker(GLsizei length, const GLchar *marker) {
function glPopGroupMarker (line 29) | void glPopGroupMarker(void) {
function vgl_debugger_set_metrics (line 41) | void vgl_debugger_set_metrics(int mode) {
function vgl_debugger_draw_character (line 49) | static void vgl_debugger_draw_character(int character, int x, int y, uin...
function vgl_debugger_draw_string (line 67) | static void vgl_debugger_draw_string(int x, int y, const char *str, uint...
function vgl_debugger_draw_string_format (line 72) | static void vgl_debugger_draw_string_format(int x, int y, uint32_t color...
function vgl_debugger_get_color_by_percentage (line 84) | static inline __attribute__((always_inline)) uint32_t vgl_debugger_get_c...
function vgl_debugger_draw_mem_usage (line 93) | static void vgl_debugger_draw_mem_usage(const char *str, vglMemType type) {
function vgl_debugger_draw_mem_usage_metrics (line 100) | static inline __attribute__((always_inline)) void vgl_debugger_draw_mem_...
function vgl_debugger_draw (line 107) | void vgl_debugger_draw(uint32_t *fb) {
function vgl_file_log (line 196) | void vgl_file_log(const char *format, ...) {
FILE: source/display_lists.c
function resetDlists (line 45) | void resetDlists() {
function GLboolean (line 49) | GLboolean _vgl_enqueue_list_func(void (*func)(), dlistFuncType type, ...) {
function glListBase (line 115) | void glListBase(GLuint base) {
function glCallList (line 119) | void glCallList(GLuint list) {
function glCallLists (line 324) | void glCallLists(GLsizei n, GLenum type, const void *lists) {
function glNewList (line 358) | void glNewList(GLuint list, GLenum mode) {
function glEndList (line 370) | void glEndList(void) {
function GLuint (line 374) | GLuint glGenLists(GLsizei range) {
function glDeleteLists (line 409) | void glDeleteLists(GLuint list, GLsizei range) {
FILE: source/draw.c
function glDrawArrays (line 198) | void glDrawArrays(GLenum mode, GLint first, GLsizei count) {
function glMultiDrawArrays (line 260) | void glMultiDrawArrays(GLenum mode, const GLint *first, const GLsizei *c...
function glDrawArraysInstanced (line 317) | void glDrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsi...
function glDrawElements (line 368) | void glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoi...
function glDrawElementsBaseVertex (line 428) | void glDrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type, c...
function glDrawRangeElements (line 483) | void glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei ...
function glDrawElementsInstanced (line 583) | void glDrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, co...
function vglDrawObjects (line 621) | void vglDrawObjects(GLenum mode, GLsizei count, GLboolean implicit_wvp) {
FILE: source/egl.c
function EGLBoolean (line 53) | EGLBoolean eglSwapInterval(EGLDisplay display, EGLint interval) {
function EGLBoolean (line 61) | EGLBoolean eglSwapBuffers(EGLDisplay display, EGLSurface surface) {
function EGLBoolean (line 69) | EGLBoolean eglBindAPI(EGLenum api) {
function EGLenum (line 83) | EGLenum eglQueryAPI(void) {
function EGLint (line 90) | EGLint eglGetError(void) {
function EGLDisplay (line 103) | EGLDisplay eglGetDisplay(NativeDisplayType native_display) {
function EGLuint64 (line 113) | EGLuint64 eglGetSystemTimeFrequencyNV(void) {
function EGLuint64 (line 120) | EGLuint64 eglGetSystemTimeNV(void) {
FILE: source/ffp.c
type shader_mask (line 167) | typedef union shader_mask {
type shader_mask (line 192) | typedef union shader_mask {
type combiner_mask (line 216) | typedef union combiner_mask {
type vert_uniform_type (line 235) | typedef enum {
type frag_uniform_type (line 252) | typedef enum {
type cached_fragment_shader (line 278) | typedef struct {
type cached_vertex_shader (line 288) | typedef struct {
function adjust_color_material_state (line 333) | void adjust_color_material_state() {
function reload_vertex_uniforms (line 359) | void reload_vertex_uniforms() {
function reload_fragment_uniforms (line 372) | void reload_fragment_uniforms() {
function setup_combiner_pass (line 386) | void setup_combiner_pass(int i, char *dst) {
function _glDrawArrays_FixedFunctionIMPL (line 1175) | void _glDrawArrays_FixedFunctionIMPL(GLint first, GLsizei count) {
function _glMultiDrawArrays_FixedFunctionIMPL (line 1310) | void _glMultiDrawArrays_FixedFunctionIMPL(SceGxmPrimitiveType gxm_p, uin...
function _glDrawElements_FixedFunctionIMPL (line 1460) | void _glDrawElements_FixedFunctionIMPL(uint16_t *idx_buf, GLsizei count,...
function update_fogging_state (line 1634) | void update_fogging_state() {
function glEnableClientState (line 1658) | void glEnableClientState(GLenum array) {
function glDisableClientState (line 1687) | void glDisableClientState(GLenum array) {
function glVertexPointer (line 1716) | void glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvo...
function glColorPointer (line 1758) | void glColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoi...
function glNormalPointer (line 1805) | void glNormalPointer(GLenum type, GLsizei stride, const void *pointer) {
function glTexCoordPointer (line 1852) | void glTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GL...
function glInterleavedArrays (line 1894) | void glInterleavedArrays(GLenum format, GLsizei stride, const void *poin...
function glVertex3f (line 1945) | inline void glVertex3f(GLfloat x, GLfloat y, GLfloat z) {
function glClientActiveTexture (line 1988) | void glClientActiveTexture(GLenum texture) {
function glVertex3fv (line 2005) | void glVertex3fv(const GLfloat *v) {
function glVertex3dv (line 2009) | void glVertex3dv(const GLdouble *v) {
function glVertex3i (line 2013) | void glVertex3i(GLint x, GLint y, GLint z) {
function glVertex3d (line 2017) | void glVertex3d(GLdouble x, GLdouble y, GLdouble z) {
function glVertex2fv (line 2021) | void glVertex2fv(const GLfloat *v) {
function glVertex2dv (line 2025) | void glVertex2dv(const GLdouble *v) {
function glVertex2f (line 2029) | inline void glVertex2f(GLfloat x, GLfloat y) {
function glVertex2d (line 2033) | inline void glVertex2d(GLdouble x, GLdouble y) {
function glVertex2i (line 2037) | inline void glVertex2i(GLint x, GLint y) {
function glMaterialfv (line 2041) | void glMaterialfv(GLenum face, GLenum pname, const GLfloat *params) {
function glMaterialf (line 2076) | void glMaterialf(GLenum face, GLenum pname, GLfloat param) {
function glMateriali (line 2095) | void glMateriali(GLenum face, GLenum pname, GLint param) {
function glMaterialxv (line 2099) | void glMaterialxv(GLenum face, GLenum pname, const GLfixed *params) {
function glMaterialx (line 2149) | void glMaterialx(GLenum face, GLenum pname, const GLfixed param) {
function glColor3f (line 2153) | void glColor3f(GLfloat red, GLfloat green, GLfloat blue) {
function glColor3fv (line 2168) | void glColor3fv(const GLfloat *v) {
function glColor3ub (line 2181) | void glColor3ub(GLubyte red, GLubyte green, GLubyte blue) {
function glColor3ubv (line 2196) | void glColor3ubv(const GLubyte *c) {
function glColor4f (line 2211) | void glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) {
function glColor4fv (line 2226) | void glColor4fv(const GLfloat *v) {
function glColor4ub (line 2238) | void glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha) {
function glColor4ubv (line 2252) | void glColor4ubv(const GLubyte *c) {
function glColor4x (line 2267) | void glColor4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha) {
function glNormal3f (line 2283) | void glNormal3f(GLfloat x, GLfloat y, GLfloat z) {
function glNormal3s (line 2301) | void glNormal3s(GLshort x, GLshort y, GLshort z) {
function glNormal3x (line 2305) | void glNormal3x(GLfixed x, GLfixed y, GLfixed z) {
function glNormal3fv (line 2309) | void glNormal3fv(const GLfloat *v) {
function glTexCoord2f (line 2327) | void glTexCoord2f(GLfloat s, GLfloat t) {
function glTexCoord2fv (line 2344) | void glTexCoord2fv(GLfloat *f) {
function glTexCoord2i (line 2348) | void glTexCoord2i(GLint s, GLint t) {
function glTexCoord2s (line 2352) | void glTexCoord2s(GLshort s, GLshort t) {
function glMultiTexCoord2f (line 2356) | void glMultiTexCoord2f(GLenum target, GLfloat s, GLfloat t) {
function glMultiTexCoord2fv (line 2383) | void glMultiTexCoord2fv(GLenum target, GLfloat *f) {
function glMultiTexCoord2i (line 2387) | void glMultiTexCoord2i(GLenum target, GLint s, GLint t) {
function glBegin (line 2391) | void glBegin(GLenum mode) {
function glEnd (line 2417) | void glEnd(void) {
function glTexEnvfv (line 2558) | void glTexEnvfv(GLenum target, GLenum pname, GLfloat *param) {
function glTexEnvxv (line 2602) | void glTexEnvxv(GLenum target, GLenum pname, GLfixed *param) {
function glTexEnvi (line 2649) | inline void glTexEnvi(GLenum target, GLenum pname, GLint param) {
function glTexEnvx (line 2948) | void glTexEnvx(GLenum target, GLenum pname, GLfixed param) {
function glTexEnvf (line 2952) | void glTexEnvf(GLenum target, GLenum pname, GLfloat param) {
function glGetTexEnviv (line 2956) | void glGetTexEnviv(GLenum target, GLenum pname, GLint *params) {
function glLightfv (line 3225) | void glLightfv(GLenum light, GLenum pname, const GLfloat *params) {
function glLightxv (line 3269) | void glLightxv(GLenum light, GLenum pname, const GLfixed *params) {
function glLightModelfv (line 3327) | void glLightModelfv(GLenum pname, const GLfloat *params) {
function glLightModelxv (line 3353) | void glLightModelxv(GLenum pname, const GLfixed *params) {
function glFogf (line 3382) | void glFogf(GLenum pname, GLfloat param) {
function glFogx (line 3410) | void glFogx(GLenum pname, GLfixed param) {
function glFogfv (line 3438) | void glFogfv(GLenum pname, const GLfloat *params) {
function glFogxv (line 3469) | void glFogxv(GLenum pname, const GLfixed *params) {
function glFogi (line 3503) | void glFogi(GLenum pname, const GLint param) {
function glClipPlane (line 3531) | void glClipPlane(GLenum plane, const GLdouble *equation) {
function glClipPlanef (line 3556) | void glClipPlanef(GLenum plane, const GLfloat *equation) {
function glClipPlanex (line 3581) | void glClipPlanex(GLenum plane, const GLfixed *equation) {
function glShadeModel (line 3606) | void glShadeModel(GLenum mode) {
function glColorMaterial (line 3639) | void glColorMaterial(GLenum face, GLenum mode) {
function glGetPointerv (line 3655) | void glGetPointerv(GLenum pname, void **params) {
function glRectf (line 3674) | void glRectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2) {
function glRecti (line 3689) | void glRecti(GLint x1, GLint y1, GLint x2, GLint y2) {
FILE: source/framebuffers.c
function get_color_from_texture (line 33) | uint32_t get_color_from_texture(SceGxmTextureFormat type) {
function get_alpha_channel_size (line 60) | uint32_t get_alpha_channel_size(SceGxmColorFormat type) {
function glGenFramebuffers (line 84) | inline __attribute__((always_inline)) void glGenFramebuffers(GLsizei n, ...
function glCreateFramebuffers (line 105) | void glCreateFramebuffers(GLsizei n, GLuint *ids) {
function glGenRenderbuffers (line 109) | void glGenRenderbuffers(GLsizei n, GLuint *ids) {
function glDeleteFramebuffers (line 126) | void glDeleteFramebuffers(GLsizei n, const GLuint *ids) {
function glDeleteRenderbuffers (line 159) | void glDeleteRenderbuffers(GLsizei n, const GLuint *ids) {
function glBindFramebuffer (line 189) | void glBindFramebuffer(GLenum target, GLuint fb) {
function glBindRenderbuffer (line 205) | void glBindRenderbuffer(GLenum target, GLuint rb) {
function glFramebufferRenderbuffer (line 215) | void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum ...
function glNamedFramebufferRenderbuffer (line 263) | void glNamedFramebufferRenderbuffer(GLuint target, GLenum attachment, GL...
function glRenderbufferStorage (line 296) | void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei...
function glNamedRenderbufferStorage (line 332) | void glNamedRenderbufferStorage(GLuint target, GLenum internalformat, GL...
function glFramebufferTexture2D (line 360) | inline void glFramebufferTexture2D(GLenum target, GLenum attachment, GLe...
function glNamedFramebufferTexture2D (line 451) | inline void glNamedFramebufferTexture2D(GLuint target, GLenum attachment...
function glFramebufferTexture (line 531) | void glFramebufferTexture(GLenum target, GLenum attachment, GLuint tex_i...
function glNamedFramebufferTexture (line 535) | void glNamedFramebufferTexture(GLuint target, GLenum attachment, GLuint ...
function GLenum (line 539) | GLenum glCheckFramebufferStatus(GLenum target) {
function GLenum (line 557) | GLenum glCheckNamedFramebufferStatus(GLuint target, GLenum dummy) {
function glGetFramebufferAttachmentParameteriv (line 563) | void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachm...
function glReadPixels (line 600) | void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenu...
function glBlitNamedFramebuffer (line 731) | void glBlitNamedFramebuffer(GLuint readFramebuffer, GLuint drawFramebuff...
function glBlitFramebuffer (line 836) | void glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY...
function vglTexImageDepthBuffer (line 842) | void vglTexImageDepthBuffer(GLenum target) {
function GLboolean (line 864) | GLboolean glIsFramebuffer(GLuint fb) {
function GLboolean (line 869) | GLboolean glIsRenderbuffer(GLuint rb) {
FILE: source/get_info.c
function GLint (line 85) | GLint gxm_vtx_fmt_to_gl(SceGxmAttributeFormat attr) {
function GLint (line 106) | GLint gxm_depth_func_to_gl(SceGxmDepthFunc func) {
function GLenum (line 130) | GLenum gxm_stencil_func_to_gl(SceGxmStencilFunc func) {
function GLenum (line 153) | GLenum gxm_stencil_op_to_gl(SceGxmStencilOp op) {
function GLubyte (line 182) | const GLubyte *glGetString(GLenum name) {
function GLubyte (line 216) | const GLubyte *glGetStringi(GLenum name, GLuint index) {
function glGetBooleanv (line 225) | void glGetBooleanv(GLenum pname, GLboolean *params) {
function glGetFloatv (line 280) | void glGetFloatv(GLenum pname, GLfloat *data) {
function glGetDoublev (line 358) | void glGetDoublev(GLenum pname, GLdouble *data) {
function glGetIntegerv (line 423) | void glGetIntegerv(GLenum pname, GLint *data) {
function GLboolean (line 730) | GLboolean glIsEnabled(GLenum cap) {
function GLenum (line 812) | GLenum glGetError(void) {
function GLboolean (line 818) | GLboolean glIsTexture(GLuint i) {
FILE: source/gxm.c
type SceRazorGpuResult (line 131) | typedef union {
function setupRenderTarget (line 144) | static inline __attribute__((always_inline)) int setupRenderTarget(SceGx...
function render_target (line 160) | render_target *getFreeRenderTarget(int w, int h) {
function __markRtAsDirty (line 211) | void __markRtAsDirty(render_target *rt) {
type display_queue_callback_data (line 221) | struct display_queue_callback_data {
function shader_patcher_host_free_cb (line 231) | static void shader_patcher_host_free_cb(void *user_data, void *mem) {
function display_queue_callback (line 236) | static void display_queue_callback(const void *callbackData) {
function GLboolean (line 303) | GLboolean startShaderCompiler(void) {
function initGxm (line 319) | void initGxm(void) {
function initGxmContext (line 403) | void initGxmContext(void) {
function createDisplayRenderTarget (line 442) | void createDisplayRenderTarget(void) {
function initDisplayColorSurfaces (line 447) | void initDisplayColorSurfaces(GLboolean is_swap) {
function initDepthStencilBuffer (line 487) | void initDepthStencilBuffer(uint32_t w, uint32_t h, SceGxmDepthStencilSu...
function initDepthStencilSurfaces (line 532) | void initDepthStencilSurfaces(void) {
function startShaderPatcher (line 536) | void startShaderPatcher(void) {
function stopShaderPatcher (line 573) | void stopShaderPatcher(void) {
function sceneEnd (line 583) | static inline __attribute__((always_inline)) void sceneEnd(void) {
function sceneReset (line 591) | void sceneReset(void) {
function vglSetupGarbageCollector (line 714) | void vglSetupGarbageCollector(int priority, int affinity) {
function vglSetParamBufferSize (line 719) | void vglSetParamBufferSize(uint32_t size) {
function vglSetVDMBufferSize (line 723) | void vglSetVDMBufferSize(uint32_t size) {
function vglSetVertexBufferSize (line 727) | void vglSetVertexBufferSize(uint32_t size) {
function vglSetFragmentBufferSize (line 731) | void vglSetFragmentBufferSize(uint32_t size) {
function vglSetUSSEBufferSize (line 735) | void vglSetUSSEBufferSize(uint32_t size) {
function vglUseTripleBuffering (line 739) | void vglUseTripleBuffering(GLboolean usage) {
function vglSetDisplayBufferCount (line 743) | void vglSetDisplayBufferCount(int count) {
function vglSwapBuffers (line 752) | void vglSwapBuffers(GLboolean has_commondialog) {
function glFinish (line 952) | void glFinish(void) {
function glReleaseShaderCompiler (line 957) | void glReleaseShaderCompiler(void) {
function glFlush (line 964) | void glFlush(void) {
function vglSetDisplayCallback (line 967) | void vglSetDisplayCallback(void (*cb)(void *framebuf)) {
function vglSetupShaderPatcher (line 971) | void vglSetupShaderPatcher(uint32_t buffer_mem_size, uint32_t vertex_uss...
function vglSetupDisplayRenderTarget (line 977) | void vglSetupDisplayRenderTarget(uint8_t size) {
FILE: source/matrices.c
function GLint (line 39) | GLint get_gl_matrix_mode() {
function glMatrixMode (line 57) | void glMatrixMode(GLenum mode) {
function glMatrixLoadf (line 79) | void glMatrixLoadf(GLenum mode, const GLfloat *m) {
function glMatrixLoadd (line 109) | void glMatrixLoadd(GLenum mode, const GLdouble *m) {
function glOrthof (line 139) | inline void glOrthof(GLfloat left, GLfloat right, GLfloat bottom, GLfloa...
function glOrtho (line 164) | void glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble to...
function glOrthox (line 168) | void glOrthox(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, ...
function glFrustumf (line 172) | inline void glFrustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfl...
function glFrustumx (line 197) | void glFrustumx(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top...
function glFrustum (line 222) | void glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble ...
function glMatrixLoadIdentity (line 226) | void glMatrixLoadIdentity(GLenum mode) {
function glLoadIdentity (line 247) | void glLoadIdentity(void) {
function glMultMatrixf (line 260) | void glMultMatrixf(const GLfloat *m) {
function glMatrixMultd (line 281) | void glMatrixMultd(GLenum mode, const GLdouble *m) {
function glMatrixMultf (line 318) | void glMatrixMultf(GLenum mode, const GLfloat *m) {
function glMultTransposeMatrixf (line 355) | void glMultTransposeMatrixf(const GLfloat *m) {
function glMultMatrixx (line 377) | void glMultMatrixx(const GLfixed *m) {
function glMultTransposeMatrixx (line 398) | void glMultTransposeMatrixx(const GLfixed *m) {
function glLoadMatrixf (line 419) | void glLoadMatrixf(const GLfloat *m) {
function glLoadMatrixd (line 433) | void glLoadMatrixd(const GLdouble *m) {
function glLoadTransposeMatrixf (line 447) | void glLoadTransposeMatrixf(const GLfloat *m) {
function glLoadMatrixx (line 461) | void glLoadMatrixx(const GLfixed *m) {
function glLoadTransposeMatrixx (line 475) | void glLoadTransposeMatrixx(const GLfixed *m) {
function glMatrixRotatef (line 489) | void glMatrixRotatef(GLenum mode, GLfloat angle, GLfloat x, GLfloat y, G...
function glMatrixRotated (line 514) | void glMatrixRotated(GLenum matrixMode, GLdouble angle, GLdouble x, GLdo...
function glMatrixScalef (line 518) | void glMatrixScalef(GLenum mode, GLfloat x, GLfloat y, GLfloat z) {
function glMatrixScaled (line 542) | void glMatrixScaled(GLenum matrixMode, GLdouble x, GLdouble y, GLdouble ...
function glMatrixTranslatef (line 546) | void glMatrixTranslatef(GLenum mode, GLfloat x, GLfloat y, GLfloat z) {
function glMatrixTranslated (line 570) | void glMatrixTranslated(GLenum matrixMode, GLdouble x, GLdouble y, GLdou...
function glMatrixOrtho (line 574) | void glMatrixOrtho(GLenum mode, GLdouble left, GLdouble right, GLdouble ...
function glMatrixFrustum (line 606) | void glMatrixFrustum(GLenum mode, GLdouble left, GLdouble right, GLdoubl...
function glMatrixPush (line 638) | void glMatrixPush(GLenum mode) {
function glMatrixPop (line 690) | void glMatrixPop(GLenum mode) {
function glTranslatef (line 741) | void glTranslatef(GLfloat x, GLfloat y, GLfloat z) {
function glTranslated (line 761) | void glTranslated(GLdouble x, GLdouble y, GLdouble z) {
function glTranslatex (line 765) | void glTranslatex(GLfixed x, GLfixed y, GLfixed z) {
function glScalef (line 773) | void glScalef(GLfloat x, GLfloat y, GLfloat z) {
function glScaled (line 793) | void glScaled(GLdouble x, GLdouble y, GLdouble z) {
function glScalex (line 797) | void glScalex(GLfixed x, GLfixed y, GLfixed z) {
function glRotatef (line 805) | inline void glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z) {
function glRotated (line 826) | void glRotated(GLdouble angle, GLdouble x, GLdouble y, GLdouble z) {
function glRotatex (line 830) | void glRotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z) {
function glPushMatrix (line 847) | void glPushMatrix(void) {
function glPopMatrix (line 899) | void glPopMatrix(void) {
function gluPerspective (line 951) | void gluPerspective(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdo...
function gluLookAt (line 967) | void gluLookAt(GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, GLdouble cen...
FILE: source/misc.c
type attrib_state (line 43) | typedef struct {
function update_polygon_offset (line 153) | void update_polygon_offset() {
function change_cull_mode (line 204) | void change_cull_mode() {
function glPolygonMode (line 249) | void glPolygonMode(GLenum face, GLenum mode) {
function glPolygonOffset (line 287) | void glPolygonOffset(GLfloat factor, GLfloat units) {
function glPolygonOffsetx (line 293) | void glPolygonOffsetx(GLfixed factor, GLfixed units) {
function glCullFace (line 299) | void glCullFace(GLenum mode) {
function glFrontFace (line 305) | void glFrontFace(GLenum mode) {
function glViewport (line 311) | void glViewport(GLint x, GLint y, GLsizei width, GLsizei height) {
function glDepthRange (line 339) | void glDepthRange(GLdouble nearVal, GLdouble farVal) {
function glDepthRangef (line 345) | void glDepthRangef(GLfloat nearVal, GLfloat farVal) {
function glDepthRangex (line 351) | void glDepthRangex(GLfixed _nearVal, GLfixed _farVal) {
function glEnable (line 359) | void glEnable(GLenum cap) {
function glDisable (line 488) | void glDisable(GLenum cap) {
function glClear (line 620) | void glClear(GLbitfield mask) {
function glClearColor (line 721) | void glClearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alph...
function glClearColorx (line 728) | void glClearColorx(GLclampx red, GLclampx green, GLclampx blue, GLclampx...
function glLineWidth (line 735) | void glLineWidth(GLfloat width) {
function glLineWidthx (line 755) | void glLineWidthx(GLfixed width) {
function glPointSize (line 759) | void glPointSize(GLfloat size) {
function glPointSizex (line 772) | void glPointSizex(GLfixed size) {
function glHint (line 776) | void glHint(GLenum target, GLenum mode) {
function glPushAttrib (line 802) | void glPushAttrib(GLbitfield mask) {
function glPopAttrib (line 924) | void glPopAttrib(void) {
FILE: source/shaders/ffp_ext_f.h
function point_light (line 41) | void point_light(short i, float3 normal, float3 position, float4 inout A...
function directional_light (line 58) | void directional_light(short i, float3 normal, float3 position, float4 i...
function calculate_light (line 69) | void calculate_light(short i, float3 ecPosition, float3 N, float4 inout ...
FILE: source/shaders/ffp_ext_v.h
function point_light (line 46) | void point_light(short i, float3 normal, float3 position, float4 inout A...
function directional_light (line 63) | void directional_light(short i, float3 normal, float3 position, float4 i...
function calculate_light (line 74) | void calculate_light(short i, float3 ecPosition, float3 N, float4 inout ...
FILE: source/shaders/ffp_f.h
function point_light (line 38) | void point_light(short i, float3 normal, float3 position, float4 inout A...
function directional_light (line 55) | void directional_light(short i, float3 normal, float3 position, float4 i...
function calculate_light (line 66) | void calculate_light(short i, float3 ecPosition, float3 N, float4 inout ...
FILE: source/shaders/ffp_v.h
function point_light (line 44) | void point_light(short i, float3 normal, float3 position, float4 inout A...
function directional_light (line 61) | void directional_light(short i, float3 normal, float3 position, float4 i...
function calculate_light (line 72) | void calculate_light(short i, float3 ecPosition, float3 N, float4 inout ...
FILE: source/shaders/glsl_translator_hdr.h
function float4x4 (line 7) | inline float4x4 vglMul(float4x4 M1, float4x4 M2) { return M1 * M2; }
function float3x3 (line 8) | inline float3x3 vglMul(float3x3 M1, float3x3 M2) { return M1 * M2; }
function float2x2 (line 9) | inline float2x2 vglMul(float2x2 M1, float2x2 M2) { return M1 * M2; }
function float4x4 (line 10) | inline float4x4 vglMul(float4x4 M, float v) { return v * M; }
function float3x3 (line 11) | inline float3x3 vglMul(float3x3 M, float v) { return v * M; }
function float2x2 (line 12) | inline float2x2 vglMul(float2x2 M, float v) { return v * M; }
function float4x4 (line 13) | inline float4x4 vglMul(float v, float4x4 M) { return M * v; }
function float3x3 (line 14) | inline float3x3 vglMul(float v, float3x3 M) { return M * v; }
function float2x2 (line 15) | inline float2x2 vglMul(float v, float2x2 M) { return M * v; }
function float4 (line 16) | inline float4 vglMul(float4x4 M, float4 v) { return mul(v, M); }
function float3 (line 17) | inline float3 vglMul(float3x3 M, float3 v) { return mul(v, M); }
function float2 (line 18) | inline float2 vglMul(float2x2 M, float2 v) { return mul(v, M); }
function float4 (line 19) | inline float4 vglMul(float4 v, float4x4 M) { return mul(M, v); }
function float3 (line 20) | inline float3 vglMul(float3 v, float3x3 M) { return mul(M, v); }
function float2 (line 21) | inline float2 vglMul(float2 v, float2x2 M) { return mul(M, v); }
function float4 (line 22) | inline float4 vglMul(float v1, float4 v2) { return v1 * v2; }
function float3 (line 23) | inline float3 vglMul(float v1, float3 v2) { return v1 * v2; }
function float2 (line 24) | inline float2 vglMul(float v1, float2 v2) { return v1 * v2; }
function vglMul (line 25) | inline float vglMul(float v1, float v2) { return v1 * v2; }
function float4 (line 26) | inline float4 vglMul(float4 v1, float4 v2) { return v1 * v2; }
function float3 (line 27) | inline float3 vglMul(float3 v1, float3 v2) { return v1 * v2; }
function float2 (line 28) | inline float2 vglMul(float2 v1, float2 v2) { return v1 * v2; }
function float4 (line 29) | inline float4 vglMul(float4 v1, float v2) { return v1 * v2; }
function float3 (line 30) | inline float3 vglMul(float3 v1, float v2) { return v1 * v2; }
function float2 (line 31) | inline float2 vglMul(float2 v1, float v2) { return v1 * v2; }
function int4 (line 32) | inline int4 vglMul(int4 v1, int4 v2) { return v1 * v2; }
function int3 (line 33) | inline int3 vglMul(int3 v1, int3 v2) { return v1 * v2; }
function int2 (line 34) | inline int2 vglMul(int2 v1, int2 v2) { return v1 * v2; }
function int4 (line 35) | inline int4 vglMul(int v1, int4 v2) { return v1 * v2; }
function int3 (line 36) | inline int3 vglMul(int v1, int3 v2) { return v1 * v2; }
function int2 (line 37) | inline int2 vglMul(int v1, int2 v2) { return v1 * v2; }
function vglMul (line 38) | inline int vglMul(int v1, int v2) { return v1 * v2; }
function int4 (line 39) | inline int4 vglMul(int4 v1, int v2) { return v1 * v2; }
function int3 (line 40) | inline int3 vglMul(int3 v1, int v2) { return v1 * v2; }
function int2 (line 41) | inline int2 vglMul(int2 v1, int v2) { return v1 * v2; }
function greaterThanEqual (line 42) | inline int greaterThanEqual(int a, int b) { return (a >= b ? 1 : 0); }
function int2 (line 43) | inline int2 greaterThanEqual(int2 a, int2 b) { return int2(a.x >= b.x ? ...
function int3 (line 44) | inline int3 greaterThanEqual(int3 a, int3 b) { return int3(a.x >= b.x ? ...
function int4 (line 45) | inline int4 greaterThanEqual(int4 a, int4 b) { return int4(a.x >= b.x ? ...
function greaterThanEqual (line 46) | inline int greaterThanEqual(float a, float b) { return (a >= b ? 1 : 0); }
function int2 (line 47) | inline int2 greaterThanEqual(float2 a, float2 b) { return int2(a.x >= b....
function int3 (line 48) | inline int3 greaterThanEqual(float3 a, float3 b) { return int3(a.x >= b....
function int4 (line 49) | inline int4 greaterThanEqual(float4 a, float4 b) { return int4(a.x >= b....
function greaterThan (line 50) | inline int greaterThan(int a, int b) { return (a >= b ? 1 : 0); }
function int2 (line 51) | inline int2 greaterThan(int2 a, int2 b) { return int2(a.x > b.x ? 1 : 0,...
function int3 (line 52) | inline int3 greaterThan(int3 a, int3 b) { return int3(a.x > b.x ? 1 : 0,...
function int4 (line 53) | inline int4 greaterThan(int4 a, int4 b) { return int4(a.x > b.x ? 1 : 0,...
function greaterThan (line 54) | inline int greaterThan(float a, float b) { return (a > b ? 1 : 0); }
function int2 (line 55) | inline int2 greaterThan(float2 a, float2 b) { return int2(a.x > b.x ? 1 ...
function int3 (line 56) | inline int3 greaterThan(float3 a, float3 b) { return int3(a.x > b.x ? 1 ...
function int4 (line 57) | inline int4 greaterThan(float4 a, float4 b) { return int4(a.x > b.x ? 1 ...
function equal (line 60) | inline int equal(int a, int b) { return (a == b ? 1 : 0); }
function int2 (line 61) | inline int2 equal(int2 a, int2 b) { return int2(a.x == b.x ? 1 : 0, a.y ...
function int3 (line 62) | inline int3 equal(int3 a, int3 b) { return int3(a.x == b.x ? 1 : 0, a.y ...
function int4 (line 63) | inline int4 equal(int4 a, int4 b) { return int4(a.x == b.x ? 1 : 0, a.y ...
function equal (line 64) | inline int equal(float a, float b) { return (a == b ? 1 : 0); }
function int2 (line 65) | inline int2 equal(float2 a, float2 b) { return int2(a.x == b.x ? 1 : 0, ...
function int3 (line 66) | inline int3 equal(float3 a, float3 b) { return int3(a.x == b.x ? 1 : 0, ...
function int4 (line 67) | inline int4 equal(float4 a, float4 b) { return int4(a.x == b.x ? 1 : 0, ...
function notEqual (line 68) | inline int notEqual(int a, int b) { return (a != b ? 1 : 0); }
function int2 (line 69) | inline int2 notEqual(int2 a, int2 b) { return int2(a.x != b.x ? 1 : 0, a...
function int3 (line 70) | inline int3 notEqual(int3 a, int3 b) { return int3(a.x != b.x ? 1 : 0, a...
function int4 (line 71) | inline int4 notEqual(int4 a, int4 b) { return int4(a.x != b.x ? 1 : 0, a...
function notEqual (line 72) | inline int notEqual(float a, float b) { return (a != b ? 1 : 0); }
function int2 (line 73) | inline int2 notEqual(float2 a, float2 b) { return int2(a.x != b.x ? 1 : ...
function int3 (line 74) | inline int3 notEqual(float3 a, float3 b) { return int3(a.x != b.x ? 1 : ...
function int4 (line 75) | inline int4 notEqual(float4 a, float4 b) { return int4(a.x != b.x ? 1 : ...
function float4 (line 76) | inline float4 texture2DProj(sampler2D s, float3 c) { return tex2Dproj(s,...
function float4 (line 77) | inline float4 texture2DProj(sampler2D s, float4 c) { return tex2Dproj(s,...
function float4 (line 78) | inline float4 texture2DProj(sampler2D s, float4 c, float b) { return tex...
function float4 (line 79) | inline float4 texture2DProj(sampler2D s, float3 c, float b) { return tex...
function float4 (line 82) | inline float4 glslTexture2D(sampler2D x, float2 s) { return tex2D(x,s); }
function float4 (line 83) | inline float4 glslTexture2D(sampler2D x, float3 s) { return tex2D(x,s); }
function float4 (line 84) | inline float4 glslTexture2D(sampler2D x, float2 s, float b) { return tex...
function float4 (line 85) | inline float4 textureCube(samplerCUBE x, float3 s) { return texCUBE(x,s); }
function float4 (line 86) | inline float4 textureCube(samplerCUBE x, float4 s) { return texCUBE(x,s); }
function float4 (line 87) | inline float4 textureCube(samplerCUBE x, float3 s, float b) { return tex...
function float4 (line 88) | inline float4 texture2DLod(sampler2D x, float2 coord, float lod) { retur...
function vgl_atan (line 105) | inline float vgl_atan(float x, float y) { return atan2(x, y); }
function float2 (line 106) | inline float2 vgl_atan(float2 x, float2 y) { return atan2(x, y); }
function float3 (line 107) | inline float3 vgl_atan(float3 x, float3 y) { return atan2(x, y); }
function float4 (line 108) | inline float4 vgl_atan(float4 x, float4 y) { return atan2(x, y); }
function vgl_atan (line 109) | inline float vgl_atan(float x) { return atan(x); }
function float2 (line 110) | inline float2 vgl_atan(float2 x) { return atan(x); }
function float3 (line 111) | inline float3 vgl_atan(float3 x) { return atan(x); }
function float4 (line 112) | inline float4 vgl_atan(float4 x) { return atan(x); }
type vgl_Fog (line 174) | struct vgl_Fog {
FILE: source/shared.h
type texture (line 100) | typedef struct texture {
type legacy_vtx_attachment (line 400) | typedef struct {
type glPhase (line 412) | typedef enum {
type scissor_region (line 418) | typedef struct {
type viewport (line 430) | typedef struct {
type alphaOp (line 438) | typedef enum {
type fogType (line 450) | typedef enum {
type combinerState (line 457) | typedef union combinerState {
type texture_unit (line 479) | typedef struct {
type framebuffer (line 492) | typedef struct {
type query (line 509) | typedef struct {
type renderbuffer (line 516) | typedef struct {
type sampler (line 523) | typedef struct {
type texEnvMode (line 534) | typedef enum {
type texEnvOp (line 547) | typedef enum {
type texEnvOpMode (line 554) | typedef enum {
type gpubuffer (line 563) | typedef struct {
type vao (line 575) | typedef struct {
type rgba_vertex (line 591) | typedef struct {
type rgb_vertex (line 597) | typedef struct {
type texture2d_vertex (line 603) | typedef struct {
type blend_config (line 609) | typedef union {
type dlistArgType (line 614) | typedef enum {
type dlistFuncType (line 623) | typedef enum {
type shadingMode (line 655) | typedef enum {
type list_chain (line 662) | typedef struct {
type display_list (line 670) | typedef struct {
type matrix_uniform (line 677) | typedef struct {
type block_uniform (line 683) | typedef struct {
type binds_map (line 692) | typedef struct {
type glsl_samplers_info (line 701) | typedef struct {
type shader (line 708) | typedef struct {
type scene_metrics (line 848) | typedef struct {
type razor_results (line 853) | typedef struct {
function vector4f_convert_to_local_space (line 1168) | static inline __attribute__((always_inline)) void vector4f_convert_to_lo...
function nearest_po2 (line 1190) | static inline __attribute__((always_inline)) uint32_t nearest_po2(uint32...
FILE: source/tests.c
function change_depth_write (line 65) | inline __attribute__((always_inline)) void change_depth_write(SceGxmDept...
function change_depth_func (line 71) | inline __attribute__((always_inline)) void change_depth_func() {
function invalidate_depth_test (line 80) | inline __attribute__((always_inline)) void invalidate_depth_test() {
function validate_depth_test (line 89) | inline __attribute__((always_inline)) void validate_depth_test() {
function invalidate_viewport (line 97) | inline __attribute__((always_inline)) void invalidate_viewport() {
function validate_viewport (line 107) | inline __attribute__((always_inline)) void validate_viewport() {
function refresh_stencil_settings (line 117) | inline __attribute__((always_inline)) void refresh_stencil_settings() {
function GLboolean (line 153) | inline __attribute__((always_inline)) GLboolean change_stencil_config(Sc...
function GLboolean (line 186) | inline __attribute__((always_inline)) GLboolean change_stencil_func_conf...
function update_alpha_test_settings (line 219) | inline __attribute__((always_inline)) void update_alpha_test_settings() {
function update_scissor_test (line 255) | void update_scissor_test() {
function resetScissorTestRegion (line 347) | void resetScissorTestRegion(void) {
function glScissor (line 360) | void glScissor(GLint x, GLint y, GLsizei width, GLsizei height) {
function glDepthFunc (line 404) | void glDepthFunc(GLenum func) {
function glClearDepth (line 439) | void glClearDepth(GLdouble depth) {
function glClearDepthf (line 444) | void glClearDepthf(GLclampf depth) {
function glClearDepthx (line 449) | void glClearDepthx(GLclampx depth) {
function glDepthMask (line 454) | void glDepthMask(GLboolean flag) {
function glAlphaFunc (line 467) | void glAlphaFunc(GLenum func, GLfloat ref) {
function glAlphaFuncx (line 474) | void glAlphaFuncx(GLenum func, GLfixed ref) {
function glStencilOpSeparate (line 481) | void glStencilOpSeparate(GLenum face, GLenum sfail, GLenum dpfail, GLenu...
function glStencilOp (line 532) | void glStencilOp(GLenum sfail, GLenum dpfail, GLenum dppass) {
function glStencilFuncSeparate (line 536) | void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint m...
function glStencilFunc (line 569) | void glStencilFunc(GLenum func, GLint ref, GLuint mask) {
function glStencilMaskSeparate (line 573) | void glStencilMaskSeparate(GLenum face, GLuint mask) {
function glStencilMask (line 591) | void glStencilMask(GLuint mask) {
function glClearStencil (line 595) | void glClearStencil(GLint s) {
FILE: source/texture_callbacks.c
function readBGRA (line 31) | uint32_t readBGRA(const void *data) {
function readRGBA (line 37) | uint32_t readRGBA(const void *data) {
function readABGR (line 43) | uint32_t readABGR(const void *data) {
function readARGB (line 49) | uint32_t readARGB(const void *data) {
function readRGBA5551 (line 55) | uint32_t readRGBA5551(const void *data) {
function readARGB1555 (line 66) | uint32_t readARGB1555(const void *data) {
function readABGR1555 (line 77) | uint32_t readABGR1555(const void *data) {
function readRGBA4444 (line 88) | uint32_t readRGBA4444(const void *data) {
function readRGB565 (line 99) | uint32_t readRGB565(const void *data) {
function readBGR (line 109) | uint32_t readBGR(const void *data) {
function readRGB (line 115) | uint32_t readRGB(const void *data) {
function readRG (line 121) | uint32_t readRG(const void *data) {
function readR (line 127) | uint32_t readR(const void *data) {
function readL (line 132) | uint32_t readL(const void *data) {
function readLA (line 138) | uint32_t readLA(const void *data) {
function writeRGBA (line 146) | void writeRGBA(void *data, uint32_t color) {
function writeABGR (line 156) | void writeABGR(void *data, uint32_t color) {
function writeBGRA (line 166) | void writeBGRA(void *data, uint32_t color) {
function writeRGB (line 176) | void writeRGB(void *data, uint32_t color) {
function writeBGR (line 185) | void writeBGR(void *data, uint32_t color) {
function writeRG (line 194) | void writeRG(void *data, uint32_t color) {
function writeRA (line 202) | void writeRA(void *data, uint32_t color) {
function writeR (line 210) | void writeR(void *data, uint32_t color) {
FILE: source/textures.c
function _glTexParameterx (line 84) | static inline __attribute__((always_inline)) void _glTexParameterx(textu...
function _glTexParameteri (line 278) | static inline __attribute__((always_inline)) void _glTexParameteri(textu...
function _glTexImage2D_CubeIMPL (line 472) | static inline __attribute__((always_inline)) void _glTexImage2D_CubeIMPL...
function _glTexImage2D_FlatIMPL (line 589) | static inline __attribute__((always_inline)) void _glTexImage2D_FlatIMPL...
function _glTexSubImage2D (line 933) | static inline __attribute__((always_inline)) void _glTexSubImage2D(textu...
FILE: source/utils/atitc_utils.c
function atitc_decode_block (line 24) | static void atitc_decode_block(uint8_t **blockData,
function atitc_decode (line 149) | void atitc_decode(uint8_t *encodeData, //in_data
FILE: source/utils/atitc_utils.h
type ATITCDecodeFlag (line 24) | typedef enum {
FILE: source/utils/eac_utils.c
function DETEX_INLINE_ONLY (line 91) | static DETEX_INLINE_ONLY int modifier_times_multiplier(int modifier, int...
function DETEX_INLINE_ONLY (line 95) | static DETEX_INLINE_ONLY void ProcessPixelEAC(uint8_t i, uint64_t pixels,
function detexDecompressBlockETC2_EAC (line 105) | bool detexDecompressBlockETC2_EAC(const uint8_t * DETEX_RESTRICT bitstri...
function detexGetModeETC2_EAC (line 140) | uint32_t detexGetModeETC2_EAC(const uint8_t *bitstring) {
function detexSetModeETC2_EAC (line 144) | void detexSetModeETC2_EAC(uint8_t *bitstring, uint32_t mode, uint32_t fl...
function DETEX_INLINE_ONLY (line 149) | static DETEX_INLINE_ONLY int Clamp0To2047(int x) {
function DETEX_INLINE_ONLY (line 162) | static DETEX_INLINE_ONLY void DecodeBlockEAC11Bit(uint64_t qword, int sh...
function detexDecompressBlockEAC_R11 (line 183) | bool detexDecompressBlockEAC_R11(const uint8_t * DETEX_RESTRICT bitstrin...
function detexDecompressBlockEAC_RG11 (line 195) | bool detexDecompressBlockEAC_RG11(const uint8_t * DETEX_RESTRICT bitstri...
function DETEX_INLINE_ONLY (line 210) | static DETEX_INLINE_ONLY int ClampMinus1023To1023(int x) {
function DETEX_INLINE_ONLY (line 218) | static DETEX_INLINE_ONLY uint32_t ReplicateSigned11BitsTo16Bits(int valu...
function DETEX_INLINE_ONLY (line 231) | static DETEX_INLINE_ONLY bool DecodeBlockEACSigned11Bit(uint64_t qword, ...
function detexDecompressBlockEAC_SIGNED_R11 (line 257) | bool detexDecompressBlockEAC_SIGNED_R11(const uint8_t * DETEX_RESTRICT b...
function detexDecompressBlockEAC_SIGNED_RG11 (line 268) | bool detexDecompressBlockEAC_SIGNED_RG11(const uint8_t * DETEX_RESTRICT ...
function eac_decode (line 285) | void eac_decode(uint8_t *encodeData, //in_data
FILE: source/utils/eac_utils.h
type EACDecodeFlag (line 22) | typedef enum {
type detexTexture (line 739) | typedef struct {
function DETEX_INLINE_ONLY (line 889) | static DETEX_INLINE_ONLY int detexGetPixelSize(uint32_t pixel_format) {
function DETEX_INLINE_ONLY (line 894) | static DETEX_INLINE_ONLY int detexGetNumberOfComponents(uint32_t pixel_f...
function DETEX_INLINE_ONLY (line 899) | static DETEX_INLINE_ONLY int detexGetComponentSize(uint32_t pixel_format) {
function DETEX_INLINE_ONLY (line 904) | static DETEX_INLINE_ONLY uint32_t detexGetComponentPrecision(uint32_t pi...
function DETEX_INLINE_ONLY (line 911) | static DETEX_INLINE_ONLY uint32_t detexTextureSize(uint32_t width_in_blo...
function DETEX_INLINE_ONLY (line 917) | static DETEX_INLINE_ONLY uint32_t detexFormatHasAlpha(uint32_t pixel_for...
function DETEX_INLINE_ONLY (line 923) | static DETEX_INLINE_ONLY uint32_t detexGetCompressedFormat(uint32_t text...
function DETEX_INLINE_ONLY (line 928) | static DETEX_INLINE_ONLY uint32_t detexGetCompressedBlockSize(uint32_t t...
function DETEX_INLINE_ONLY (line 933) | static DETEX_INLINE_ONLY uint32_t detexFormatIsCompressed(uint32_t textu...
function DETEX_INLINE_ONLY (line 938) | static DETEX_INLINE_ONLY uint32_t detexGetPixelFormat(uint32_t texture_f...
function DETEX_INLINE_ONLY (line 945) | static DETEX_INLINE_ONLY uint8_t detexClamp0To255(int x) {
function DETEX_INLINE_ONLY (line 950) | static DETEX_INLINE_ONLY float detexClamp0To1(float f) {
function DETEX_INLINE_ONLY (line 965) | static DETEX_INLINE_ONLY uint32_t detexDivide0To767By3(uint32_t value) {
function DETEX_INLINE_ONLY (line 971) | static DETEX_INLINE_ONLY uint32_t detexDivide0To1791By7(uint32_t value) {
function DETEX_INLINE_ONLY (line 975) | static DETEX_INLINE_ONLY int8_t detexSignInt32(int v) {
function DETEX_INLINE_ONLY (line 979) | static DETEX_INLINE_ONLY int detexDivideMinus895To895By7(int value) {
function DETEX_INLINE_ONLY (line 985) | static DETEX_INLINE_ONLY uint32_t detexDivide0To1279By5(uint32_t value) {
function DETEX_INLINE_ONLY (line 989) | static DETEX_INLINE_ONLY int detexDivideMinus639To639By5(int value) {
function DETEX_INLINE_ONLY (line 1017) | static DETEX_INLINE_ONLY uint32_t detexPack32RGBA8(int r, int g, int b, ...
function DETEX_INLINE_ONLY (line 1022) | static DETEX_INLINE_ONLY uint32_t detexPack32RGB8Alpha0xFF(int r, int g,...
function DETEX_INLINE_ONLY (line 1026) | static DETEX_INLINE_ONLY uint32_t detexPack32R8(int r) {
function DETEX_INLINE_ONLY (line 1030) | static DETEX_INLINE_ONLY uint32_t detexPack32G8(int g) {
function DETEX_INLINE_ONLY (line 1034) | static DETEX_INLINE_ONLY uint32_t detexPack32B8(int b) {
function DETEX_INLINE_ONLY (line 1038) | static DETEX_INLINE_ONLY uint32_t detexPack32A8(int a) {
function DETEX_INLINE_ONLY (line 1042) | static DETEX_INLINE_ONLY uint32_t detexPack32RG8(uint32_t r8, uint32_t g...
function DETEX_INLINE_ONLY (line 1046) | static DETEX_INLINE_ONLY uint32_t detexPack32R16(uint32_t r16) {
function DETEX_INLINE_ONLY (line 1050) | static DETEX_INLINE_ONLY uint32_t detexPack32G16(uint32_t g16) {
function DETEX_INLINE_ONLY (line 1054) | static DETEX_INLINE_ONLY uint32_t detexPack32RG16(uint32_t r16, uint32_t...
function DETEX_INLINE_ONLY (line 1058) | static DETEX_INLINE_ONLY uint64_t detexPack64R16(uint32_t r16) {
function DETEX_INLINE_ONLY (line 1062) | static DETEX_INLINE_ONLY uint64_t detexPack64G16(uint32_t g16) {
function DETEX_INLINE_ONLY (line 1066) | static DETEX_INLINE_ONLY uint64_t detexPack64B16(uint32_t b16) {
function DETEX_INLINE_ONLY (line 1070) | static DETEX_INLINE_ONLY uint64_t detexPack64A16(uint32_t a16) {
function DETEX_INLINE_ONLY (line 1074) | static DETEX_INLINE_ONLY uint64_t detexPack64RGB16(uint16_t r16, uint16_...
function DETEX_INLINE_ONLY (line 1078) | static DETEX_INLINE_ONLY uint64_t detexPack64RGBA16(uint16_t r16, uint16...
function DETEX_INLINE_ONLY (line 1082) | static DETEX_INLINE_ONLY uint32_t detexPixel32GetR8(uint32_t pixel) {
function DETEX_INLINE_ONLY (line 1086) | static DETEX_INLINE_ONLY uint32_t detexPixel32GetG8(uint32_t pixel) {
function DETEX_INLINE_ONLY (line 1090) | static DETEX_INLINE_ONLY uint32_t detexPixel32GetB8(uint32_t pixel) {
function DETEX_INLINE_ONLY (line 1094) | static DETEX_INLINE_ONLY uint32_t detexPixel32GetA8(uint32_t pixel) {
function DETEX_INLINE_ONLY (line 1098) | static DETEX_INLINE_ONLY int detexPixel32GetSignedR8(uint32_t pixel) {
function DETEX_INLINE_ONLY (line 1102) | static DETEX_INLINE_ONLY int detexPixel32GetSignedG8(uint32_t pixel) {
function DETEX_INLINE_ONLY (line 1106) | static DETEX_INLINE_ONLY uint32_t detexPixel32GetR16(uint32_t pixel) {
function DETEX_INLINE_ONLY (line 1110) | static DETEX_INLINE_ONLY uint32_t detexPixel32GetG16(uint32_t pixel) {
function DETEX_INLINE_ONLY (line 1114) | static DETEX_INLINE_ONLY int detexPixel32GetSignedR16(uint32_t pixel) {
function DETEX_INLINE_ONLY (line 1118) | static DETEX_INLINE_ONLY int detexPixel32GetSignedG16(uint32_t pixel) {
function DETEX_INLINE_ONLY (line 1122) | static DETEX_INLINE_ONLY uint64_t detexPixel64GetR16(uint64_t pixel) {
function DETEX_INLINE_ONLY (line 1126) | static DETEX_INLINE_ONLY uint64_t detexPixel64GetG16(uint64_t pixel) {
function DETEX_INLINE_ONLY (line 1130) | static DETEX_INLINE_ONLY uint64_t detexPixel64GetB16(uint64_t pixel) {
function DETEX_INLINE_ONLY (line 1134) | static DETEX_INLINE_ONLY uint64_t detexPixel64GetA16(uint64_t pixel) {
function DETEX_INLINE_ONLY (line 1144) | static DETEX_INLINE_ONLY uint32_t detexPack32RGBA8(int r, int g, int b, ...
function DETEX_INLINE_ONLY (line 1148) | static DETEX_INLINE_ONLY uint32_t detexPack32RGB8Alpha0xFF(int r, int g,...
function DETEX_INLINE_ONLY (line 1152) | static DETEX_INLINE_ONLY uint32_t detexPack32R8(int r) {
function DETEX_INLINE_ONLY (line 1156) | static DETEX_INLINE_ONLY uint32_t detexPack32G8(int g) {
function DETEX_INLINE_ONLY (line 1160) | static DETEX_INLINE_ONLY uint32_t detexPack32B8(int b) {
function DETEX_INLINE_ONLY (line 1164) | static DETEX_INLINE_ONLY uint32_t detexPack32A8(int a) {
function DETEX_INLINE_ONLY (line 1168) | static DETEX_INLINE_ONLY uint32_t detexPack32RG16(uint32_t r16, uint32_t...
function DETEX_INLINE_ONLY (line 1172) | static DETEX_INLINE_ONLY int detexPixel32GetR8(uint32_t pixel) {
function DETEX_INLINE_ONLY (line 1176) | static DETEX_INLINE_ONLY int detexPixel32GetG8(uint32_t pixel) {
function DETEX_INLINE_ONLY (line 1180) | static DETEX_INLINE_ONLY int detexPixel32GetB8(uint32_t pixel) {
function DETEX_INLINE_ONLY (line 1184) | static DETEX_INLINE_ONLY int detexPixel32GetA8(uint32_t pixel) {
function DETEX_INLINE_ONLY (line 1188) | static DETEX_INLINE_ONLY uint32_t detexPixel32GetR16(uint32_t pixel) {
function DETEX_INLINE_ONLY (line 1192) | static DETEX_INLINE_ONLY uint32_t detexPixel32GetG16(uint32_t pixel) {
FILE: source/utils/etc1_utils.c
function etc1_byte (line 29) | static inline etc1_byte clamp(int x) {
function convert4To8 (line 33) | static inline int convert4To8(int b) {
function convert5To8 (line 38) | static inline int convert5To8(int b) {
function convert6To8 (line 43) | static inline int convert6To8(int b) {
function divideBy255 (line 48) | static inline int divideBy255(int d) {
function convert8To4 (line 52) | static inline int convert8To4(int b) {
function convert8To5 (line 57) | static inline int convert8To5(int b) {
function convertDiff (line 62) | static inline int convertDiff(int base, int diff) {
function decode_subblock (line 66) | static
function etc1_decode_block (line 99) | void etc1_decode_block(const etc1_byte* pIn, etc1_byte* pOut) {
function etc1_decode_image (line 138) | int etc1_decode_image(const etc1_byte* pIn, etc1_byte* pOut,
FILE: source/utils/etc1_utils.h
type etc1_byte (line 11) | typedef unsigned char etc1_byte;
type etc1_bool (line 12) | typedef int etc1_bool;
type etc1_uint32 (line 13) | typedef unsigned int etc1_uint32;
FILE: source/utils/etc_utils.c
function DETEX_INLINE_ONLY (line 36) | static DETEX_INLINE_ONLY int clamp2047(int x) {
function DETEX_INLINE_ONLY (line 44) | static DETEX_INLINE_ONLY int clamp1023_signed(int x) {
function DETEX_INLINE_ONLY (line 54) | static DETEX_INLINE_ONLY int complement3bitshifted(int x) {
function DETEX_INLINE_ONLY (line 58) | static DETEX_INLINE_ONLY int complement3bitshifted_slow(int x) {
function DETEX_INLINE_ONLY (line 64) | static DETEX_INLINE_ONLY int complement3bit(int x) {
function DETEX_INLINE_ONLY (line 72) | static DETEX_INLINE_ONLY void ProcessPixelETC1(uint8_t i, uint32_t pixel...
function detexDecompressBlockETC1 (line 89) | bool detexDecompressBlockETC1(const uint8_t * DETEX_RESTRICT bitstring, ...
function detexGetModeETC1 (line 183) | uint32_t detexGetModeETC1(const uint8_t *bitstring) {
function detexSetModeETC1 (line 192) | void detexSetModeETC1(uint8_t *bitstring, uint32_t mode, uint32_t flags,
function ProcessBlockETC2TOrHMode (line 202) | static void ProcessBlockETC2TOrHMode(const uint8_t * DETEX_RESTRICT bits...
function ProcessBlockETC2PlanarMode (line 287) | static void ProcessBlockETC2PlanarMode(const uint8_t * DETEX_RESTRICT bi...
function detexDecompressBlockETC2 (line 321) | bool detexDecompressBlockETC2(const uint8_t * DETEX_RESTRICT bitstring, ...
function detexGetModeETC2 (line 370) | uint32_t detexGetModeETC2(const uint8_t *bitstring) {
function SetModeETC2THP (line 397) | static void SetModeETC2THP(uint8_t *bitstring, uint32_t mode) {
function detexSetModeETC2 (line 460) | void detexSetModeETC2(uint8_t *bitstring, uint32_t mode, uint32_t flags,
function DETEX_INLINE_ONLY (line 486) | static DETEX_INLINE_ONLY void ProcessPixelETC2Punchthrough(uint8_t i,
function ProcessBlockETC2PunchthroughDifferentialMode (line 503) | void ProcessBlockETC2PunchthroughDifferentialMode(const uint8_t * DETEX_...
function ProcessBlockETC2PunchthroughTOrHMode (line 565) | static void ProcessBlockETC2PunchthroughTOrHMode(const uint8_t * DETEX_R...
function detexDecompressBlockETC2_PUNCHTHROUGH (line 653) | bool detexDecompressBlockETC2_PUNCHTHROUGH(const uint8_t * DETEX_RESTRIC...
function detexGetModeETC2_PUNCHTHROUGH (line 721) | uint32_t detexGetModeETC2_PUNCHTHROUGH(const uint8_t *bitstring) {
function detexSetModeETC2_PUNCHTHROUGH (line 744) | void detexSetModeETC2_PUNCHTHROUGH(uint8_t *bitstring, uint32_t mode, ui...
FILE: source/utils/glsl_utils.c
function glsl_translate_with_shader_pair (line 100) | void glsl_translate_with_shader_pair(char *text, GLenum type, GLboolean ...
function glsl_translate_with_global (line 486) | void glsl_translate_with_global(char *text, GLenum type, GLboolean hasFr...
function glsl_handle_globals (line 712) | void glsl_handle_globals(char *txt, char *out, GLsizei preamble_size) {
function glsl_handle_tex_size (line 790) | void glsl_handle_tex_size(char *txt, GLsizei preamble_size, glsl_sampler...
function glsl_inject_mul (line 835) | void glsl_inject_mul(char *txt, char *out, GLsizei preamble_size) {
function glsl_nuke_comments (line 993) | void glsl_nuke_comments(char *txt) {
function glsl_translator_process (line 1022) | void glsl_translator_process(shader *s) {
function glsl_translator_set_process (line 1333) | void glsl_translator_set_process(shader *vs, shader *fs) {
FILE: source/utils/glsl_utils.h
type glsl_sema_bind (line 32) | typedef struct {
FILE: source/utils/gpu_utils.c
function morton_1 (line 48) | static inline __attribute__((always_inline)) uint64_t morton_1(uint64_t ...
function d2xy_morton (line 58) | static inline __attribute__((always_inline)) void d2xy_morton(uint64_t d...
function extract_block (line 63) | static inline __attribute__((always_inline)) void extract_block(const ui...
function dxt_compress (line 70) | void dxt_compress(uint8_t *dst, uint8_t *src, int w, int h, int isdxt5) {
function gpu_vertex_usse_free_mapped (line 227) | void gpu_vertex_usse_free_mapped(void *addr) {
function gpu_fragment_usse_free_mapped (line 246) | void gpu_fragment_usse_free_mapped(void *addr) {
function SceGxmTransferFormat (line 254) | static inline __attribute__((always_inline)) SceGxmTransferFormat tex_fo...
function tex_format_to_alignment (line 275) | static inline __attribute__((always_inline)) int tex_format_to_alignment...
function gpu_alloc_cube_texture (line 299) | void gpu_alloc_cube_texture(uint32_t w, uint32_t h, SceGxmTextureFormat ...
function gpu_alloc_texture (line 348) | void gpu_alloc_texture(uint32_t w, uint32_t h, SceGxmTextureFormat forma...
function gpu_alloc_paletted_texture (line 409) | void gpu_alloc_paletted_texture(int32_t level, uint32_t w, uint32_t h, S...
function gpu_get_compressed_mip_size (line 462) | static inline __attribute__((always_inline)) int gpu_get_compressed_mip_...
function gpu_get_compressed_mipchain_size (line 486) | static inline __attribute__((always_inline)) int gpu_get_compressed_mipc...
function gpu_get_compressed_mip_offset (line 500) | static inline __attribute__((always_inline)) int gpu_get_compressed_mip_...
function gpu_alloc_compressed_cube_texture (line 504) | void gpu_alloc_compressed_cube_texture(uint32_t w, uint32_t h, SceGxmTex...
function gpu_alloc_compressed_texture (line 581) | void gpu_alloc_compressed_texture(int32_t mip_level, uint32_t w, uint32_...
function gpu_alloc_mipmaps (line 690) | void gpu_alloc_mipmaps(int level, texture *tex) {
function gpu_free_palette (line 795) | void gpu_free_palette(void *pal) {
function gpu_alloc_planar_texture (line 801) | void gpu_alloc_planar_texture(uint32_t w, uint32_t h, SceGxmTextureForma...
FILE: source/utils/gpu_utils.h
function tex_format_to_bytespp (line 76) | static inline __attribute__((always_inline)) int tex_format_to_bytespp(S...
function gpu_free_texture_data (line 127) | static inline __attribute__((always_inline)) void gpu_free_texture_data(...
function gpu_free_texture (line 179) | static inline __attribute__((always_inline)) void gpu_free_texture(textu...
FILE: source/utils/gxm_utils.c
function vglSetupUniformCircularPool (line 32) | void vglSetupUniformCircularPool() {
FILE: source/utils/gxm_utils.h
function vglRestoreFragmentUniformBuffer (line 36) | static inline __attribute__((always_inline)) void vglRestoreFragmentUnif...
function vglRestoreVertexUniformBuffer (line 40) | static inline __attribute__((always_inline)) void vglRestoreVertexUnifor...
type SceGxmTextureInternal (line 56) | typedef struct {
function vglSetTexUMode (line 61) | static inline __attribute__((always_inline)) void vglSetTexUMode(SceGxmT...
function vglSetTexVMode (line 65) | static inline __attribute__((always_inline)) void vglSetTexVMode(SceGxmT...
function vglSetTexMinFilter (line 69) | static inline __attribute__((always_inline)) void vglSetTexMinFilter(Sce...
function vglSetTexMagFilter (line 73) | static inline __attribute__((always_inline)) void vglSetTexMagFilter(Sce...
function vglSetTexMipFilter (line 77) | static inline __attribute__((always_inline)) void vglSetTexMipFilter(Sce...
function vglSetTexLodBias (line 81) | static inline __attribute__((always_inline)) void vglSetTexLodBias(SceGx...
function vglSetTexMipmapCount (line 85) | static inline __attribute__((always_inline)) void vglSetTexMipmapCount(S...
function vglSetTexGammaMode (line 89) | static inline __attribute__((always_inline)) void vglSetTexGammaMode(Sce...
function vglSetTexPalette (line 93) | static inline __attribute__((always_inline)) void vglSetTexPalette(SceGx...
function vglInitLinearTexture (line 97) | static inline __attribute__((always_inline)) void vglInitLinearTexture(S...
function vglInitCubeTexture (line 104) | static inline __attribute__((always_inline)) void vglInitCubeTexture(Sce...
function vglInitSwizzledTexture (line 111) | static inline __attribute__((always_inline)) void vglInitSwizzledTexture...
function vglDepthStencilSurfaceInit (line 122) | static inline __attribute__((always_inline)) int vglDepthStencilSurfaceI...
FILE: source/utils/math_utils.h
type vector2f (line 36) | typedef struct {
type vector3f (line 41) | typedef struct {
type vector4f (line 48) | typedef struct {
function matrix4x4_identity (line 62) | static inline __attribute__((always_inline)) void matrix4x4_identity(mat...
function matrix4x4_copy (line 68) | static inline __attribute__((always_inline)) void matrix4x4_copy(matrix4...
function matrix4x4_multiply (line 73) | static inline __attribute__((always_inline)) void matrix4x4_multiply(mat...
function matrix4x4_rotate (line 78) | static inline __attribute__((always_inline)) void matrix4x4_rotate(matri...
function matrix4x4_translate (line 107) | static inline __attribute__((always_inline)) void matrix4x4_translate(ma...
function matrix4x4_scale (line 119) | static inline __attribute__((always_inline)) void matrix4x4_scale(matrix...
function matrix2x2_transpose (line 132) | static inline __attribute__((always_inline)) void matrix2x2_transpose(ma...
function matrix3x3_transpose (line 138) | static inline __attribute__((always_inline)) void matrix3x3_transpose(ma...
function matrix4x4_transpose (line 144) | static inline __attribute__((always_inline)) void matrix4x4_transpose(ma...
function matrix4x4_init_orthographic (line 152) | static inline __attribute__((always_inline)) void matrix4x4_init_orthogr...
function matrix4x4_init_frustum (line 162) | static inline __attribute__((always_inline)) void matrix4x4_init_frustum...
function matrix4x4_init_perspective (line 172) | static inline __attribute__((always_inline)) void matrix4x4_init_perspec...
function matrix3x3_invert (line 180) | static inline __attribute__((always_inline)) int matrix3x3_invert(matrix...
function matrix4x4_invert (line 209) | static inline __attribute__((always_inline)) int matrix4x4_invert(matrix...
function vector4f_matrix4x4_mult (line 247) | static inline __attribute__((always_inline)) void vector4f_matrix4x4_mul...
function vector3f_cross_product (line 255) | static inline __attribute__((always_inline)) void vector3f_cross_product...
function vector4f_normalize (line 262) | static inline __attribute__((always_inline)) void vector4f_normalize(vec...
FILE: source/utils/mem_utils.c
type tm_block_t (line 48) | typedef struct tm_block_s {
function tm_block_t (line 65) | static inline tm_block_t *heap_blk_new(void) {
function heap_blk_release (line 70) | static inline void heap_blk_release(tm_block_t *block) {
function heap_blk_mergeable (line 78) | static inline int heap_blk_mergeable(tm_block_t *a, tm_block_t *b) {
function heap_blk_insert_free (line 86) | static void heap_blk_insert_free(tm_block_t *block) {
function tm_block_t (line 117) | static tm_block_t *heap_blk_alloc(int32_t type, uint32_t size, uint32_t ...
function heap_blk_free (line 195) | static void heap_blk_free(uintptr_t base) {
function heap_init (line 228) | static void heap_init(void) {
function heap_destroy (line 237) | static void heap_destroy(void) {
function heap_extend (line 256) | static void heap_extend(int32_t type, void *base, uint32_t size) {
function vgl_mem_term (line 299) | void vgl_mem_term(void) {
function vgl_mem_init (line 321) | void vgl_mem_init(size_t size_ram, size_t size_cdram, size_t size_phycon...
function vglMemType (line 407) | vglMemType vgl_mem_get_type_by_addr(void *addr) {
function vgl_mem_get_free_space (line 433) | size_t vgl_mem_get_free_space(vglMemType type) {
function else (line 461) | else if (mempool_size[type]) {
function vgl_mem_get_total_space (line 470) | size_t vgl_mem_get_total_space(vglMemType type) {
function vgl_malloc_usable_size (line 482) | size_t vgl_malloc_usable_size(void *ptr) {
function vgl_free (line 498) | void vgl_free(void *ptr) {
function else (line 593) | else if (type == VGL_MEM_SLOW) {
FILE: source/utils/mem_utils.h
type render_target (line 64) | typedef struct {
function vgl_memcpy (line 110) | static inline __attribute__((always_inline)) void vgl_memcpy(void *dst, ...
FILE: source/utils/preprocessor/expression.cpp
type expression (line 14) | namespace expression
type Node (line 16) | struct Node
method Node (line 18) | Node() : child(NULL), child2(NULL)
function advance (line 44) | void advance()
function getType (line 55) | int getType()
function fail (line 66) | void fail(const char* err)
function Node (line 73) | Node* parse_factor()
method Node (line 18) | Node() : child(NULL), child2(NULL)
function Node (line 125) | Node* parse_term()
method Node (line 18) | Node() : child(NULL), child2(NULL)
function Node (line 151) | Node* parse_additive_exp()
method Node (line 18) | Node() : child(NULL), child2(NULL)
function Node (line 177) | Node* parse_shift_exp()
method Node (line 18) | Node() : child(NULL), child2(NULL)
function Node (line 203) | Node* parse_relational_exp()
method Node (line 18) | Node() : child(NULL), child2(NULL)
function Node (line 238) | Node* parse_equality_exp()
method Node (line 18) | Node() : child(NULL), child2(NULL)
function Node (line 264) | Node* parse_bitwise_and_exp()
method Node (line 18) | Node() : child(NULL), child2(NULL)
function Node (line 287) | Node* parse_bitwise_xor_exp()
method Node (line 18) | Node() : child(NULL), child2(NULL)
function Node (line 310) | Node* parse_bitwise_or_exp()
method Node (line 18) | Node() : child(NULL), child2(NULL)
function Node (line 333) | Node* parse_and_exp()
method Node (line 18) | Node() : child(NULL), child2(NULL)
function Node (line 356) | Node* parse_or_exp()
method Node (line 18) | Node() : child(NULL), child2(NULL)
function Node (line 378) | Node* parse_exp()
method Node (line 18) | Node() : child(NULL), child2(NULL)
function processTree (line 386) | void processTree(Node* node)
function evaluate (line 625) | long long int evaluate(std::list<Token> line, std::string fname, int l...
FILE: source/utils/preprocessor/expression.h
type Token (line 5) | struct Token
function namespace (line 11) | namespace expression
FILE: source/utils/preprocessor/preprocessor.cpp
type preprocessor (line 22) | namespace preprocessor
type Var (line 137) | struct Var
function wrtError (line 165) | void wrtError(string msg)
function replace (line 177) | void replace(list<Token> &mylist, list<Token>::iterator st, list<Token...
function replace (line 199) | void replace(list<Token>& mylist, list<Token>::iterator st, list<Token...
function Token (line 226) | Token getTok(char* st, char** ed, bool *skipped)
function getTokLine (line 470) | list<Token> getTokLine(char* buff)
function writeTok (line 534) | void writeTok(Token tok)
function string (line 576) | string tok2Str(Token tok)
function string (line 622) | string tok2StrArgs(Token tok, list<Token> stringActuals, list<string> ...
function writeLine (line 653) | void writeLine(list<Token> line)
function expand (line 756) | bool expand(list<Token>& line, map<string,Var>& vars, set<string> used)
function string (line 986) | string findIncludeFile(string file, string include, const list<string>...
function expandIfFuncs (line 1032) | void expandIfFuncs(list<Token>& line, map<string, Var>& vars, const li...
function expandIf (line 1166) | void expandIf(list<Token>& line, map<string,Var>& vars, const list<str...
function mismatched (line 1191) | bool mismatched(list<Token> &line, map<string,Var> &vars)
function setLineFile (line 1229) | void setLineFile(int lineno, string fname, map<string, Var>& vars)
function preventDefinedExpand (line 1249) | void preventDefinedExpand(list<Token> &val)
function processLine (line 1283) | void processLine(list<list<Token>>::iterator &it_line, map<string,Var>...
function processFile (line 1795) | void processFile(string fname, map<string,Var> &vars, const list<strin...
function string (line 1950) | string preprocess(string mode, string infile, string outfile, list<str...
function glsl_preprocess (line 2139) | void glsl_preprocess(char *mode, const char *infile, char *output) {
FILE: source/utils/shacccg_paramquery.h
type SceShaccCgCompileOutput (line 15) | typedef struct SceShaccCgCompileOutput SceShaccCgCompileOutput;
type SceShaccCgParameterClass (line 25) | typedef enum SceShaccCgParameterClass {
type SceShaccCgParameterBaseType (line 40) | typedef enum SceShaccCgParameterBaseType {
type SceShaccCgParameterMemoryLayout (line 75) | typedef enum SceShaccCgParameterMemoryLayout
type SceShaccCgParameterVariability (line 86) | typedef enum SceShaccCgParameterVariability
type SceShaccCgParameterDirection (line 97) | typedef enum SceShaccCgParameterDirection
FILE: source/utils/stb_dxt.h
function stb__Mul8Bit (line 125) | static int stb__Mul8Bit(int a, int b) {
function stb__From16Bit (line 130) | static void stb__From16Bit(unsigned char *out, unsigned short v) {
function stb__As16Bit (line 141) | static unsigned short stb__As16Bit(int r, int g, int b) {
function stb__Lerp13 (line 146) | static int stb__Lerp13(int a, int b) {
function stb__Lerp13RGB (line 158) | static void stb__Lerp13RGB(unsigned char *out, unsigned char *p1, unsign...
function stb__PrepareOptTable (line 167) | static void stb__PrepareOptTable(unsigned char *Table, const unsigned ch...
function stb__EvalColors (line 193) | static void stb__EvalColors(unsigned char *color, unsigned short c0, uns...
function stb__DitherBlock (line 202) | static void stb__DitherBlock(unsigned char *dest, unsigned char *block) {
function stb__MatchColorsBlock (line 228) | static unsigned int stb__MatchColorsBlock(unsigned char *block, unsigned...
function stb__OptimizeColorsBlock (line 327) | static void stb__OptimizeColorsBlock(unsigned char *block, unsigned shor...
function stb__sclamp (line 429) | static int stb__sclamp(float y, int p0, int p1) {
function stb__RefineBlock (line 441) | static int stb__RefineBlock(unsigned char *block, unsigned short *pmax16...
function stb__CompressColorBlock (line 521) | static void stb__CompressColorBlock(unsigned char *dest, unsigned char *...
function stb__CompressAlphaBlock (line 593) | static void stb__CompressAlphaBlock(unsigned char *dest, unsigned char *...
function stb__InitDXT (line 649) | static void stb__InitDXT() {
function stb_compress_dxt_block (line 667) | void stb_compress_dxt_block(unsigned char *dest, const unsigned char *sr...
function stb_compress_bc4_block (line 690) | void stb_compress_bc4_block(unsigned char *dest, const unsigned char *sr...
function stb_compress_bc5_block (line 694) | void stb_compress_bc5_block(unsigned char *dest, const unsigned char *sr...
FILE: source/utils/texture_swizzler.cpp
function Part1By1 (line 17) | static inline uint32_t Part1By1(uint32_t x)
function Compact1By1 (line 27) | static inline uint32_t Compact1By1(uint32_t x)
function CopyPixel8Bpp (line 50) | static inline void CopyPixel8Bpp(uint8_t *dst, uint8_t *src)
function CopyPixel16Bpp (line 54) | static inline void CopyPixel16Bpp(uint8_t *dst, uint8_t *src)
function CopyPixel32Bpp (line 58) | static inline void CopyPixel32Bpp(uint8_t *dst, uint8_t *src)
function CopyPixel64Bpp (line 62) | static inline void CopyPixel64Bpp(uint8_t *dst, uint8_t *src)
function CopyPixel128Bpp (line 69) | static inline void CopyPixel128Bpp(uint8_t *dst, uint8_t *src)
function CopyETCBlock (line 76) | static void CopyETCBlock(uint8_t *dst, uint8_t *src)
function CopyTile8Bpp (line 82) | static inline void CopyTile8Bpp(uint8_t *dst, uint8_t *const *src, const...
function CopyTile16Bpp (line 121) | static inline void CopyTile16Bpp(uint8_t *dst, uint8_t *const *src, cons...
function CopyTile32Bpp (line 156) | static inline void CopyTile32Bpp(uint8_t *dst, uint8_t *const *src, cons...
function CopyTile64Bpp (line 191) | static inline void CopyTile64Bpp(uint8_t *dst, uint8_t *const *src, cons...
function CopyTile128Bpp (line 217) | static inline void CopyTile128Bpp(uint8_t *dst, uint8_t *const *src, con...
function CopyETC1Tile (line 245) | static inline void CopyETC1Tile(uint8_t *dst, uint8_t *const *src, const...
function SwizzleTexData8x8 (line 275) | static void SwizzleTexData8x8(uint8_t *dst, uint8_t *src, uint32_t x, ui...
function SwizzleTexData4x4 (line 310) | static void SwizzleTexData4x4(uint8_t *dst, uint8_t *src, uint32_t x, ui...
function SwizzleTexData2x2 (line 339) | static void SwizzleTexData2x2(uint8_t *dst, uint8_t *src, uint32_t x, ui...
function SwizzleTexData1x1 (line 366) | static void SwizzleTexData1x1(uint8_t *dst, uint8_t *src, uint32_t x, ui...
function SwizzleTexData (line 388) | static void SwizzleTexData(uint8_t *dst, uint8_t *src, uint32_t x, uint3...
function SwizzleTexData8Bpp (line 407) | void SwizzleTexData8Bpp(uint8_t *dst, uint8_t *src, uint32_t x, uint32_t...
function SwizzleTexData16Bpp (line 411) | void SwizzleTexData16Bpp(uint8_t *dst, uint8_t *src, uint32_t x, uint32_...
function SwizzleTexData32Bpp (line 415) | void SwizzleTexData32Bpp(uint8_t *dst, uint8_t *src, uint32_t x, uint32_...
function SwizzleTexData64Bpp (line 422) | void SwizzleTexData64Bpp(uint8_t *dst, uint8_t *src, uint32_t x, uint32_...
function SwizzleTexData128Bpp (line 426) | void SwizzleTexData128Bpp(uint8_t *dst, uint8_t *src, uint32_t x, uint32...
function SwizzleTexDataETC1 (line 430) | void SwizzleTexDataETC1(uint8_t *dst, uint8_t *src, uint32_t x, uint32_t...
FILE: source/utils/xxhash_utils.h
type XXH_errorcode (line 574) | typedef enum {
type XXH32_hash_t (line 589) | typedef uint32_t XXH32_hash_t;
type XXH32_hash_t (line 595) | typedef uint32_t XXH32_hash_t;
type XXH32_hash_t (line 600) | typedef unsigned int XXH32_hash_t;
type XXH32_hash_t (line 602) | typedef unsigned long XXH32_hash_t;
type XXH32_state_t (line 651) | typedef struct XXH32_state_s XXH32_state_t;
type XXH32_canonical_t (line 752) | typedef struct {
type XXH64_hash_t (line 864) | typedef uint64_t XXH64_hash_t;
type XXH64_hash_t (line 869) | typedef uint64_t XXH64_hash_t;
type XXH64_hash_t (line 874) | typedef unsigned long XXH64_hash_t;
type XXH64_hash_t (line 877) | typedef unsigned long long XXH64_hash_t;
type XXH64_state_t (line 921) | typedef struct XXH64_state_s XXH64_state_t;
type XXH64_canonical_t (line 1022) | typedef struct { unsigned char digest[sizeof(XXH64_hash_t)]; } XXH64_can...
type XXH3_state_t (line 1220) | typedef struct XXH3_state_s XXH3_state_t;
type XXH128_hash_t (line 1359) | typedef struct {
type XXH128_canonical_t (line 1582) | typedef struct { unsigned char digest[sizeof(XXH128_hash_t)]; } XXH128_c...
type XXH32_state_s (line 1649) | struct XXH32_state_s {
type XXH64_state_s (line 1673) | struct XXH64_state_s {
type XXH3_state_s (line 1748) | struct XXH3_state_s {
function XXH_CONSTF (line 2330) | static XXH_CONSTF void* XXH_malloc(size_t s) { (void)s; return NULL; }
function XXH_free (line 2331) | static void XXH_free(void* p) { (void)p; }
function XXH_MALLOCF (line 2345) | static XXH_MALLOCF void* XXH_malloc(size_t s) { return malloc(s); }
function XXH_free (line 2351) | static void XXH_free(void* p) { free(p); }
type xxh_u8 (line 2485) | typedef uint8_t xxh_u8;
type xxh_u8 (line 2487) | typedef unsigned char xxh_u8;
type XXH32_hash_t (line 2489) | typedef XXH32_hash_t xxh_u32;
function xxh_u32 (line 2561) | static xxh_u32 XXH_read32(const void* memPtr) { return *(const xxh_u32*)...
type unalign (line 2573) | typedef union { xxh_u32 u32; } __attribute__((packed)) unalign;
function xxh_u32 (line 2575) | static xxh_u32 XXH_read32(const void* ptr)
function xxh_u32 (line 2587) | static xxh_u32 XXH_read32(const void* memPtr)
function XXH_isLittleEndian (line 2634) | static int XXH_isLittleEndian(void)
function xxh_u32 (line 2745) | static xxh_u32 XXH_swap32 (xxh_u32 x)
type XXH_alignment (line 2763) | typedef enum {
function XXH_FORCE_INLINE (line 2775) | XXH_FORCE_INLINE xxh_u32 XXH_readLE32(const void* memPtr)
function XXH_FORCE_INLINE (line 2784) | XXH_FORCE_INLINE xxh_u32 XXH_readBE32(const void* memPtr)
function XXH_FORCE_INLINE (line 2794) | XXH_FORCE_INLINE xxh_u32 XXH_readLE32(const void* ptr)
function xxh_u32 (line 2799) | static xxh_u32 XXH_readBE32(const void* ptr)
function XXH_FORCE_INLINE (line 2805) | XXH_FORCE_INLINE xxh_u32
function XXH_versionNumber (line 2820) | XXH_PUBLIC_API unsigned XXH_versionNumber (void) { return XXH_VERSION_NU...
function xxh_u32 (line 2860) | static xxh_u32 XXH32_round(xxh_u32 acc, xxh_u32 input)
function xxh_u32 (line 2917) | static xxh_u32 XXH32_avalanche(xxh_u32 hash)
function XXH_PUREF (line 2944) | static XXH_PUREF xxh_u32
function xxh_u32 (line 3033) | xxh_u32
function XXH_PUBLIC_API (line 3067) | XXH_PUBLIC_API XXH32_hash_t XXH32 (const void* input, size_t len, XXH32_...
function XXH_PUBLIC_API (line 3090) | XXH_PUBLIC_API XXH32_state_t* XXH32_createState(void)
function XXH_PUBLIC_API (line 3095) | XXH_PUBLIC_API XXH_errorcode XXH32_freeState(XXH32_state_t* statePtr)
function XXH_PUBLIC_API (line 3102) | XXH_PUBLIC_API void XXH32_copyState(XXH32_state_t* dstState, const XXH32...
function XXH_PUBLIC_API (line 3108) | XXH_PUBLIC_API XXH_errorcode XXH32_reset(XXH32_state_t* statePtr, XXH32_...
function XXH_PUBLIC_API (line 3121) | XXH_PUBLIC_API XXH_errorcode
function XXH_PUBLIC_API (line 3176) | XXH_PUBLIC_API XXH32_hash_t XXH32_digest(const XXH32_state_t* state)
function XXH_PUBLIC_API (line 3198) | XXH_PUBLIC_API void XXH32_canonicalFromHash(XXH32_canonical_t* dst, XXH3...
function XXH_PUBLIC_API (line 3205) | XXH_PUBLIC_API XXH32_hash_t XXH32_hashFromCanonical(const XXH32_canonica...
type XXH64_hash_t (line 3223) | typedef XXH64_hash_t xxh_u64;
function xxh_u64 (line 3237) | static xxh_u64 XXH_read64(const void* memPtr)
type unalign64 (line 3252) | typedef union { xxh_u32 u32; xxh_u64 u64; } __attribute__((packed)) unal...
function xxh_u64 (line 3254) | static xxh_u64 XXH_read64(const void* ptr)
function xxh_u64 (line 3266) | static xxh_u64 XXH_read64(const void* memPtr)
function xxh_u64 (line 3280) | static xxh_u64 XXH_swap64(xxh_u64 x)
function XXH_FORCE_INLINE (line 3297) | XXH_FORCE_INLINE xxh_u64 XXH_readLE64(const void* memPtr)
function XXH_FORCE_INLINE (line 3310) | XXH_FORCE_INLINE xxh_u64 XXH_readBE64(const void* memPtr)
function XXH_FORCE_INLINE (line 3324) | XXH_FORCE_INLINE xxh_u64 XXH_readLE64(const void* ptr)
function xxh_u64 (line 3329) | static xxh_u64 XXH_readBE64(const void* ptr)
function XXH_FORCE_INLINE (line 3335) | XXH_FORCE_INLINE xxh_u64
function xxh_u64 (line 3370) | static xxh_u64 XXH64_round(xxh_u64 acc, xxh_u64 input)
function xxh_u64 (line 3378) | static xxh_u64 XXH64_mergeRound(xxh_u64 acc, xxh_u64 val)
function xxh_u64 (line 3387) | static xxh_u64 XXH64_avalanche(xxh_u64 hash)
function XXH_PUREF (line 3415) | static XXH_PUREF xxh_u64
function xxh_u64 (line 3459) | xxh_u64
function XXH_PUBLIC_API (line 3497) | XXH_PUBLIC_API XXH64_hash_t XXH64 (XXH_NOESCAPE const void* input, size_...
function XXH_PUBLIC_API (line 3519) | XXH_PUBLIC_API XXH64_state_t* XXH64_createState(void)
function XXH_PUBLIC_API (line 3524) | XXH_PUBLIC_API XXH_errorcode XXH64_freeState(XXH64_state_t* statePtr)
function XXH_PUBLIC_API (line 3531) | XXH_PUBLIC_API void XXH64_copyState(XXH_NOESCAPE XXH64_state_t* dstState...
function XXH_PUBLIC_API (line 3537) | XXH_PUBLIC_API XXH_errorcode XXH64_reset(XXH_NOESCAPE XXH64_state_t* sta...
function XXH_PUBLIC_API (line 3549) | XXH_PUBLIC_API XXH_errorcode
function XXH_PUBLIC_API (line 3601) | XXH_PUBLIC_API XXH64_hash_t XXH64_digest(XXH_NOESCAPE const XXH64_state_...
function XXH_PUBLIC_API (line 3624) | XXH_PUBLIC_API void XXH64_canonicalFromHash(XXH_NOESCAPE XXH64_canonical...
function XXH_PUBLIC_API (line 3632) | XXH_PUBLIC_API XXH64_hash_t XXH64_hashFromCanonical(XXH_NOESCAPE const X...
type XXH_VECTOR_TYPE (line 3811) | enum XXH_VECTOR_TYPE /* fake enum */ {
type uint64x2_t (line 3966) | typedef uint64x2_t xxh_aliasing_uint64x2_t
function XXH_FORCE_INLINE (line 3982) | XXH_FORCE_INLINE uint64x2_t XXH_vld1q_u64(void const* ptr) /* silence -W...
function XXH_FORCE_INLINE (line 3987) | XXH_FORCE_INLINE uint64x2_t XXH_vld1q_u64(void const* ptr)
function XXH_FORCE_INLINE (line 4002) | XXH_FORCE_INLINE uint64x2_t
function XXH_FORCE_INLINE (line 4009) | XXH_FORCE_INLINE uint64x2_t
function XXH_FORCE_INLINE (line 4017) | XXH_FORCE_INLINE uint64x2_t
function XXH_FORCE_INLINE (line 4024) | XXH_FORCE_INLINE uint64x2_t
type xxh_u64x2 (line 4115) | typedef __vector unsigned long long xxh_u64x2;
type xxh_u8x16 (line 4116) | typedef __vector unsigned char xxh_u8x16;
type xxh_u32x4 (line 4117) | typedef __vector unsigned xxh_u32x4;
type xxh_u64x2 (line 4122) | typedef xxh_u64x2 xxh_aliasing_u64x2
function XXH_FORCE_INLINE (line 4143) | XXH_FORCE_INLINE xxh_u64x2 XXH_vec_revb(xxh_u64x2 val)
function XXH_FORCE_INLINE (line 4155) | XXH_FORCE_INLINE xxh_u64x2 XXH_vec_loadu(const void *ptr)
function XXH_FORCE_INLINE (line 4183) | XXH_FORCE_INLINE xxh_u64x2 XXH_vec_mulo(xxh_u32x4 a, xxh_u32x4 b)
function XXH_FORCE_INLINE (line 4189) | XXH_FORCE_INLINE xxh_u64x2 XXH_vec_mule(xxh_u32x4 a, xxh_u32x4 b)
function XXH_FORCE_INLINE (line 4280) | XXH_FORCE_INLINE xxh_u64
function XXH128_hash_t (line 4307) | static XXH128_hash_t
function xxh_u64 (line 4441) | static xxh_u64
function xxh_u64 (line 4449) | xxh_u64 XXH_xorshift64(xxh_u64 v64, int shift)
function XXH64_hash_t (line 4459) | static XXH64_hash_t XXH3_avalanche(xxh_u64 h64)
function XXH64_hash_t (line 4472) | static XXH64_hash_t XXH3_rrmxmx(xxh_u64 h64, xxh_u64 len)
function XXH64_hash_t (line 4516) | XXH64_hash_t
function XXH64_hash_t (line 4538) | XXH64_hash_t
function XXH64_hash_t (line 4554) | XXH64_hash_t
function XXH64_hash_t (line 4571) | XXH64_hash_t
function XXH_FORCE_INLINE (line 4608) | XXH_FORCE_INLINE xxh_u64 XXH3_mix16B(const xxh_u8* XXH_RESTRICT input,
function XXH64_hash_t (line 4641) | XXH64_hash_t
function XXH64_hash_t (line 4682) | XXH64_hash_t
function XXH_FORCE_INLINE (line 4794) | XXH_FORCE_INLINE void XXH_writeLE64(void* dst, xxh_u64 v64)
type xxh_i64 (line 4808) | typedef int64_t xxh_i64;
type xxh_i64 (line 4811) | typedef long long xxh_i64;
function XXH3_accumulate_512_avx512 (line 4845) | void
function XXH_FORCE_INLINE (line 4872) | XXH_FORCE_INLINE XXH_TARGET_AVX512 XXH3_ACCUMULATE_TEMPLATE(avx512)
function XXH3_initCustomSecret_avx512 (line 4918) | void
function XXH3_accumulate_512_avx2 (line 4948) | void
function XXH_FORCE_INLINE (line 4981) | XXH_FORCE_INLINE XXH_TARGET_AVX2 XXH3_ACCUMULATE_TEMPLATE(avx2)
function XXH3_initCustomSecret_avx2 (line 5012) | void XXH3_initCustomSecret_avx2(void* XXH_RESTRICT customSecret, xxh_u64...
function XXH3_accumulate_512_sse2 (line 5054) | void
function XXH_FORCE_INLINE (line 5088) | XXH_FORCE_INLINE XXH_TARGET_SSE2 XXH3_ACCUMULATE_TEMPLATE(sse2)
function XXH3_initCustomSecret_sse2 (line 5119) | void XXH3_initCustomSecret_sse2(void* XXH_RESTRICT customSecret, xxh_u64...
function XXH_FORCE_INLINE (line 5189) | XXH_FORCE_INLINE void
function XXH_FORCE_INLINE (line 5315) | XXH_FORCE_INLINE XXH3_ACCUMULATE_TEMPLATE(neon)
function XXH_FORCE_INLINE (line 5376) | XXH_FORCE_INLINE void
function XXH_FORCE_INLINE (line 5410) | XXH_FORCE_INLINE XXH3_ACCUMULATE_TEMPLATE(vsx)
function XXH_FORCE_INLINE (line 5446) | XXH_FORCE_INLINE void
function XXH_FORCE_INLINE (line 5486) | XXH_FORCE_INLINE void
function XXH_FORCE_INLINE (line 5570) | XXH_FORCE_INLINE xxh_u64
function XXH_FORCE_INLINE (line 5579) | XXH_FORCE_INLINE xxh_u64
function XXH_FORCE_INLINE (line 5593) | XXH_FORCE_INLINE void
function XXH_FORCE_INLINE (line 5616) | XXH_FORCE_INLINE void
function XXH_FORCE_INLINE (line 5633) | XXH_FORCE_INLINE XXH3_ACCUMULATE_TEMPLATE(scalar)
function XXH_FORCE_INLINE (line 5665) | XXH_FORCE_INLINE void
function XXH_FORCE_INLINE (line 5674) | XXH_FORCE_INLINE void
function XXH_FORCE_INLINE (line 5797) | XXH_FORCE_INLINE void
function XXH_FORCE_INLINE (line 5830) | XXH_FORCE_INLINE xxh_u64
function XXH64_hash_t (line 5838) | static XXH64_hash_t
function XXH_FORCE_INLINE (line 5868) | XXH_FORCE_INLINE XXH64_hash_t
function XXH3_WITH_SECRET_INLINE (line 5893) | XXH3_WITH_SECRET_INLINE XXH64_hash_t
function XXH64_hash_t (line 5907) | XXH64_hash_t
function XXH_FORCE_INLINE (line 5926) | XXH_FORCE_INLINE XXH64_hash_t
function XXH_NO_INLINE (line 5949) | XXH_NO_INLINE XXH64_hash_t
type XXH64_hash_t (line 5959) | typedef XXH64_hash_t (*XXH3_hashLong64_f)(const void* XXH_RESTRICT, size_t,
function XXH_FORCE_INLINE (line 5962) | XXH_FORCE_INLINE XXH64_hash_t
function XXH_PUBLIC_API (line 5988) | XXH_PUBLIC_API XXH64_hash_t XXH3_64bits(XXH_NOESCAPE const void* input, ...
function XXH_PUBLIC_API (line 5994) | XXH_PUBLIC_API XXH64_hash_t
function XXH_PUBLIC_API (line 6001) | XXH_PUBLIC_API XXH64_hash_t
function XXH_PUBLIC_API (line 6007) | XXH_PUBLIC_API XXH64_hash_t
function XXH_MALLOCF (line 6041) | static XXH_MALLOCF void* XXH_alignedMalloc(size_t s, size_t align)
function XXH_alignedFree (line 6072) | static void XXH_alignedFree(void* p)
function XXH_PUBLIC_API (line 6094) | XXH_PUBLIC_API XXH3_state_t* XXH3_createState(void)
function XXH_PUBLIC_API (line 6114) | XXH_PUBLIC_API XXH_errorcode XXH3_freeState(XXH3_state_t* statePtr)
function XXH_PUBLIC_API (line 6121) | XXH_PUBLIC_API void
function XXH3_reset_internal (line 6127) | static void
function XXH_PUBLIC_API (line 6155) | XXH_PUBLIC_API XXH_errorcode
function XXH_PUBLIC_API (line 6164) | XXH_PUBLIC_API XXH_errorcode
function XXH_PUBLIC_API (line 6175) | XXH_PUBLIC_API XXH_errorcode
function XXH_PUBLIC_API (line 6187) | XXH_PUBLIC_API XXH_errorcode
function XXH_FORCE_INLINE (line 6215) | XXH_FORCE_INLINE const xxh_u8 *
function XXH_PUBLIC_API (line 6339) | XXH_PUBLIC_API XXH_errorcode
function XXH_FORCE_INLINE (line 6347) | XXH_FORCE_INLINE void
function XXH_PUBLIC_API (line 6385) | XXH_PUBLIC_API XXH64_hash_t XXH3_64bits_digest (XXH_NOESCAPE const XXH3_...
function XXH128_hash_t (line 6421) | XXH128_hash_t
function XXH128_hash_t (line 6450) | XXH128_hash_t
function XXH128_hash_t (line 6477) | XXH128_hash_t
function XXH128_hash_t (line 6552) | XXH128_hash_t
function XXH_FORCE_INLINE (line 6571) | XXH_FORCE_INLINE XXH128_hash_t
function XXH128_hash_t (line 6583) | XXH128_hash_t
function XXH128_hash_t (line 6627) | XXH128_hash_t
function XXH_FORCE_INLINE (line 6685) | XXH_FORCE_INLINE XXH128_hash_t
function XXH128_hash_t (line 6713) | XXH128_hash_t
function XXH3_WITH_SECRET_INLINE (line 6730) | XXH3_WITH_SECRET_INLINE XXH128_hash_t
function XXH_FORCE_INLINE (line 6740) | XXH_FORCE_INLINE XXH128_hash_t
function XXH_NO_INLINE (line 6761) | XXH_NO_INLINE XXH128_hash_t
type XXH128_hash_t (line 6770) | typedef XXH128_hash_t (*XXH3_hashLong128_f)(const void* XXH_RESTRICT, si...
function XXH_FORCE_INLINE (line 6773) | XXH_FORCE_INLINE XXH128_hash_t
function XXH_PUBLIC_API (line 6798) | XXH_PUBLIC_API XXH128_hash_t XXH3_128bits(XXH_NOESCAPE const void* input...
function XXH_PUBLIC_API (line 6806) | XXH_PUBLIC_API XXH128_hash_t
function XXH_PUBLIC_API (line 6815) | XXH_PUBLIC_API XXH128_hash_t
function XXH_PUBLIC_API (line 6824) | XXH_PUBLIC_API XXH128_hash_t
function XXH_PUBLIC_API (line 6833) | XXH_PUBLIC_API XXH128_hash_t
function XXH_PUBLIC_API (line 6848) | XXH_PUBLIC_API XXH_errorcode
function XXH_PUBLIC_API (line 6855) | XXH_PUBLIC_API XXH_errorcode
function XXH_PUBLIC_API (line 6862) | XXH_PUBLIC_API XXH_errorcode
function XXH_PUBLIC_API (line 6869) | XXH_PUBLIC_API XXH_errorcode
function XXH_PUBLIC_API (line 6876) | XXH_PUBLIC_API XXH_errorcode
function XXH_PUBLIC_API (line 6883) | XXH_PUBLIC_API XXH128_hash_t XXH3_128bits_digest (XXH_NOESCAPE const XXH...
function XXH_PUBLIC_API (line 6914) | XXH_PUBLIC_API int XXH128_isEqual(XXH128_hash_t h1, XXH128_hash_t h2)
function XXH_PUBLIC_API (line 6925) | XXH_PUBLIC_API int XXH128_cmp(XXH_NOESCAPE const void* h128_1, XXH_NOESC...
function XXH_PUBLIC_API (line 6938) | XXH_PUBLIC_API void
function XXH_PUBLIC_API (line 6951) | XXH_PUBLIC_API XXH128_hash_t
function XXH_FORCE_INLINE (line 6968) | XXH_FORCE_INLINE void XXH3_combine16(void* dst, XXH128_hash_t h128)
function XXH_PUBLIC_API (line 6975) | XXH_PUBLIC_API XXH_errorcode
function XXH_PUBLIC_API (line 7020) | XXH_PUBLIC_API void
FILE: source/vgl.c
function sceGxmSetViewport_sfp (line 30) | __attribute__((naked)) void sceGxmSetViewport_sfp(SceGxmContext *context...
function vglUseVram (line 151) | void vglUseVram(GLboolean usage) {
function vglUseVramForUSSE (line 155) | void vglUseVramForUSSE(GLboolean usage) {
function GLboolean (line 159) | GLboolean vglInitWithCustomSizes(int pool_size, int width, int height, i...
function GLboolean (line 569) | GLboolean vglInitWithCustomThreshold(int pool_size, int width, int heigh...
function GLboolean (line 591) | GLboolean vglInitExtended(int pool_size, int width, int height, int ram_...
function GLboolean (line 595) | GLboolean vglInit(int pool_size) {
function GLboolean (line 599) | GLboolean vglSwapResolution(int width, int height) {
function vglWaitVblankStart (line 615) | void vglWaitVblankStart(GLboolean enable) {
function vglMemFree (line 619) | size_t vglMemFree(vglMemType type) {
function vglMemTotal (line 627) | size_t vglMemTotal(vglMemType type) {
function vglMallocUsableSize (line 678) | size_t vglMallocUsableSize(void *ptr) {
function vglFree (line 765) | void vglFree(void *addr) {
function vglUseExtraMem (line 772) | void vglUseExtraMem(GLboolean use) {
function vglSetVertexPoolSize (line 776) | void vglSetVertexPoolSize(uint32_t size) {
function vglUseCachedMem (line 782) | void vglUseCachedMem(GLboolean use) {
function vglSetTextureCacheFrequency (line 786) | void vglSetTextureCacheFrequency(GLuint freq) {
function vglSetupScratchMemory (line 792) | void vglSetupScratchMemory(GLboolean scratch_for_dynamic, GLboolean scra...
FILE: source/vitaGL.h
type vglMemType (line 1012) | typedef enum {
type vglSemanticType (line 1021) | typedef enum {
type vglSemanticMode (line 1029) | typedef enum {
Condensed preview — 156 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (8,474K chars).
[
{
"path": ".clang-format",
"chars": 2949,
"preview": "---\nLanguage: Cpp\n# BasedOnStyle: WebKit\nAccessModifierOffset: -4\nAlignAfterOpenBracket: DontAlign\nAlignConsecut"
},
{
"path": ".gitattributes",
"chars": 378,
"preview": "# Auto detect text files and perform LF normalization\n* text=auto\n\n# Custom for Visual Studio\n*.cs diff=csharp\n\n# St"
},
{
"path": ".github/FUNDING.yml",
"chars": 24,
"preview": "patreon: Rinnegatamante\n"
},
{
"path": ".gitignore",
"chars": 710,
"preview": "*.vpk\n*.elf\n*.velf\n*.bin\n*.sfo\n\n# Windows image file caches\nThumbs.db\nehthumbs.db\n\n# Folder config file\nDesktop.ini\n\n# R"
},
{
"path": "COPYING",
"chars": 35149,
"preview": " GNU GENERAL PUBLIC LICENSE\n Version 3, 29 June 2007\n\n Copyright (C) 2007 Free "
},
{
"path": "COPYING.LESSER",
"chars": 7652,
"preview": " GNU LESSER GENERAL PUBLIC LICENSE\n Version 3, 29 June 2007\n\n Copyright (C) 2007"
},
{
"path": "Makefile",
"chars": 5379,
"preview": "TARGET := libvitaGL\nSOURCES := source source/utils source/utils/preprocessor\n\nCFILES := $(foreach dir"
},
{
"path": "README.md",
"chars": 16316,
"preview": "<p align=\"center\"><img width=\"50%\" src=\"./vitagl.png\"></p>\nvitaGL is an opensource openGL driver for PSVITA development."
},
{
"path": "format.bat",
"chars": 134,
"preview": "@echo off\ncd source\nfor /f %%f in ('dir *.c *.h /b/s') do (\n\techo.%%f | findstr /C:\"\\\\shaders\\\\\">nul || (clang-format -i"
},
{
"path": "samples/blit_framebuffer/Makefile",
"chars": 1227,
"preview": "TITLEID := VGLFBBLIT\nTARGET\t\t:= blit_framebuffer\nSOURCES\t\t:= .\n\t\t\t\nINCLUDES\t:= include\n\nLIBS = -lvitaGL -lSceLibKern"
},
{
"path": "samples/blit_framebuffer/main.c",
"chars": 1869,
"preview": "#include <vitasdk.h>\n#include <vitaGL.h>\n#include <libtoloader.h>\n\nint main() {\n\t// Initializing graphics device\n\tvglIni"
},
{
"path": "samples/camera/Makefile",
"chars": 1346,
"preview": "TITLEID := VGLCAMERA\nTARGET\t\t:= camera\nSOURCES\t\t:= .\n\t\t\t\nINCLUDES\t:= include\n\nLIBS = -lvitaGL -lSceLibKernel_stub -l"
},
{
"path": "samples/camera/bunny.obj",
"chars": 833078,
"preview": "# Blender v2.78 (sub 0) OBJ File: 'bunny.blend'\n# www.blender.org\no bunny_bunny.001\nv -0.424966 0.664264 -1.415270\nv -0."
},
{
"path": "samples/camera/lambertian.frag",
"chars": 475,
"preview": "/*\n * Lambertian illumination model\n * Formula: Ld = kd * Li (l * n)\n */\n\n// Weights for diffuse component\nuniform float"
},
{
"path": "samples/camera/lambertian.vert",
"chars": 986,
"preview": "// Model matrix\nuniform float4x4 modelMatrix;\n\n// View matrix\nuniform float4x4 viewMatrix;\n\n// Projection matrix\nuniform"
},
{
"path": "samples/camera/main.cpp",
"chars": 11653,
"preview": "#include <vector>\n#include <stdio.h>\n#include <vitasdk.h>\n#include <vitaGL.h>\n#include <glm/glm.hpp>\n#include <glm/gtc/m"
},
{
"path": "samples/camera/plane.obj",
"chars": 7160,
"preview": "# Blender v2.78 (sub 0) OBJ File: ''\n# www.blender.org\no Plane_Plane.001\nv -5.000000 0.000000 5.000000\nv 5.000000 0.0000"
},
{
"path": "samples/draw_batching/Makefile",
"chars": 1122,
"preview": "TITLEID := VGLDRWBTC\nTARGET\t\t:= draw_batching\nSOURCES\t\t:= .\n\t\t\t\nINCLUDES\t:= include\n\nLIBS = -lvitaGL -lc -lSceCommon"
},
{
"path": "samples/draw_batching/main.c",
"chars": 1825,
"preview": "#include <vitaGL.h>\n#include <string.h>\n\ntypedef struct {\n\tint elements_count;\n\tfloat *array;\n} fan_s;\n\n\nGLuint vbo_id;\n"
},
{
"path": "samples/draw_elements/Makefile",
"chars": 1122,
"preview": "TITLEID := VGLDRWELE\nTARGET\t\t:= draw_elements\nSOURCES\t\t:= .\n\t\t\t\nINCLUDES\t:= include\n\nLIBS = -lvitaGL -lc -lSceCommon"
},
{
"path": "samples/draw_elements/main.c",
"chars": 1203,
"preview": "// Drawing a quad on screen with glDrawElements\n#include <vitaGL.h>\n\nfloat colors[] = {1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0"
},
{
"path": "samples/glesgear/Makefile",
"chars": 1129,
"preview": "TITLEID := VGLGLGEAR\nTARGET\t\t:= glesgear\nSOURCES\t\t:= .\n\t\t\t\nINCLUDES\t:= include\n\nLIBS = -lvitaGL -lc -lSceCommonDialo"
},
{
"path": "samples/glesgear/main.c",
"chars": 19846,
"preview": "/*\n * Copyright (C) 1999-2001 Brian Paul All Rights Reserved.\n * \n * Permission is hereby granted, free of charge, to"
},
{
"path": "samples/illumination_models/Makefile",
"chars": 1580,
"preview": "TITLEID := VGLILLMDL\nTARGET\t\t:= illumination_models\nSOURCES\t\t:= .\n\t\t\t\nINCLUDES\t:= include\n\nLIBS = -lvitaGL -lSceLibK"
},
{
"path": "samples/illumination_models/blinn.frag",
"chars": 1311,
"preview": "/*\n * Blinn-Phong illumination model\n * Formula: Lf = Le + kaLa + Li(kdLd(l * n) + ksLs(n * h) ^ a)\n */\n\n// Weights for "
},
{
"path": "samples/illumination_models/blinn.vert",
"chars": 986,
"preview": "// Model matrix\nuniform float4x4 modelMatrix;\n\n// View matrix\nuniform float4x4 viewMatrix;\n\n// Projection matrix\nuniform"
},
{
"path": "samples/illumination_models/bunny.obj",
"chars": 833078,
"preview": "# Blender v2.78 (sub 0) OBJ File: 'bunny.blend'\n# www.blender.org\no bunny_bunny.001\nv -0.424966 0.664264 -1.415270\nv -0."
},
{
"path": "samples/illumination_models/cube.obj",
"chars": 1108,
"preview": "# Blender3D v249 OBJ File: untitled.blend\n# www.blender3d.org\nv 1.000000 -1.000000 -1.000000\nv 1.000000 -1.000000 1.0000"
},
{
"path": "samples/illumination_models/fdg.frag",
"chars": 2398,
"preview": "/*\n * Physically-based FDG illumination model with GGX microfacets model\n * Formula: Lf = (kd * Ld + (F(v, h) * D(h) * G"
},
{
"path": "samples/illumination_models/fdg.vert",
"chars": 986,
"preview": "// Model matrix\nuniform float4x4 modelMatrix;\n\n// View matrix\nuniform float4x4 viewMatrix;\n\n// Projection matrix\nuniform"
},
{
"path": "samples/illumination_models/lambertian.frag",
"chars": 475,
"preview": "/*\n * Lambertian illumination model\n * Formula: Ld = kd * Li (l * n)\n */\n\n// Weights for diffuse component\nuniform float"
},
{
"path": "samples/illumination_models/lambertian.vert",
"chars": 986,
"preview": "// Model matrix\nuniform float4x4 modelMatrix;\n\n// View matrix\nuniform float4x4 viewMatrix;\n\n// Projection matrix\nuniform"
},
{
"path": "samples/illumination_models/main.cpp",
"chars": 12579,
"preview": "#include <vector>\n#include <stdio.h>\n#include <vitasdk.h>\n#include <vitaGL.h>\n#include <glm/glm.hpp>\n#include <glm/gtc/m"
},
{
"path": "samples/illumination_models/phong.frag",
"chars": 1331,
"preview": "/*\n * Phong illumination model\n * Formula: Lf = Le + kaLa + Li(kdLd(l * n) + ksLs(r * v) ^ a)\n */\n\n// Weights for ambien"
},
{
"path": "samples/illumination_models/phong.vert",
"chars": 986,
"preview": "// Model matrix\nuniform float4x4 modelMatrix;\n\n// View matrix\nuniform float4x4 viewMatrix;\n\n// Projection matrix\nuniform"
},
{
"path": "samples/illumination_models/plane.obj",
"chars": 7160,
"preview": "# Blender v2.78 (sub 0) OBJ File: ''\n# www.blender.org\no Plane_Plane.001\nv -5.000000 0.000000 5.000000\nv 5.000000 0.0000"
},
{
"path": "samples/illumination_models/sphere.obj",
"chars": 56924,
"preview": "# Blender v2.93.0 OBJ File: ''\n# www.blender.org\nmtllib sphere2.mtl\no sphere\nv 0.148778 -0.987688 -0.048341\nv 0.126558 -"
},
{
"path": "samples/immediate_mode/Makefile",
"chars": 1212,
"preview": "TITLEID := VGLIMMMDE\nTARGET\t\t:= immediate_mode\nSOURCES\t\t:= .\n\t\t\t\nINCLUDES\t:= include\n\nLIBS = -lvitaGL -lSceLibKernel"
},
{
"path": "samples/immediate_mode/main.c",
"chars": 836,
"preview": "// Drawing a colored quad with glBegin/glEnd\n\n#include <vitaGL.h>\n\nint main(){\n\t\n\t// Initializing graphics device\n\tvglIn"
},
{
"path": "samples/immediate_mode_texture/Makefile",
"chars": 1247,
"preview": "TITLEID := VGLIMMTXT\nTARGET\t\t:= immediate_mode_texture\nSOURCES\t\t:= .\n\t\t\t\nINCLUDES\t:= include\n\nLIBS = -lvitaGL -lSceL"
},
{
"path": "samples/immediate_mode_texture/main.c",
"chars": 1864,
"preview": "// Drawing a fullscreen image on screen with glBegin/glEnd\n#include <vitasdk.h>\n#include <vitaGL.h>\n#include <stdlib.h>\n"
},
{
"path": "samples/immediate_mode_texture_compressed/Makefile",
"chars": 1258,
"preview": "TITLEID := VGLIMMCTX\nTARGET\t\t:= immediate_mode_texture_compressed\nSOURCES\t\t:= .\n\t\t\t\nINCLUDES\t:= include\n\nLIBS = -lvi"
},
{
"path": "samples/immediate_mode_texture_compressed/main.c",
"chars": 3453,
"preview": "// Drawing a fullscreen image on screen with glBegin/glEnd\n#include <vitasdk.h>\n#include <vitaGL.h>\n#include <stdlib.h>\n"
},
{
"path": "samples/immediate_mode_texture_yuv/Makefile",
"chars": 1251,
"preview": "TITLEID := VGLIMMYUV\nTARGET\t\t:= immediate_mode_texture_yuv\nSOURCES\t\t:= .\n\t\t\t\nINCLUDES\t:= include\n\nLIBS = -lvitaGL -l"
},
{
"path": "samples/immediate_mode_texture_yuv/main.c",
"chars": 1668,
"preview": "// Drawing a fullscreen image on screen with glBegin/glEnd\n#include <vitasdk.h>\n#include <vitaGL.h>\n#include <stdlib.h>\n"
},
{
"path": "samples/immediate_mode_texture_yuv/texture.yuv",
"chars": 121293,
"preview": "½Ľ|ywuuuwzżztnifdcbbdhp}~xrlgb_][[YY[^enyŻ|tojgc`]ZXWUUTTUW[ahpxʾxpib^[YWVTSRRQQPPQRTW[^cipxʾ}voga[VSRPPPPOOOOONNOOOPRST"
},
{
"path": "samples/lighting_fog_ffp/Makefile",
"chars": 1269,
"preview": "TITLEID := VGLLGTFOG\nTARGET\t\t:= lighting_fog_ffp\nSOURCES\t\t:= .\n\t\t\t\nINCLUDES\t:= include\n\nLIBS = -lvitaGL -lSceLibKern"
},
{
"path": "samples/lighting_fog_ffp/main.c",
"chars": 6372,
"preview": "#include <vitasdk.h>\n#include <vitaGL.h>\n#include <stdlib.h>\n\n// this provides an RGBA texture, defined as variables\n// "
},
{
"path": "samples/lighting_fog_ffp/texture.h",
"chars": 1704058,
"preview": "const unsigned int texture_width = 256;\nconst unsigned int texture_height = 256;\nconst unsigned char texture_rgba[] = {\n"
},
{
"path": "samples/lighting_fog_sphere_ffp/Makefile",
"chars": 1272,
"preview": "TITLEID := VGLLTFGSP\nTARGET\t\t:= lighting_fog_sphere_ffp\nSOURCES\t\t:= .\n\t\t\t\nINCLUDES\t:= include\n\nLIBS = -lvitaGL -lSce"
},
{
"path": "samples/lighting_fog_sphere_ffp/main.c",
"chars": 4856,
"preview": "#include <vitasdk.h>\n#include <vitaGL.h>\n#include <stdlib.h>\n\n// Default state for our light 1\nstatic const GLfloat li_a"
},
{
"path": "samples/models_rendering/Makefile",
"chars": 1251,
"preview": "TITLEID := VGLOBJLDR\nTARGET\t\t:= models_rendering\nSOURCES\t\t:= .\n\t\t\t\nINCLUDES\t:= include\n\nLIBS = -lvitaGL -lSceLibKern"
},
{
"path": "samples/models_rendering/bunny.obj",
"chars": 833078,
"preview": "# Blender v2.78 (sub 0) OBJ File: 'bunny.blend'\n# www.blender.org\no bunny_bunny.001\nv -0.424966 0.664264 -1.415270\nv -0."
},
{
"path": "samples/models_rendering/main.c",
"chars": 1203,
"preview": "#include <vitasdk.h>\n#include <vitaGL.h>\n#include <libtoloader.h>\n\nint main() {\n\t// Initializing graphics device\n\tvglIni"
},
{
"path": "samples/occlusion_queries/Makefile",
"chars": 1140,
"preview": "TITLEID\t\t:= VGLOCCLUS\nTARGET\t\t:= occlusion_queries\nSOURCES\t\t:= .\n\t\t\t\nINCLUDES\t:= include\n\nLIBS = -lvitaGL -lc -lSceCommo"
},
{
"path": "samples/occlusion_queries/main.c",
"chars": 4863,
"preview": "#include <vitasdk.h>\n#include <vitaGL.h>\n#include <math.h>\n#include <stdio.h>\n\nfloat colors[] = {1.0, 1.0, 1.0, 1.0, 0.0"
},
{
"path": "samples/resolution_change/Makefile",
"chars": 1147,
"preview": "TITLEID\t\t:= VGLRESSWP\nTARGET\t\t:= resolution_swap\nSOURCES\t\t:= .\n\t\t\t\nINCLUDES\t:= include\n\nLIBS = -lvitaGL -lc -lSceCommonD"
},
{
"path": "samples/resolution_change/main.c",
"chars": 4103,
"preview": "// Drawing a rotating cube\n#include <vitasdk.h>\n#include <vitaGL.h>\n#include <math.h>\n\nfloat colors[] = {1.0, 1.0, 1.0, "
},
{
"path": "samples/rotating_cube/Makefile",
"chars": 1121,
"preview": "TITLEID\t\t:= VGLROTCBE\nTARGET\t\t:= rotating_cube\nSOURCES\t\t:= .\n\t\t\t\nINCLUDES\t:= include\n\nLIBS = -lvitaGL -lc -lSceCommonDia"
},
{
"path": "samples/rotating_cube/main.c",
"chars": 2968,
"preview": "// Drawing a rotating cube\n#include <vitaGL.h>\n#include <math.h>\n\nfloat colors[] = {1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0"
},
{
"path": "samples/rotating_cube_sysapp/Makefile",
"chars": 1148,
"preview": "TITLEID := VGLSROTCB\nTARGET\t\t:= rotating_cube_sysapp\nSOURCES\t\t:= .\n\t\t\t\nINCLUDES\t:= include\n\nLIBS = -lvitaGL -lc -lSc"
},
{
"path": "samples/rotating_cube_sysapp/main.c",
"chars": 3082,
"preview": "// Drawing a rotating cube\n#include <vitaGL.h>\n#include <math.h>\n\nfloat colors[] = {1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0"
},
{
"path": "samples/skybox_env_map/Makefile",
"chars": 1640,
"preview": "TITLEID := VGLSKYBOX\nTARGET\t\t:= skybox_env_map\nSOURCES\t\t:= .\n\t\t\t\nINCLUDES\t:= include\n\nLIBS = -lvitaGL -lSceLibKernel"
},
{
"path": "samples/skybox_env_map/bunny.obj",
"chars": 833078,
"preview": "# Blender v2.78 (sub 0) OBJ File: 'bunny.blend'\n# www.blender.org\no bunny_bunny.001\nv -0.424966 0.664264 -1.415270\nv -0."
},
{
"path": "samples/skybox_env_map/cube.obj",
"chars": 1108,
"preview": "# Blender3D v249 OBJ File: untitled.blend\n# www.blender3d.org\nv 1.000000 -1.000000 -1.000000\nv 1.000000 -1.000000 1.0000"
},
{
"path": "samples/skybox_env_map/main.cpp",
"chars": 11867,
"preview": "// Based on https://learnopengl.com/Advanced-OpenGL/Cubemaps\n#include <vector>\n#include <stdio.h>\n#include <vitasdk.h>\n#"
},
{
"path": "samples/skybox_env_map/mirror.frag",
"chars": 274,
"preview": "// Cube sampler for our skybox\nuniform samplerCUBE skybox;\n\n// Camera position\nuniform float3 camera_pos;\n\nfloat4 main(\n"
},
{
"path": "samples/skybox_env_map/mirror.vert",
"chars": 689,
"preview": "// Model matrix\nuniform float4x4 modelMatrix;\nuniform float4x4 inverseModelMatrix;\n\n// View matrix\nuniform float4x4 view"
},
{
"path": "samples/skybox_env_map/skybox.frag",
"chars": 114,
"preview": "uniform samplerCUBE skybox;\n\nfloat4 main(\n\tfloat3 texcoords : TEXCOORD0\n) {\n\treturn texCUBE(skybox, texcoords);\n}\n"
},
{
"path": "samples/skybox_env_map/skybox.vert",
"chars": 278,
"preview": "uniform float4x4 projectionMatrix;\nuniform float4x4 viewMatrix;\n\nvoid main (\n\tfloat3 position,\n\tfloat3 out texcoords : T"
},
{
"path": "samples/skybox_env_map/stb_image.h",
"chars": 267410,
"preview": "/* stb_image - v2.25 - public domain image loader - http://nothings.org/stb\n no warrant"
},
{
"path": "samples/ssao_deferred_rendering/Makefile",
"chars": 1529,
"preview": "TITLEID := VGLDEFRND\nTARGET\t\t:= ssao_deferred_rendering\nSOURCES\t\t:= .\n\t\t\t\nINCLUDES\t:= include\n\nLIBS = -lvitaGL -lSce"
},
{
"path": "samples/ssao_deferred_rendering/bunny.obj",
"chars": 833078,
"preview": "# Blender v2.78 (sub 0) OBJ File: 'bunny.blend'\n# www.blender.org\no bunny_bunny.001\nv -0.424966 0.664264 -1.415270\nv -0."
},
{
"path": "samples/ssao_deferred_rendering/cube.obj",
"chars": 1108,
"preview": "# Blender3D v249 OBJ File: untitled.blend\n# www.blender3d.org\nv 1.000000 -1.000000 -1.000000\nv 1.000000 -1.000000 1.0000"
},
{
"path": "samples/ssao_deferred_rendering/geometry.frag",
"chars": 89,
"preview": "float4 main(\n\tfloat3 vNormal : TEXCOORD0\n) {\n\treturn float4(normalize(vNormal), 1.0f);\n}\n"
},
{
"path": "samples/ssao_deferred_rendering/geometry.vert",
"chars": 548,
"preview": "// Useful for when rendering an indoor environment\nuniform float invertedNormals;\n\nuniform float4x4 modelMatrix;\nuniform"
},
{
"path": "samples/ssao_deferred_rendering/lighting.frag",
"chars": 1706,
"preview": "uniform sampler2D gDepthMap : TEXUNIT0;\nuniform sampler2D gNormal : TEXUNIT1;\nuniform sampler2D SSAO : TEXUNIT2;\n\nunifor"
},
{
"path": "samples/ssao_deferred_rendering/lighting.vert",
"chars": 187,
"preview": "void main(\n\tfloat3 position,\n\tfloat2 texcoord,\n\tfloat2 out vTexcoords : TEXCOORD0,\n\tfloat4 out gl_Position : POSITION\n) "
},
{
"path": "samples/ssao_deferred_rendering/main.cpp",
"chars": 19990,
"preview": "#include <vector>\n#include <stdio.h>\n#include <vitasdk.h>\n#include <vitaGL.h>\n#include <glm/glm.hpp>\n#include <glm/gtc/m"
},
{
"path": "samples/ssao_deferred_rendering/sphere.obj",
"chars": 56924,
"preview": "# Blender v2.93.0 OBJ File: ''\n# www.blender.org\nmtllib sphere2.mtl\no sphere\nv 0.148778 -0.987688 -0.048341\nv 0.126558 -"
},
{
"path": "samples/ssao_deferred_rendering/ssao.frag",
"chars": 2102,
"preview": "uniform sampler2D gDepthMap : TEXUNIT0;\nuniform sampler2D gNormal : TEXUNIT1;\nuniform sampler2D noiseTexture : TEXUNIT2;"
},
{
"path": "samples/ssao_deferred_rendering/ssao.vert",
"chars": 187,
"preview": "void main(\n\tfloat3 position,\n\tfloat2 texcoord,\n\tfloat2 out vTexcoords : TEXCOORD0,\n\tfloat4 out gl_Position : POSITION\n) "
},
{
"path": "samples/uniform_buffers/Makefile",
"chars": 1218,
"preview": "TITLEID := VGLUNIFBF\nTARGET\t\t:= uniform_buffers\nSOURCES\t\t:= .\n\t\t\t\nINCLUDES\t:= include\n\nLIBS = -lvitaGL -lSceLibKerne"
},
{
"path": "samples/uniform_buffers/main.c",
"chars": 3903,
"preview": "// Derived from https://subscription.packtpub.com/book/game-development/9781782167020/1/ch01lvl1sec18/using-uniform-bloc"
},
{
"path": "samples/vbo_rotating_cube/Makefile",
"chars": 1126,
"preview": "TITLEID := VGLVBORCB\nTARGET\t\t:= vbo_rotating_cube\nSOURCES\t\t:= .\n\t\t\t\nINCLUDES\t:= include\n\nLIBS = -lvitaGL -lc -lSceCo"
},
{
"path": "samples/vbo_rotating_cube/main.c",
"chars": 3682,
"preview": "// Drawing a rotating cube with VBO\n#include <vitaGL.h>\n#include <math.h>\n\n// Helper macro to get offset in a VBO for an"
},
{
"path": "samples/vertex_array/Makefile",
"chars": 1148,
"preview": "TITLEID := VGLVTXARR\nTARGET\t\t:= vertex_array\nSOURCES\t\t:= .\n\t\t\t\nINCLUDES\t:= include\n\nLIBS = -lvitaGL -lc -lSceCommonD"
},
{
"path": "samples/vertex_array/main.c",
"chars": 1001,
"preview": "// Drawing a triangle on screen with vertex array\n#include <vitaGL.h>\n\nfloat colors[] = {1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1"
},
{
"path": "samples/video_playback/Makefile",
"chars": 1215,
"preview": "TITLEID\t\t:= VGLVIDEOP\nTARGET\t\t:= vitaGL-Sample$(SAMPLE_NUM)\nSOURCES\t\t:= .\n\t\t\t\nINCLUDES\t:= include\n\nLIBS = -lvitaGL -lc -"
},
{
"path": "samples/video_playback/main.c",
"chars": 8378,
"preview": "// Playing a video using sceAvPlayer\n#include <vitasdk.h>\n#include <vitaGL.h>\n#include <math.h>\n\n#define SCREEN_W 960\n#d"
},
{
"path": "source/blending.c",
"chars": 13837,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/buffers.c",
"chars": 24728,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/custom_shaders.c",
"chars": 113244,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017-2023 Rinnegatamante\n *\n * This program is free software: you can red"
},
{
"path": "source/debug.c",
"chars": 13001,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/display_lists.c",
"chars": 15757,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020, 2021, 2022 Rinnegatamante\n *\n * This program is f"
},
{
"path": "source/draw.c",
"chars": 21023,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/egl.c",
"chars": 2942,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/ffp.c",
"chars": 123108,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/framebuffers.c",
"chars": 25834,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/get_info.c",
"chars": 22468,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/gxm.c",
"chars": 39786,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/lookup.c",
"chars": 22939,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/matrices.c",
"chars": 27807,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/misc.c",
"chars": 31360,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/shaders/ffp_ext_f.h",
"chars": 5923,
"preview": "const char *ffp_frag_src =\nR\"(uniform float2 Opass0_scale;\nuniform float2 Ppass1_scale;\nuniform float2 Qpass2_scale;\n\n%s"
},
{
"path": "source/shaders/ffp_ext_v.h",
"chars": 6531,
"preview": "/* \n\tFixed Masks:\n\t0x01 = Normal\n\t0x02 = Tex0\n\t0x04 = Tex1\n\t0x08 = Tex2\n*/\n\nconst char *ffp_vert_src =\nR\"(#define clip_p"
},
{
"path": "source/shaders/ffp_f.h",
"chars": 5669,
"preview": "const char *ffp_frag_src =\nR\"(uniform float2 Opass0_scale;\nuniform float2 Ppass1_scale;\n\n%s\n\n#define alpha_test_mode %d\n"
},
{
"path": "source/shaders/ffp_v.h",
"chars": 6094,
"preview": "/* \n\tFixed Masks:\n\t0x01 = Normal\n\t0x02 = Tex0\n\t0x04 = Tex1\n*/\n\nconst char *ffp_vert_src =\nR\"(#define clip_planes_num %d\n"
},
{
"path": "source/shaders/glsl_translator_hdr.h",
"chars": 8944,
"preview": "#ifndef _GLSL_TRANSLATOR_HDR_H_\n#define _GLSL_TRANSLATOR_HDR_H_\n\nstatic const char *glsl_hdr =\nR\"(#define GL_ES 1\n#defin"
},
{
"path": "source/shaders/precompiled_blit_f.h",
"chars": 1838,
"preview": "#ifndef __blit_f__\n#define __blit_f__\n\n/*\n\tfloat4 main(float2 vTexcoord : TEXCOORD0, uniform sampler2D tex) : COLOR {\n\t\t"
},
{
"path": "source/shaders/precompiled_blit_v.h",
"chars": 2073,
"preview": "#ifndef __blit_v__\n#define __blit_v__\n\n/*\n\tvoid main(float2 position, float2 texcoord, float4 out vPos : POSITION, float"
},
{
"path": "source/shaders/precompiled_clear_f.h",
"chars": 1689,
"preview": "#ifndef __clear_f__\n#define __clear_f__\n\n/*\n\tfloat4 main(uniform float4 u_clear_color) : COLOR {\n\t\treturn u_clear_color;"
},
{
"path": "source/shaders/precompiled_clear_v.h",
"chars": 2943,
"preview": "#ifndef __clear_v__\n#define __clear_v__\n\n/*\n\tfloat4 main(unsigned int idx : INDEX, uniform float4 position, uniform floa"
},
{
"path": "source/shaders/texture_combiners/add.h",
"chars": 275,
"preview": "/*\n * GL_ADD\n */\nconst char *add_src =\nR\"(float4 texenv3(sampler2D tex, float2 texcoord, float4 prepass, float4 fragcol,"
},
{
"path": "source/shaders/texture_combiners/blend.h",
"chars": 282,
"preview": "/*\n * GL_BLEND\n */\nconst char *blend_src =\nR\"(float4 texenv2(sampler2D tex, float2 texcoord, float4 prepass, float4 frag"
},
{
"path": "source/shaders/texture_combiners/combine.h",
"chars": 837,
"preview": "/*\n * GL_COMBINE\n */\nconst char *calc_funcs[] = {\n\t\"%s * %s\", // GL_MODULATE\n\t\"%s + %s - 0.5f\", // GL_ADD_SIGNED\n\t\"(%s *"
},
{
"path": "source/shaders/texture_combiners/decal.h",
"chars": 266,
"preview": "/*\n * GL_DECAL\n */\nconst char *decal_src =\nR\"(float4 texenv1(sampler2D tex, float2 texcoord, float4 prepass, float4 frag"
},
{
"path": "source/shaders/texture_combiners/modulate.h",
"chars": 197,
"preview": "/*\n * GL_MODULATE\n */\nconst char *modulate_src =\nR\"(float4 texenv0(sampler2D tex, float2 texcoord, float4 prepass, float"
},
{
"path": "source/shaders/texture_combiners/replace.h",
"chars": 185,
"preview": "/*\n * GL_REPLACE\n */\nconst char *replace_src =\nR\"(float4 texenv4(sampler2D tex, float2 texcoord, float4 prepass, float4 "
},
{
"path": "source/shaders.h",
"chars": 1715,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/shared.h",
"chars": 44146,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/tests.c",
"chars": 18789,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/texture_callbacks.c",
"chars": 6839,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/texture_callbacks.h",
"chars": 1870,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/textures.c",
"chars": 76224,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/utils/atitc_utils.c",
"chars": 7221,
"preview": "/****************************************************************************\nCopyright (c) 2010-2012 cocos2d-x.org\nCopy"
},
{
"path": "source/utils/atitc_utils.h",
"chars": 1099,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/utils/debug_utils.h",
"chars": 1169,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/utils/eac_utils.c",
"chars": 15541,
"preview": "/*\n\nCopyright (c) 2015 Harm Hanemaaijer <fgenfb@yahoo.com>\n\nPermission to use, copy, modify, and/or distribute this soft"
},
{
"path": "source/utils/eac_utils.h",
"chars": 44545,
"preview": "/*\n\nCopyright (c) 2015 Harm Hanemaaijer <fgenfb@yahoo.com>\n\nPermission to use, copy, modify, and/or distribute this soft"
},
{
"path": "source/utils/etc1_utils.c",
"chars": 5714,
"preview": "// Copyright 2009 Google Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use t"
},
{
"path": "source/utils/etc1_utils.h",
"chars": 1163,
"preview": "#ifndef __etc1_utils_h__\n#define __etc1_utils_h__\n\n#define ETC1_ENCODED_BLOCK_SIZE 8\n#define ETC1_DECODED_BLOCK_SIZE 48\n"
},
{
"path": "source/utils/etc_utils.c",
"chars": 31767,
"preview": "/*\n\nCopyright (c) 2015 Harm Hanemaaijer <fgenfb@yahoo.com>\n\nPermission to use, copy, modify, and/or distribute this soft"
},
{
"path": "source/utils/font_utils.h",
"chars": 70902,
"preview": "//---------------------------------------------------------------------------------\n// Linux 6x10 font\n// https://github"
},
{
"path": "source/utils/glsl_utils.c",
"chars": 42622,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017-2023 Rinnegatamante\n *\n * This program is free software: you can red"
},
{
"path": "source/utils/glsl_utils.h",
"chars": 1742,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017-2023 Rinnegatamante\n *\n * This program is free software: you can red"
},
{
"path": "source/utils/gpu_utils.c",
"chars": 31487,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/utils/gpu_utils.h",
"chars": 6586,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/utils/gxm_utils.c",
"chars": 1615,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/utils/gxm_utils.h",
"chars": 8048,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/utils/math_utils.h",
"chars": 9973,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/utils/mem_utils.c",
"chars": 17188,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/utils/mem_utils.h",
"chars": 4425,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/utils/preprocessor/const.h",
"chars": 4221,
"preview": "#pragma once\n\n#define LESSTHAN2_EQUAL\t 0\n#define GREATERTHAN2_EQUAL 1\n#define MINUS_GREATERT"
},
{
"path": "source/utils/preprocessor/expression.cpp",
"chars": 17872,
"preview": "#ifdef HAVE_GLSL_PREPROCESSOR\n#define _CRT_SECURE_NO_WARNINGS\n\n#include <stdlib.h>\n#include <stdio.h>\n#include <list>\n#i"
},
{
"path": "source/utils/preprocessor/expression.h",
"chars": 193,
"preview": "#pragma once\n\n#include <string>\n\nstruct Token\n{\n int type;\n std::string id;\n};\n\nnamespace expression\n{\n long lo"
},
{
"path": "source/utils/preprocessor/preprocessor.cpp",
"chars": 69045,
"preview": "#ifdef HAVE_GLSL_PREPROCESSOR\n// Credits: https://github.com/john-blackburn/preprocessor\n#define _CRT_SECURE_NO_WARNINGS"
},
{
"path": "source/utils/preprocessor/preprocessor_c.h",
"chars": 66,
"preview": "void glsl_preprocess(char *mode, const char *fname, char *output);"
},
{
"path": "source/utils/shacccg_paramquery.h",
"chars": 13756,
"preview": "// Taken from https://github.com/SonicMastr/Pigs-In-A-Blanket/blob/master/include/shacccg/paramquery.h\n#ifndef _DOLCESDK"
},
{
"path": "source/utils/stb_dxt.h",
"chars": 23263,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/utils/texture_swizzler.cpp",
"chars": 19790,
"preview": "#include \"texture_swizzler.h\"\n\n#include <arm_neon.h>\n\n#define likely(expr) __builtin_expect(expr, 1)\n\n/**\n * For a bette"
},
{
"path": "source/utils/texture_swizzler.h",
"chars": 1143,
"preview": "#ifndef TEXTURE_SWIZZLER_H_\n#define TEXTURE_SWIZZLER_H_\n\n#include \"stdint.h\"\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n//"
},
{
"path": "source/utils/xxhash_utils.h",
"chars": 262914,
"preview": "/*\n * xxHash - Extremely Fast Hash algorithm\n * Header File\n * Copyright (C) 2012-2023 Yann Collet\n *\n * BSD 2-Clause Li"
},
{
"path": "source/vgl.c",
"chars": 28173,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
},
{
"path": "source/vitaGL.h",
"chars": 70390,
"preview": "/*\n * This file is part of vitaGL\n * Copyright 2017, 2018, 2019, 2020 Rinnegatamante\n *\n * This program is free software"
}
]
// ... and 1 more files (download for full content)
About this extraction
This page contains the full source code of the Rinnegatamante/vitaGL GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 156 files (7.8 MB), approximately 2.0M tokens, and a symbol index with 1414 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.