Initial Commit
Build Client / build (push) Canceled after 0s

This commit is contained in:
ShadowNetReal
2026-09-10 17:55:42 -04:00
commit a8b90368f8
3468 changed files with 462861 additions and 0 deletions
+85
View File
@@ -0,0 +1,85 @@
name: Build Client
on:
workflow_dispatch:
push:
branches: [ main ]
pull_request:
permissions:
contents: write
actions: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
with:
cache-read-only: false
- name: Build Client
run: ./CompileClient.sh
- name: Get short commit hash
id: vars
run: echo "hash=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Package artifacts
run: |
mkdir -p dist
zip -r dist/dist.zip client
mkdir -p dist/rel
cp dist/dist.zip dist/rel/dist_${{ steps.vars.outputs.hash }}.zip
cp client/Eaglercraft_Offline_JS.html dist/rel/Eaglercraft_Offline_JS.html
cp client/Eaglercraft_Offline_WASM.html dist/rel/Eaglercraft_Offline_WASM.html
mkdir -p dist/web
cp client/index.html dist/web/index.html
cp client/classes.js dist/web/classes.js
cp client/assets.epk dist/web/assets.epk
cp client/bootstrap.js dist/web/bootstrap.js
cp client/assets.epw dist/web/assets.epw
- name: Upload build
uses: actions/upload-artifact@v4
with:
name: dist_${{ steps.vars.outputs.hash }}
path: dist/dist.zip
- name: Create Release
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.vars.outputs.hash }}
name: Release ${{ steps.vars.outputs.hash }}
files: dist/rel/*
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Deploy GitHub Pages
if: github.event_name == 'push'
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: dist/web
publish_branch: gh-pages
keep_files: false
+15
View File
@@ -0,0 +1,15 @@
**/.DS_Store
**/build/
**/bin/
**/_list.json
/.gradle/
/.vscode/
/.idea/
/gradle/wrapper/
/gradlew
/gradlew.bat
/client/
/mcp/
!/mcp/decompile.*
!/gradle/local-libs/**
!/gradle/libs.versions.toml
+661
View File
@@ -0,0 +1,661 @@
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 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 Affero General Public License is a free, copyleft license for
software and other kinds of works, specifically designed to ensure
cooperation with the community in the case of network server software.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
our General Public Licenses are 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.
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.
Developers that use our General Public Licenses protect your rights
with two steps: (1) assert copyright on the software, and (2) offer
you this License which gives you legal permission to copy, distribute
and/or modify the software.
A secondary benefit of defending all users' freedom is that
improvements made in alternate versions of the program, if they
receive widespread use, become available for other developers to
incorporate. Many developers of free software are heartened and
encouraged by the resulting cooperation. However, in the case of
software used on network servers, this result may fail to come about.
The GNU General Public License permits making a modified version and
letting the public access it on a server without ever releasing its
source code to the public.
The GNU Affero General Public License is designed specifically to
ensure that, in such cases, the modified source code becomes available
to the community. It requires the operator of a network server to
provide the source code of the modified version running there to the
users of that server. Therefore, public use of a modified version, on
a publicly accessible server, gives the public access to the source
code of the modified version.
An older license, called the Affero General Public License and
published by Affero, was designed to accomplish similar goals. This is
a different license, not a version of the Affero GPL, but Affero has
released a new version of the Affero GPL which permits relicensing under
this license.
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 Affero 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. Remote Network Interaction; Use with the GNU General Public License.
Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to the Corresponding Source
from a network server at no charge, through some standard or customary
means of facilitating copying of software. This Corresponding Source
shall include the Corresponding Source for any work covered by version 3
of the GNU General Public License that is incorporated pursuant to the
following paragraph.
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 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 work with which it is combined will remain governed by version
3 of the GNU General Public License.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU Affero 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 Affero 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 Affero 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 Affero 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 Affero 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 Affero General Public License for more details.
You should have received a copy of the GNU Affero 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 your software can interact with users remotely through a computer
network, you should also make sure that it provides a way for users to
get its source. For example, if your program is a web application, its
interface could display a "Source" link that leads users to an archive
of the code. There are many ways you could offer source, and different
solutions will be better for different programs; see section 13 for the
specific requirements.
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 AGPL, see
<https://www.gnu.org/licenses/>.
+11
View File
@@ -0,0 +1,11 @@
# Eaglercraft 1.0
![preview](imageig.png)
:-:
This is a fully functional web port of Minecraft 1.0, playable in any modern web browser. <br> It currently supports only Singleplayer, with Multiplayer being worked on.
> [!WARNING]
> This is not meant to be a pirated version of Minecraft, it is simply just some patches for Minecraft 1.0 that allows it to be playable in the browser. If you haven't already, please go [Buy Minecraft](https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc?tabs=%7B%22details%22%3A0%7D).
## Forking
You are free to fork this project as long as you properly credit [ShadowNetworkDevs](https://github.com/ShadowNetworkDevs) & [Colbster937](https://github.com/Colbster937) for making some of the utils used in this port.
+19
View File
@@ -0,0 +1,19 @@
plugins {
base
}
allprojects {
apply(plugin = "eclipse")
repositories {
mavenCentral()
}
pluginManager.withPlugin("java") {
extensions.configure<JavaPluginExtension> {
toolchain {
languageVersion.set(JavaLanguageVersion.of(17))
}
}
}
}
+1
View File
@@ -0,0 +1 @@
org.gradle.jvmargs=-Xmx4G -XX:+UseParallelGC
Binary file not shown.
+12
View File
@@ -0,0 +1,12 @@
[libraries]
hppc = "com.carrotsearch:hppc:0.10.0"
jsr305 = "com.google.code.findbugs:jsr305:3.0.2"
lang3 = "org.apache.commons:commons-lang3:3.6"
jorbis = "org.jcraft:jorbis:0.0.17"
[bundles]
common = [
"hppc",
"jsr305",
"lang3"
]
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.resentclient.oss.eaglercraft.build</groupId>
<artifactId>com.resentclient.oss.eaglercraft.build.gradle.plugin</artifactId>
<version>0.0.0</version>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>com.resentclient.oss.eaglercraft.build</groupId>
<artifactId>plugin</artifactId>
<version>0.0.0</version>
</dependency>
</dependencies>
</project>
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>com.resentclient.oss.eaglercraft.build</groupId>
<artifactId>com.resentclient.oss.eaglercraft.build.gradle.plugin</artifactId>
<versioning>
<latest>0.0.0</latest>
<release>0.0.0</release>
<versions>
<version>0.0.0</version>
</versions>
<lastUpdated>20250517182704</lastUpdated>
</versioning>
</metadata>
@@ -0,0 +1,93 @@
{
"formatVersion": "1.1",
"component": {
"group": "com.resentclient.oss.eaglercraft.build",
"module": "plugin",
"version": "0.0.0",
"attributes": {
"org.gradle.status": "release"
}
},
"createdBy": {
"gradle": {
"version": "8.10"
}
},
"variants": [
{
"name": "apiElements",
"attributes": {
"org.gradle.category": "library",
"org.gradle.dependency.bundling": "external",
"org.gradle.jvm.environment": "standard-jvm",
"org.gradle.jvm.version": 8,
"org.gradle.libraryelements": "jar",
"org.gradle.usage": "java-api",
"org.jetbrains.kotlin.platform.type": "jvm"
},
"files": [
{
"name": "plugin-0.0.0.jar",
"url": "plugin-0.0.0.jar",
"size": 84888,
"sha512": "441fa73bc42f953cef96f58b77a9e1974f41517a19d8dd37818aad73657d4d08a86cbf5cc7a7a5a1d07017845044818a0e45b75c40549b591d418cb88b67ff1e",
"sha256": "41f5f930f9bc3547e35ae35599a8d80de3e006fa6de7ebe88430c647f949ada8",
"sha1": "a092edfdb05dd70020149fac35ec55886b4aab48",
"md5": "f21b11b5c1d7e5120e70b2c98d8a84bf"
}
]
},
{
"name": "runtimeElements",
"attributes": {
"org.gradle.category": "library",
"org.gradle.dependency.bundling": "external",
"org.gradle.jvm.environment": "standard-jvm",
"org.gradle.jvm.version": 8,
"org.gradle.libraryelements": "jar",
"org.gradle.usage": "java-runtime",
"org.jetbrains.kotlin.platform.type": "jvm"
},
"dependencies": [
{
"group": "com.jcraft",
"module": "jzlib",
"version": {
"requires": "1.1.3"
}
},
{
"group": "org.tukaani",
"module": "xz",
"version": {
"requires": "1.10"
}
},
{
"group": "org.jetbrains.kotlin",
"module": "kotlin-stdlib-jdk8"
}
],
"dependencyConstraints": [
{
"group": "org.jetbrains.kotlin",
"module": "kotlin-stdlib-jdk8",
"version": {
"requires": "2.1.10"
}
}
],
"files": [
{
"name": "plugin-0.0.0.jar",
"url": "plugin-0.0.0.jar",
"size": 84888,
"sha512": "441fa73bc42f953cef96f58b77a9e1974f41517a19d8dd37818aad73657d4d08a86cbf5cc7a7a5a1d07017845044818a0e45b75c40549b591d418cb88b67ff1e",
"sha256": "41f5f930f9bc3547e35ae35599a8d80de3e006fa6de7ebe88430c647f949ada8",
"sha1": "a092edfdb05dd70020149fac35ec55886b4aab48",
"md5": "f21b11b5c1d7e5120e70b2c98d8a84bf"
}
]
}
]
}
@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- This module was also published with a richer model, Gradle metadata, -->
<!-- which should be used instead. Do not delete the following line which -->
<!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
<!-- that they should prefer consuming it instead. -->
<!-- do_not_remove: published-with-gradle-metadata -->
<modelVersion>4.0.0</modelVersion>
<groupId>com.resentclient.oss.eaglercraft.build</groupId>
<artifactId>plugin</artifactId>
<version>0.0.0</version>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jdk8</artifactId>
<version>2.1.10</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jzlib</artifactId>
<version>1.1.3</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.tukaani</groupId>
<artifactId>xz</artifactId>
<version>1.10</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jdk8</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
</project>
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>com.resentclient.oss.eaglercraft.build</groupId>
<artifactId>plugin</artifactId>
<versioning>
<latest>0.0.0</latest>
<release>0.0.0</release>
<versions>
<version>0.0.0</version>
</versions>
<lastUpdated>20250517182708</lastUpdated>
</versioning>
</metadata>
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

+446
View File
@@ -0,0 +1,446 @@
1000,43ddd8b48469d9a8c011718aa846facb
1001,aaed8c669f583cf35300f7c5d5396fce
1002,d517ae73160fd8576d7687ead1c1a973
1003,ac37df168bae3c69a24d7fd5bae913c7
1004,6d2591e94464b8327afadbdba44978d
1100,8b1df73e012e2ae34cd2d84a72a7898b
2000,c9ee0d494e0524c86a577cf684f5816d
2001,cd7a2836ea0b77b23a6131222f5be354
2002,381aeedb2c5c5a7a9a01333e0eebc839
2003,229048d1bb9e928831734cb2e5000286
2004,b2c088c3c6928bfe29684a75ae1b127c
2005,1ce3491a1021a5aed07c687e3f6133e6
2006,6c3d114caffd8160f7d56fc8757419a
2007,bcb501cfac8f7e73b455563bddbcb417
2008,e1aa93d7bba48898a32810c43c6ff5c3
2010,d0818779df1b967cc2f8ffc3ada631ec
2011,ecf0dbe93240e84edf6bd263645e634f
2020,b4a67353e11c3039ad755a3e96b4a046
2021,1bb21f7731a5b3ffc6a1e2b586dae3f5
2022,e58162e284df8fe339f05626eb46d835
2023,739948643f5f6f685aea81c42883a480
2024,799b0d35362a9574d3226c2d762b53c6
2025,5ec18fbb462516a1e1a3427e0595a7d6
16908544,12512904b67d2091dd516dc8eeb0cfa0
16908545,a5c35cc01a263f91419d3e8e981708f1
16908546,f6bdebf227e42c204066cede8cb5928c
16908547,9c44e6d3ab80afa2bb52fe3499559d5e
16908548,2e1799ddfdab14417c2a8e24d8c0c731
16908549,3f4169a181feb5d2532efc6aa91f2ee5
16908550,895725d3432cbf374b1cce4f7db28e9
16908551,12892864f18d30521b6f4a6c45b65ece
16908552,146f6c3458adde8e0bca04d976275f85
16908553,7c40dbd9451129b4762f3ab04ce7ffb9
16908554,56d763eeb6a0107c2146d7dccd686d2a
16908555,9a4fff004ae419711c2a876b57cba69f
16908556,170ff67dd90d8d3d8dae393037da5e9b
16908557,3e65d657af8611cb3578cd8713419d4c
16908558,f3cb95383f698c4e9721b5aaa5fac3a7
16908559,65bd006dc163a186f2dbb127f8ec0b27
16908560,8c6479d786f9117e04910153a4f47d86
16908561,75a25bd69f36250789d914ac01da34c1
16908562,87a28b2bf2fad838af72ce00e2fb1937
16908563,249ff32d605c5ba0a07694ff4fbbf15a
16908564,ba3b355eb9134bcd7522a1fc203c4c58
16908565,321e1cb3657d2aca73fb9a8083d9c3bf
16908566,adb182051fab2c2269df89b4f75e505e
16908567,3d9ae8982f01fb6a6c56cffbe2fa074e
16908568,1efffb054b2c864f5ebe180ae46891c3
16908569,25c73629d0b6b46690d222cecf331ba2
16908570,6a46694c996e5721b14c9da1f00fe62c
16908571,5efc1c291eef23fe33f5209388b8cc33
16908572,f71fc7deef6835c8efc305a00f1e8b8f
16908573,15484a373254c6024d90edf3b7a82947
16908574,8253f1aaa2205dcaf828903cfce46e4
16908575,ab778410d1fb2c0e55fec0c7d764b17c
16908576,19ad61c04ff3ae082955f72fc8771866
16908577,b5d3eeff40086643a03f034b5345504d
16908578,3d647bf5562e743263cbd90be36b6a1c
16908579,5a9d2fb7050009785421257d5ef24416
16908580,909b03e2d2eeee2e868b5aaf446e81ea
16908581,e603a4cbfdfcbf4d0bfe25efb753b424
16908582,e355f481f99220e50e4b2b2eb45dcc56
16908583,73a25e59c2d18ae77db02928b0a70e3
16908584,8f81a2fb647f817422a299829994de7b
16908585,128e9978380ee9ef981d2e12d008255e
16908586,fd1453f3e2a3125e7d16cfe6fd2d4722
16908587,8e27b6f750bec22333a5d4108ce1e094
16908588,b2169f6190bdf95236037bed2301712b
16908589,536e6340e5328075ede672428d94d921
16908590,cb9eede8b783b4a5d7ff7529e3fb1f44
16908591,267d51d891c3c32b3a02577d38f4e242
16908592,3f31e8ab260f02acca218c720fafc7b8
16908593,552869a63aa3151e79e875596f31e505
16908594,c5b0399e7fc64f0561a82063773e1282
16908595,cfd61cdbf22133caeca528da9b53474e
16908596,8d3802169313f270d5adcda790170ca2
16908597,a82c4f31d6d3f5bef9aa3062945c02d6
16908598,85eca649072752e9ffafdefa1287470f
16908599,98ffd259abbe2e4794c00716a9d2da7
16908600,263f8fab89ae0f9d695a74512443070b
16908601,b4ae28e8babe7bd09b2a392780565dbe
16908602,dfd84b5b35231267a47891cc8c8f48ba
16908603,f6990bbd57862a238aaf68b0c2f4c998
16908604,9dca837e109ae977a89ed64dd17fab10
16908605,ebdb407fd6e4d5c450f73173487c3162
16908606,fdf869946d814f4f2aeebe269db06e31
16908607,f9ea1fa393862a86e79ffade6a2662e7
16908608,60491b4f5956534afd5959e7c2411cda
16908609,b78fc6d8b8b8ecb1266eb9c04c5129b
16908610,add241f6dcfe6af3f096a45b96fb04e1
16908611,38760b28c0d26204b1e0383ca318947a
16908612,d3d8076b8b7a911b7cbbf5099f8ffd48
16908613,fc78be6fb5735b715325ac499990550e
16908614,a7504fcd85d6696a8880f32b97b34a60
16908615,f0821b6fdc8ebbf8a6fcb37c75086b1d
16908616,88b0e1b842fc88f0cbc5f38e95d68417
16908617,d977f8453c349a44baa7e05c3dd81cb8
16908618,26184c3c1edfa7623d5620433c0ff36
16908619,8edbf7f3996852add4fcb18008cb722f
16908620,39e5881696ed1141fb934593dd6bab70
16908621,1e0d787240ea16af6edbbdb1ab372fe7
16908622,af6ec83a0b072b4abd4194d8d43f7f02
16908623,658b5f77ff892a455a7fce5dc93268ac
16908624,6474336f089d541c9cec4a1df0c3b6cf
16908625,72cfc6fe503df207d53119aa7d5b84b4
16908626,3070c2283ca5fd0fe00f7880a4bcdf18
16908627,340cef5b043dceb7073ede0be69d700d
16908628,24dda1839a72d6707ed1932f6f32bd8e
16908629,1c50c7d94cec18710417d513708094d1
16908630,2b1f11fed636bf7892650b9adc9b8e94
16908631,afd9ba61c39fa742a840fe6ab2cfb490
16908632,b709157ffabe225e820218b020508173
16908633,3e9f7b867952f7b2df48e156402d558
16908634,ab9f22a1fbc265d19a4dd7f84f3a4585
16908635,c89cf9510108d63d7d181b3f7c546094
16908636,c7af3251ce44f2dafb2c192d817e9c52
16908637,796f607d214012447b7c552673f95b4a
16908638,ea796bd83dd7689d322085c74d0957a7
16908639,ce2f6f842d68418baad5fc2ecefcb879
16908640,6b3016429a5f814f3cccaff484a46831
16908641,7dea9bdb69c9c5965609eab99af9f9d9
16908642,3add5c50b3427182fcb7dd04fe953945
16908643,4175965cd5cee134d43038ac54858b0f
16908644,feae27a32b6cc95860ec46da6d37c4b0
16908645,5898813ee0b2785afc9dad2524f56162
16910544,adb04e128238341b88a18532f3448d13
16910545,8e274d3a14b5cb87cbce019d0a3b9a23
16974080,cfed396d9f54d3c04bc390a004916c52
16974081,64f1b3409c0937114f77f9933a4e2b82
16974082,5a6e9dc254405a6cb066472172fa09b1
16974083,b23adf8b24d9a42637977c3322f02b75
16974091,df1b76bca1e6a035d3e22e7c01f67bc6
16974092,4bb3d702d36739ba62041c0c936cbfb6
16974093,d02062bdb07f81100381ef87e6fc2922
16974094,1a0d208f9f489b37b800c6eeaaa752c9
16974095,34ee6807c2040168606740d0e3f46e30
16974096,9b8bb8517841df03f1a894b238251068
16974097,bb0b43349ffa6aa13b5d84ca70d25eb3
16974098,b3b647da85fe51c6da997e28b66cb4c3
16974099,d33c3d7d3fbc6880e0e03ce573644b1e
16974100,17d45fba9866349c133608e9d42e4ac9
16974101,74205e9529729bd0ef51c3d544c1e372
16974102,edf620106dc10c10a3357436a306400d
16974103,74b3a17953dca5a0cb9bb8c47b241eca
16974107,1938aff98985ef5e79c7003868c1e91
16974108,14b782f5d9afda571ce6c8bad868e2bd
16974109,cb124718b4ecfb29a900e1e617c79544
16974110,ae3c73a1546a058da74d4b8a588b59f2
16974114,cbdefe9bd14088ad45141843474d2bb0
16974115,641938697f84f6e7b59ebc08edc4648b
16974116,74ccb1de521aa54c65ffcb906ffd1d3b
16974117,fffed44e7bb844ad6c69f7eb4540cff3
16974118,536b2d3a4009eed61300bf5f0af7419e
16974122,8a8ea889723fc0f8de50c53339819871
16974123,768b65f8e24b1e042b75cf6f576cfcd1
16974124,a4b5522486920acfc2ed97e105c7831
16974125,6e9b513f3c219f4276556070b36a0339
16974126,942450301cd8068c9a14352c1cecc2d0
16974127,c98e2b8eb252d75a2a1f90144596ada4
16974128,7b13a95332dac62ad73cddf33d3bba0f
16974129,1951adc5a346867490626a854788b9ad
16974130,b75636944eeba77a4ce3f254460e0d49
16974131,bb5bc2285c0a2e24548533f59af76788
16974132,929561410b14786db52aa89b675a9759
16974133,6b07bd2605f311d8134a8170ba49fd73
16974134,2f97923d891e3e8c1967d53f7734ff55
16974135,dea0b11c8760d28eafbe76e25df7d301
16974136,586e309c00ba6f3c2ada595b742bef23
16974137,29e48d74dc5062eb900d376196fd4f23
16974138,fa79e8b641b225166b17ea86a9ecb174
16974139,7a66328b6b976337ff5bde5c7edccaa5
16974140,95559b402657cf222a87248d1e6ce0f5
16974141,52843420526ced65d57513afad342515
16974170,56690bacbebf8107b83e80528f40740
16908289,83cfae9a11032a88e08c95b7fcef84cc
16908291,39a4ea3b5ddf7f89b41faf675f7bfc0f
16908292,64ec21dc8495fb180cc94f59f873efb8
16908293,fda16e9858404b9545649ba21a828a6a
16908294,a57157213ffc25d269ea46e45984eae0
16908295,90f2ac6ac3005ad4cabcd248831f2205
16908296,4adafcbbef5ace168ca03e173af10452
16908298,bb2e0425d8b489fc856cab2c0828f2ff
16908300,76b80613789c553593097956002a392b
16908301,23bd5cc4fb97d25e432604be0958320d
16908302,7b129f5775b2d4997681338012130cad
16908303,4935425ac3ef59e71bca7c4c8bf7e2ea
16908304,564d5c2df622b99692929bedbcd7f4b1
16908305,e06bb538b6b224ce1376b47804ee2bbb
16908306,f13b4a0fa66e65ed33dcbd7ead08ac46
16908307,29710a54739e35ae0d34919fca091640
16908308,8693b46ac89dd595f8e3efd4437e6e90
16908309,3ebf10825c7d8f2e17deae70b37d1fbd
16908310,354d414b2a1f29494a80b3acedb72ae2
16908311,de662954670ec00899809b916abe6c60
16908312,831dd7a79cd7e5f3cad86690c6724902
16908313,265f19645487a858e4f53b9706cdff03
16908314,2ad06f9f7e24f920fb067e2f2cc7869c
16908315,99f3286cc36b9a4393b3e967878b01d4
16908316,4fbc91a39f7f4814f8f79ba425e4f30a
16908318,ccb82be2278587dd637ac763a1087c7
16908323,8e8a2f6a87c3701e76650680e7b2f6e6
16908325,fcd992a9a44518d5de6bd09c409ea7de
16908326,e41e706456c10963824e032484992946
16908327,662301d3344073cc69887a27a8c42f24
16908329,313738e052612f868d55f47940080288
16908330,79474b10f860f09be4e9183ad5f1c7b4
16908332,60a3062d151151a2ff229a02d3221337
16908333,833c8c420ce04aa18b9912ff05e5ced2
16908334,6e0f4183ad7abbb63c5b6a1ead24214a
16908335,477292deea02d72acc1087b2425c570a
16908336,82cf44076f1a94ed31f3172433a80ef6
16908337,84f64a9f8523d35a1cf8319f580dd578
16908338,b6365376050089a025a1ed1d85a85dba
16908339,4e989db8b445f22b61bd4d30daee1a05
16908340,50ec890e85029d44ea96bfa31d8ed16a
16908341,b4f23438454d39a742546dafd5d3cfc6
16908342,5414035b686e0fb0a1ce0d535d0a0f82
16908343,72d6218e86d3787422fa6b03f30ccaf3
16908344,ddfe42c53aae03dd94c2d3163869ddc0
16908345,b8b09ac7af1bb81e28715a3e0f0eeb17
16908346,c53d28ac584d8053ec438f692a58cd1a
16908347,243cf7fb2bf36e60e3a25cde83b33a5e
16908349,2837ae3dabc00c4c5515bafa34a302dc
16908351,4973e12438ce4c870f6ba1c158873c43
16908352,37678301896aa95cc358bcd73308232c
16908353,31c5e38768bda9a8a7cd1bbca7c9226d
16908354,5ff1e27f9ef25fcf0a3c51b0551f7fd2
16908355,60a060ee3e51167f4d87cf6d923f9ca7
16908356,b24aa4a609b3483b795c4f3bf89116b7
16908357,7a17a96ff758cd4ff8c0ffd070230cc7
16908358,c14586711c04239a174c192d24b8ce20
16908359,1f0abe2925128be5191932a1cc4a3019
16908360,a9c8343cf444aa7686d9dd2b40e90a47
16908361,94a02b3ef18bb35970105bf276001fe0
16908363,bfa45b4169d1944debabc84b04880837
16908365,a3d0bb31ba7c30209129e4366e072b05
16908366,de6d35451526c85c7c5907a0adcbeff7
16908367,4a0d45a9aedaa06eb574f88f580c265b
16908368,56ab2510d3cb4787bdcfa9680aa7e757
16908369,feef935305ae32e1972d3b017a4eb
16908370,41b270e7ecb39d0b81d1b60f32c3943
16908371,b159339fc55e60000efee4c55d0e1d1c
16908372,74ca5387c7d373fc88e65e0623d5991f
16908373,8b8ae20ea681d47cd899f74f75bde08d
16908374,5cb926f4743f6ccdb4988c8b35dc97dd
16908375,947a02e037fe9d31c8eb4c4a22dba58c
16908376,2c2a7e8a269a770cc4afbe695e662601
16908377,9a992e19651652de8b4f5ce07d1d2af0
16908378,3e37efadc720d972ddc30ccae606ab00
16908380,77b1802a2504a685bf8ff34a1f9de6c3
16908381,45c0dbda39dca97dc634a6e89f037716
16908383,ca404ded18b83fd872a5810c8a44517d
16843027,ecc0eb0ba51e2c14aaa006e168eacc8c
16842753,f6282e18f6f87e4cf68970579aac7219
16843026,6f3d105b3e6d1624af4ce68b2a55362d
16843025,aa1c8e137823bf5245f0d27c980796e7
16843024,ed65803a11251872c6cf659381d0aaaa
16843031,fa2f9de197813d8e32d78bd184603161
16842757,1a13db89ae6fdbb152856edbe3688d95
16843030,46bd8fadf2f12988d808e69dcfc138cb
16843029,bf398d8ec9fef1d04c67fbf474fda790
16843028,69ee29bc3bd715b3203d888ca2a88cc0
16843035,2f79ed9030fe0339dec2eb43f56fa369
16843034,e2f097a36cdf87a1b211d27eb31dea32
16843033,c02e9379a6624b40fef669494a7e7183
16843032,af44f7fe9a4366c67479a44b24ae80b
16843038,501ead1cb03222808aa09b376c9d5cac
16843037,a2d01853631a9b52006ad32497ddc865
16843036,6e381ac09bfc75ef7f71e02f3b99f279
16843010,bcfe734d49949142a5073766188213dc
16843011,88ea7e11c57b09139afe92169c443e20
16843008,91f14375672f1b2003202ec7682771cb
16843009,f5007e4886946d1eb603979a35726d69
16843014,b0bde3daab8a1cc6354cd86c65db90e2
16842772,b59c880de07e668eaba0888fc4de229a
16843015,7184233667abf34d2ee3eea20fb9f82b
16842775,bcc06ff4c56de9b4a1557d3c47ec1783
16842774,6f2eab110a33c15cb17238708244db4d
16843013,3fe45d065187550d481cc745780c29c2
16843018,7bddb0161d99059f0a6c1c09d0b35b34
16842777,fdc779803765398f0c782a1fd55a9d86
16842776,6b6c09ee89a933288c37f55d2187eddd
16843019,87545673867c5cf2f97ea6cc3e0d3595
16843016,e2288c9f60d09d5f2882175abf161bd
16842779,9667a31366f5dcf740d64b775402c64
16843017,e3108d8ee8530e50d7b425de217a4585
16843022,847f1b6f38ebf442a1d34cac0fd6080e
16843023,5d01d19f8441e4d5dd5c41266f480ffc
16842780,b02509b360e6f14eac4fb03f55c11fed
16843020,90e2ab194dab9f482eca64c651ea41e9
16843021,58d3e73bd29c14b6ec97d4187cee5500
16843057,bf533b7d78ccc350cfd2f41a8e1f0822
16842787,e49146643faf3308ca7246d82fc5b2bb
16843056,d8e023c15aa80df2445c782c6b2179da
16843059,c649596d99d96be696332cb08b4a33f2
16843058,d129fce211dfb56e80195a11f39ab1e9
16843061,441d86175b74884ef3f672066ae52c90
16843060,cf6d7dfef99b200a4551cd65467fb9fc
16843063,f50f8b7fafde6d640ced3ec4d797f807
16843062,d22de0ebc290280b2699b5cb77568fcb
16842794,d347d92a886b9d445d7d60b090a5bcda
16843065,a393477443f20a1a8a511c390024f963
16843064,e6f28eea0ebbad0d18d23ea3c15f2102
16843067,d6efe6a63f529d675417c2092546e144
16842793,d5ac3bcc56cbc370ae3b172dd6ed5df4
16843066,935aa84de286e8bced6a127b69347997
16842798,377a21bcb39dcfcb4a0902a7555a984f
16843069,63cc6da6165cc068740827890b4460ed
16843068,6dda3129884399b67b935bb4e51ad34f
16842799,d4831a785c1c65ad2054bb1232babf0c
16842796,48be99a37d3a885d38657a50d6f77365
16842797,8da03c2f611c7f0654aa71096832b5c
16842802,9b2a96570a99f6677e299d8215b1eecd
16843042,322d7c02f205806126f1529564ab3cd0
16843043,660acf0ca76261ec49deb7a7bd072f8c
16843044,d8dd28acc9e4431ff8eb481c1d8d9832
16842806,919bc6715eddf74c0517372ead95cdcb
16843045,72ae59db2ef5c472f671b31f1c6f07ce
16842805,9e359ce06b5603c820bd749592beb4a7
16843046,cee09c2303e44dfbbaadbf167cdc503c
16842810,8ecd9ec7607c958cdf2e252f516fe3d8
16843049,47171b2af8bb14c3816f52f79579b46d
16842809,fef5bbbc588422579bf3de8a49c73e18
16843050,6b29998dbe690122afdf6da71e905009
16843051,5f9f017aa89719c7a282aa222c65baf
16843052,216a61701714cb3f04e23a74a1336864
16843053,e146704e3fe30e6821352ceb3b090184
16842813,899942760d5a83d94cf58a536be6171e
16843054,5aa0a467c7451f88f9c6056e8c7427cc
16843055,6881fc74a0574433e9e0f05f7cae53f7
16843095,50f6c2ffdc69bea12cd7b58c69824be1
16842821,42b4814e4e61191b61a8d3f7c6041938
16843094,356c3f0d5b88d0e2077d85168eac6306
16842822,d69011621d777519c5ab6a68da8959
16843092,d84a39f3d30a72b13640e3afb7ea2018
16843091,37603e187bd7ad9dceccb8ef2b6b5335
16842817,bad6f1072232c28353aabf42142cbd26
16842818,bd0c4079c99e529e55abef5ac44dcdf8
16843088,5e5d08b1780bfd69747216c24b7aee92
16842819,ae608e1ca5ca083163d92974d7c66b06
16843103,d4d1b946336039e515c3e4a392694223
16842828,6a15bcf38bcf78021f9416ac395cac85
16843102,603020acbbdc6e8765c2e2cd589f7933
16842829,41cce73f9ce59993afa3517becd4bd3c
16842824,2368ffe803beb1d06772e96eeffd9cc9
16843099,c373e78822d440c926edf7f1b700d4c5
16843098,503a4fb49cbfebe1fb71ef185c8ced56
16843097,4e72dc4d35b34147ce69d691aa2937e3
16842837,4c903ddf3b9cd49a952a3889fc2c5573
16842836,a304f875b846d65498366479fbf34568
16843076,1b11a34d5c6cee280c727938ee96054b
16843077,ff170af78a0a674445f16e24394546c0
16843074,ba8bd10757ab9a4446f024952bf3f1e3
16843075,b34ec8f0f5f92acf230925c89eacec65
16842832,3b10180dc99ab99568b51010d89c655c
16843072,d752bd5dd907feec915d036d76707ee5
16843073,168e43895b105169862fa2e3c205529b
16842834,58efc828918aa006d5af09e32fe7799b
16843085,b30c099494e63d26f755d58ba109136a
16842841,2c471142bddf9a982a48e0ecb52cbb8
16843082,5574b9699d71e02f3efb48f3712da8bf
16843080,4945e39d1260ff273c49d39dfc58c2a8
16842843,bfc9dce4c1ccef959c57360fb9f70205
16843108,4e225dd49c0231b617a15ded1ba6cb0a
16843109,35715377a038019c56925b2e661cfdab
16843105,3b91182484dc677a0bf27263e612d818
16843106,affab7221afa03df4b7306b9ce50be7f
16843107,e3710bc197d17e0dc78ae3f607c46048
16777217,9012132a1d0f770eca67e62a68247137
16777219,58fc65723143afeb33f742c17e028c94
16777220,1d5e2088f7137e304366873dd829ca98
16777221,66a18fa3f554756edc12bf1a08586bc8
16777222,4007295f7bdae0b78a6e47a9d64521
16777228,c154160ce7b52d4bdc220fc954edf796
16777229,2400808c6f442f2663b6869e4930c879
16777230,7ae3b31e8e0f2f22f50fbf224e1fe4f7
16777231,fe5698e183b10037e38f979a411489b8
16777232,aeae00c7b4a95ff05423c1629bf3ad7e
16777233,72153ea3d60930cebf4c0d37fac89102
16777235,f517ab768fbb35e275440b74b6631bfc
16777236,623df9298630687873579ea16bb97e7b
16777237,6984cb9e6a322728be736860b97b971a
16777238,6947378f4e2abb24b47e2b943945b16f
16777239,55a585682bf0569a60a71a66f031ca2
16777240,f653295b0c48244dc2aa68fc5b94fa29
16777241,c213fb7ee968403b24ff6ede98686add
16777243,afd641da6f3834b319b761ba6d72ff74
16777244,8d822c710a221b8a407b2def97885470
16777246,9c99187cc6fd9c958417b4736772e4d3
16777251,6418210d69669c4a602148ed42ab2ecd
16777253,afe51ea56dc8c831f9b0b5ae02bac702
16777254,95812c1d4021558b6a7f62521228c52a
16777255,3a1252acb6fe968751d2b61d57557e09
16777257,fd7caeeb5d16756028f19ba016ed1970
16777258,6339b8043c05d19c6b15135eade95f94
16777260,aa1ed939a8b275df9dc5474bc0477a33
16777261,b631dcf219d3add3560f243ff6cceb75
16777262,91eca0c33ac53fb155feb15db48c43de
16777263,b681c19d7812c281b4b2feabb88697f4
16777264,a2b07ae4f37a65fe1f5992826b578b02
16777265,af5255a4dcb486e2ab11669fd3de8441
16777266,8a4b2b706f219e52a261e342b47a3964
16777269,921cb54cfb47ca9eca0edcf8e660e3cd
16777270,b79b3a522d1e2f865eb1e9aeb63dc66a
16777272,36e1c1dd8cbb267488e1669811319e7e
16777273,c84a7d710228024c2e100a79a2c30e55
16777274,a1674e3020689bae5680f29f937e5424
16777277,46b34dd723f7efeb38f670925ee3824f
16777281,da71e3e4f9a25c6621d2f0b40ffd1c72
16777282,388109bb9b9b49c1f5bb604abee91671
16777283,eb6912fd84b2d57ed3433acb3f85d3e6
16777285,619967351702f1d570d4d0195bbbcc1e
16777286,ebff74d54387fb154d5b467e01d92b64
16777288,f8154dd7c9c1d397dd64eeb6569d7d34
16777289,971cc6f827398c6c4755b310c6795672
16777291,bb952ff9523f248ddaae56317e91a509
16777293,e5c24577cf35a31bd217d206b88a7499
16777294,f4c170867c75982e604358da611b26e3
16777295,922200512d058ecc0ef19a0efcdb51bf
16777296,39283c3dbafb10b2a732f9d6ef3e08b6
16777297,3603ae881c41c957a89aaa30990c0040
16777298,fbf9e47600457d091060b0f877458a83
16777300,2b0d53bafa91c68bf59b5863354bd7ae
16777301,50b99fabae858e971eb02ed5146fd63a
16777302,7a32eac396b4cf3930ba9ca7b5d8dbae
16777303,115f1e956219026bb9cca0bcafb2b11b
16777304,afb2f032a96d859ca5f24d8ff129bd64
16777305,372b3a0fd7c09f64f3cfcab89f03a9a0
16777306,e4b6233ac91337dcc3940e309d21c3c
16777311,d290638555ce76ce3053c70fdacf7d55
5242880,8099ff561e194072c9086dea38757a89
5242881,90b3d9a90a8cf3e21527fc8fe3b43c49
5242882,c9806dd45be8ebed3e4ab94f66e65212
5242883,f382ded5f9a4299e3879dea4f7fe1c50
5242884,27af08a994f76a2a08ec8671d14fdcc2
5242885,9969ce4355ae7338470461f48f4e5ef5
5242886,39208e0b0f070629cad494da5fb95f0d
5242887,678e63329d3d813f22e0f15006a93768
5242888,694ffe9efa49193780d4b757115c9064
5242889,9080a51ccefd23f9924bae9a854e7b49
5242890,5f1d51ccd1b4adf141707907233f8379
5242891,73df45f45e0b7484ef51441ad0e50604
5242892,c9e52234c475354483dc3e9e6386af61
5242893,3c3ee1df989ecf5de70a5673acfa33b8
5242894,468cc8b546e1586406b78ad733976f5f
5242895,e546a7afaaa6c6729e3b062fc4ace4ae
Binary file not shown.

After

Width:  |  Height:  |  Size: 964 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 523 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 710 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 724 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 708 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 686 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

+51
View File
@@ -0,0 +1,51 @@
Eaglercraft 1.0 is an AOT compiled port of Mojangs Minecraft 1.0 using an opengl 1.3 emulator to simulate a desktop java enviroment fully compatible with minecraft java edition
§1This §1port §1was §1created §1by §4MrNorshare§r §1with §1the §1intent §1to §1teach §4The_real_steve3 §1how §1to §1port
§1EaglercraftX §11.8.8 §1Was §1created §1by §1Lax1dude §1& §1Ayunami2000
scroll down for the detailed license statements
========================================
Copyright (c) 2022 LAX1DUDE
This work is licensed under a Creative Commons
Attribution-NonCommercial 4.0 International License
§nhttp://creativecommons.org/licenses/by-nc/4.0/§r
========================================
TeaVM Copyright 2016 Alexey Andreev.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
§nhttp://www.apache.org/licenses/LICENSE-2.0§r
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
========================================
NVIDIA FXAA 3.11 by TIMOTHY LOTTES
Copyright (c) 2010, 2011 NVIDIA CORPORATION. ALL RIGHTS RESERVED.
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THIS SOFTWARE IS PROVIDED *AS IS* AND NVIDIA AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
========================================
JZlib Copyright (c) 2000-2011 ymnk, JCraft,Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. The names of the authors may not be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT, INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
========================================
|>
Binary file not shown.

After

Width:  |  Height:  |  Size: 654 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

+32
View File
@@ -0,0 +1,32 @@
#line 2
/*
* Copyright (c) 2022-2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
EAGLER_IN(vec2, v_texCoord2f)
EAGLER_IN(vec4, v_color4f)
EAGLER_FRAG_OUT()
uniform sampler2D u_inputTexture;
uniform vec4 u_colorBias4f;
void main() {
EAGLER_FRAG_COLOR = EAGLER_TEXTURE_2D(u_inputTexture, v_texCoord2f) * v_color4f + u_colorBias4f;
if(EAGLER_FRAG_COLOR.a < 0.004) {
discard;
}
}
+50
View File
@@ -0,0 +1,50 @@
#line 2
/*
* Copyright (c) 2022-2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
EAGLER_VSH_LAYOUT_BEGIN()
EAGLER_IN(0, vec3, a_position3f)
EAGLER_IN(1, vec2, c_position2i)
EAGLER_IN(2, vec2, c_coords2i)
EAGLER_IN(3, vec4, c_color4f)
EAGLER_VSH_LAYOUT_END()
EAGLER_OUT(vec2, v_texCoord2f)
EAGLER_OUT(vec4, v_color4f)
uniform mat4 u_matrixTransform;
uniform vec2 u_charSize2f;
uniform vec2 u_charCoordSize2f;
uniform vec4 u_color4f;
void main() {
v_color4f = c_color4f.bgra;
float shadowBit = a_position3f.z;
float boldBit = shadowBit >= 0.5 ? 1.0 : 0.0;
shadowBit -= boldBit * 0.5;
v_color4f.rgb *= (1.0 - shadowBit * 3.0);
v_texCoord2f = (c_coords2i + a_position3f.xy) * u_charCoordSize2f;
vec2 pos2d = c_position2i + vec2(shadowBit * 4.0);
pos2d += a_position3f.xy * u_charSize2f;
pos2d.x += boldBit;
float italicBit = v_color4f.a >= 0.5 ? 2.0 : 0.0;
v_color4f.a -= italicBit * 0.25;
pos2d.x -= (a_position3f.y - 0.5) * italicBit;
v_color4f.a *= 2.0;
v_color4f *= u_color4f;
EAGLER_VERT_POSITION = u_matrixTransform * vec4(pos2d, 0.0, 1.0);
}
+31
View File
@@ -0,0 +1,31 @@
#line 2
/*
* Copyright (c) 2022-2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
EAGLER_IN(vec2, v_texCoord2f)
EAGLER_IN(vec4, v_color4f)
EAGLER_FRAG_OUT()
uniform sampler2D u_inputTexture;
void main() {
EAGLER_FRAG_COLOR = EAGLER_TEXTURE_2D(u_inputTexture, v_texCoord2f) * v_color4f;
if(EAGLER_FRAG_COLOR.a < 0.004) {
discard;
}
}
+55
View File
@@ -0,0 +1,55 @@
#line 2
/*
* Copyright (c) 2022-2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
EAGLER_VSH_LAYOUT_BEGIN()
EAGLER_IN(0, vec2, a_position2f)
EAGLER_IN(1, vec3, p_position3f)
EAGLER_IN(2, vec2, p_texCoords2i)
EAGLER_IN(3, vec2, p_lightMap2f)
EAGLER_IN(4, vec2, p_particleSize_texCoordsSize_2i)
EAGLER_IN(5, vec4, p_color4f)
EAGLER_VSH_LAYOUT_END()
EAGLER_OUT(vec2, v_texCoord2f)
EAGLER_OUT(vec4, v_color4f)
uniform mat4 u_matrixTransform;
uniform vec3 u_texCoordSize2f_particleSize1f;
uniform vec3 u_transformParam_1_2_5_f;
uniform vec2 u_transformParam_3_4_f;
uniform vec4 u_color4f;
uniform sampler2D u_lightmapTexture;
void main() {
v_color4f = u_color4f * p_color4f.bgra * EAGLER_TEXTURE_2D(u_lightmapTexture, p_lightMap2f);
vec2 tex2f = a_position2f * 0.5 + 0.5;
tex2f.y = 1.0 - tex2f.y;
tex2f = p_texCoords2i + tex2f * p_particleSize_texCoordsSize_2i.y;
v_texCoord2f = tex2f * u_texCoordSize2f_particleSize1f.xy;
float particleSize = u_texCoordSize2f_particleSize1f.z * p_particleSize_texCoordsSize_2i.x;
vec3 pos3f = p_position3f;
vec2 spos2f = a_position2f * particleSize;
pos3f += u_transformParam_1_2_5_f * spos2f.xyy;
pos3f.zx += u_transformParam_3_4_f * spos2f;
EAGLER_VERT_POSITION = u_matrixTransform * vec4(pos3f, 1.0);
}
+199
View File
@@ -0,0 +1,199 @@
#line 2
/*
* Copyright (c) 2022-2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
#if defined(COMPILE_ENABLE_TEX_GEN) || defined(COMPILE_ENABLE_FOG)
EAGLER_IN(vec4, v_position4f)
#endif
#ifdef COMPILE_TEXTURE_ATTRIB
EAGLER_IN(vec2, v_texture2f)
#endif
uniform vec4 u_color4f;
#ifdef COMPILE_BLEND_ADD
uniform vec4 u_colorBlendSrc4f;
uniform vec4 u_colorBlendAdd4f;
#endif
#ifdef COMPILE_COLOR_ATTRIB
EAGLER_IN(vec4, v_color4f)
#endif
#ifdef COMPILE_NORMAL_ATTRIB
EAGLER_IN(vec3, v_normal3f)
#endif
#ifdef COMPILE_LIGHTMAP_ATTRIB
EAGLER_IN(vec2, v_lightmap2f)
#endif
#ifdef COMPILE_ENABLE_TEXTURE2D
uniform sampler2D u_samplerTexture;
#if !defined(COMPILE_TEXTURE_ATTRIB) && !defined(COMPILE_ENABLE_TEX_GEN)
uniform vec2 u_textureCoords01;
#endif
#endif
#ifdef COMPILE_ENABLE_LIGHTMAP
uniform sampler2D u_samplerLightmap;
#ifndef COMPILE_LIGHTMAP_ATTRIB
uniform vec2 u_textureCoords02;
#endif
#endif
#ifdef COMPILE_ENABLE_ALPHA_TEST
uniform float u_alphaTestRef1f;
#endif
#ifdef COMPILE_ENABLE_MC_LIGHTING
uniform int u_lightsEnabled1i;
uniform vec4 u_lightsDirections4fv[4];
uniform vec3 u_lightsAmbient3f;
#ifndef COMPILE_NORMAL_ATTRIB
uniform vec3 u_uniformNormal3f;
#endif
#endif
#ifdef COMPILE_ENABLE_FOG
uniform vec4 u_fogParameters4f;
uniform vec4 u_fogColor4f;
#endif
#ifdef COMPILE_ENABLE_TEX_GEN
EAGLER_IN(vec3, v_objectPosition3f)
uniform ivec4 u_texGenPlane4i;
uniform vec4 u_texGenS4f;
uniform vec4 u_texGenT4f;
uniform vec4 u_texGenR4f;
uniform vec4 u_texGenQ4f;
uniform mat4 u_textureMat4f01;
#endif
#ifdef COMPILE_ENABLE_ANISOTROPIC_FIX
uniform vec2 u_textureAnisotropicFix;
#endif
EAGLER_FRAG_OUT()
void main() {
#ifdef COMPILE_COLOR_ATTRIB
vec4 color = v_color4f * u_color4f;
#else
vec4 color = u_color4f;
#endif
#ifdef COMPILE_ENABLE_TEX_GEN
vec4 tmpVec4 = vec4(v_objectPosition3f, 1.0);
vec4 texGenVector;
texGenVector.x = dot(u_texGenPlane4i.x == 1 ? v_position4f : tmpVec4, u_texGenS4f);
texGenVector.y = dot(u_texGenPlane4i.y == 1 ? v_position4f : tmpVec4, u_texGenT4f);
texGenVector.z = dot(u_texGenPlane4i.z == 1 ? v_position4f : tmpVec4, u_texGenR4f);
texGenVector.w = dot(u_texGenPlane4i.w == 1 ? v_position4f : tmpVec4, u_texGenQ4f);
#ifdef EAGLER_HAS_GLES_300
texGenVector.xyz = mat4x3(
u_textureMat4f01[0].xyw,
u_textureMat4f01[1].xyw,
u_textureMat4f01[2].xyw,
u_textureMat4f01[3].xyw
) * texGenVector;
texGenVector.xy /= texGenVector.z;
#else
texGenVector = u_textureMat4f01 * texGenVector;
texGenVector.xy /= texGenVector.w;
#endif
color *= EAGLER_TEXTURE_2D(u_samplerTexture, texGenVector.xy);
#ifdef COMPILE_ENABLE_ALPHA_TEST
if(color.a < u_alphaTestRef1f) discard;
#endif
#else
#ifdef COMPILE_ENABLE_TEXTURE2D
#ifdef COMPILE_TEXTURE_ATTRIB
#ifdef COMPILE_ENABLE_ANISOTROPIC_FIX
// d3d11 doesn't support GL_NEAREST upscaling with anisotropic
// filtering enabled, so it needs this stupid fix to 'work'
vec2 uv = floor(v_texture2f * u_textureAnisotropicFix) + 0.5;
color *= EAGLER_TEXTURE_2D(u_samplerTexture, uv / u_textureAnisotropicFix);
#else
color *= EAGLER_TEXTURE_2D(u_samplerTexture, v_texture2f);
#endif
#else
color *= EAGLER_TEXTURE_2D(u_samplerTexture, u_textureCoords01);
#endif
#endif
#ifdef COMPILE_ENABLE_LIGHTMAP
#ifdef COMPILE_LIGHTMAP_ATTRIB
color *= EAGLER_TEXTURE_2D(u_samplerLightmap, v_lightmap2f);
#else
color *= EAGLER_TEXTURE_2D(u_samplerLightmap, u_textureCoords02);
#endif
#endif
#ifdef COMPILE_BLEND_ADD
color = color * u_colorBlendSrc4f + u_colorBlendAdd4f;
#endif
#ifdef COMPILE_ENABLE_ALPHA_TEST
if(color.a < u_alphaTestRef1f) discard;
#endif
#endif
#ifdef COMPILE_ENABLE_MC_LIGHTING
#ifdef COMPILE_NORMAL_ATTRIB
vec3 normal = normalize(v_normal3f);
#else
vec3 normal = u_uniformNormal3f;
#endif
float diffuse = 0.0;
vec4 light;
#ifdef EAGLER_HAS_GLES_300
for(int i = 0; i < u_lightsEnabled1i; ++i) {
#else
for(int i = 0; i < 4; ++i) {
#endif
light = u_lightsDirections4fv[i];
diffuse += max(dot(light.xyz, normal), 0.0) * light.w;
#ifndef EAGLER_HAS_GLES_300
if(i + 1 >= u_lightsEnabled1i) {
break;
}
#endif
}
color.rgb *= min(u_lightsAmbient3f + vec3(diffuse), 1.0);
#endif
#ifdef COMPILE_ENABLE_FOG
vec3 fogPos = v_position4f.xyz / v_position4f.w;
float dist = length(fogPos);
float fogDensity = u_fogParameters4f.y;
float fogStart = u_fogParameters4f.z;
float fogEnd = u_fogParameters4f.w;
float f = u_fogParameters4f.x > 0.0 ? 1.0 - exp(-fogDensity * dist) :
(dist - fogStart) / (fogEnd - fogStart);
color.rgb = mix(color.rgb, u_fogColor4f.rgb, clamp(f, 0.0, 1.0) * u_fogColor4f.a);
#endif
EAGLER_FRAG_COLOR = color;
}
+99
View File
@@ -0,0 +1,99 @@
#line 2
/*
* Copyright (c) 2022-2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
EAGLER_IN_AUTO(vec3, a_position3f)
#if defined(COMPILE_ENABLE_TEX_GEN) || defined(COMPILE_ENABLE_FOG)
#define _COMPILE_VARYING_POSITION
#endif
#ifdef _COMPILE_VARYING_POSITION
EAGLER_OUT(vec4, v_position4f)
#endif
#ifdef COMPILE_ENABLE_TEX_GEN
EAGLER_OUT(vec3, v_objectPosition3f)
#endif
#ifdef COMPILE_TEXTURE_ATTRIB
EAGLER_IN_AUTO(vec2, a_texture2f)
EAGLER_OUT(vec2, v_texture2f)
uniform mat4 u_textureMat4f01;
#endif
#ifdef COMPILE_COLOR_ATTRIB
EAGLER_IN_AUTO(vec4, a_color4f)
EAGLER_OUT(vec4, v_color4f)
#endif
#ifdef COMPILE_NORMAL_ATTRIB
EAGLER_IN_AUTO(vec4, a_normal4f)
EAGLER_OUT(vec3, v_normal3f)
#endif
#ifdef COMPILE_LIGHTMAP_ATTRIB
EAGLER_IN_AUTO(vec2, a_lightmap2f)
EAGLER_OUT(vec2, v_lightmap2f)
uniform mat4 u_textureMat4f02;
#endif
#ifdef _COMPILE_VARYING_POSITION
uniform mat4 u_modelviewMat4f;
uniform mat4 u_projectionMat4f;
#else
uniform mat4 u_modelviewProjMat4f;
#ifdef COMPILE_NORMAL_ATTRIB
uniform mat4 u_modelviewMat4f;
#endif
#endif
#define TEX_MAT3(mat4In) mat3(mat4In[0].xyw,mat4In[1].xyw,mat4In[3].xyw)
void main() {
#ifdef COMPILE_ENABLE_TEX_GEN
v_objectPosition3f = a_position3f;
#endif
#ifdef _COMPILE_VARYING_POSITION
v_position4f = u_modelviewMat4f * vec4(a_position3f, 1.0);
#endif
#ifdef COMPILE_TEXTURE_ATTRIB
vec3 v_textureTmp3f = TEX_MAT3(u_textureMat4f01) * vec3(a_texture2f, 1.0);
v_texture2f = v_textureTmp3f.xy / v_textureTmp3f.z;
#endif
#ifdef COMPILE_COLOR_ATTRIB
v_color4f = a_color4f;
#endif
#ifdef COMPILE_NORMAL_ATTRIB
v_normal3f = normalize(mat3(u_modelviewMat4f) * a_normal4f.xyz);
#endif
#ifdef COMPILE_LIGHTMAP_ATTRIB
vec3 v_lightmapTmp3f = TEX_MAT3(u_textureMat4f02) * vec3(a_lightmap2f, 1.0);
v_lightmap2f = v_lightmapTmp3f.xy / v_lightmapTmp3f.z;
#endif
#ifdef _COMPILE_VARYING_POSITION
EAGLER_VERT_POSITION = u_projectionMat4f * v_position4f;
#else
EAGLER_VERT_POSITION = u_modelviewProjMat4f * vec4(a_position3f, 1.0);
#endif
}
+98
View File
@@ -0,0 +1,98 @@
#line 2 6969
/*
* Copyright (c) 2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifdef EAGLER_HAS_GLES_300
// For GLES 3.00+ (WebGL 2.0)
#ifdef EAGLER_IS_VERTEX_SHADER
// Vertex Shaders:
#define EAGLER_VSH_LAYOUT_BEGIN()
#define EAGLER_VSH_LAYOUT_END()
#define EAGLER_IN(_loc, _type, _name) layout(location = _loc) in _type _name;
#define EAGLER_IN_AUTO(_type, _name) in _type _name;
#define EAGLER_OUT(_type, _name) out _type _name;
#define EAGLER_VERT_POSITION gl_Position
#else
#ifdef EAGLER_IS_FRAGMENT_SHADER
// Fragment Shaders:
#define EAGLER_IN(_type, _name) in _type _name;
#define EAGLER_FRAG_COLOR eagler_FragColor
#define EAGLER_FRAG_DEPTH gl_FragDepth
#define EAGLER_FRAG_OUT() layout(location = 0) out vec4 EAGLER_FRAG_COLOR;
#endif
#endif
// All Shaders:
#define EAGLER_TEXTURE_2D(tex, coord2f) texture(tex, coord2f)
#define EAGLER_TEXTURE_2D_LOD(_tex, _coord2f, _lod1f) textureLod(_tex, _coord2f, _lod1f)
#define EAGLER_HAS_TEXTURE_2D_LOD
#else
#ifdef EAGLER_HAS_GLES_200
// For GLES 2.00 (WebGL 1.0)
#ifdef EAGLER_IS_VERTEX_SHADER
// Vertex Shaders:
#define EAGLER_VSH_LAYOUT_BEGIN()
#define EAGLER_VSH_LAYOUT_END()
#define EAGLER_IN(_loc, _type, _name) attribute _type _name;
#define EAGLER_IN_AUTO(_type, _name) attribute _type _name;
#define EAGLER_OUT(_type, _name) varying _type _name;
#define EAGLER_VERT_POSITION gl_Position
#else
#ifdef EAGLER_IS_FRAGMENT_SHADER
// Fragment Shaders:
#define EAGLER_IN(_type, _name) varying _type _name;
#define EAGLER_FRAG_COLOR gl_FragColor
// TODO: Must require EXT_frag_depth to use this on GLES 2.0 (currently not needed)
#define EAGLER_FRAG_DEPTH gl_FragDepth
#define EAGLER_FRAG_OUT()
#endif
#endif
// All Shaders:
#define EAGLER_TEXTURE_2D(_tex, _coord2f) texture2D(_tex, _coord2f)
#ifdef EAGLER_HAS_GLES_200_SHADER_TEXTURE_LOD
#define EAGLER_TEXTURE_2D_LOD(_tex, _coord2f, _lod1f) texture2DLodEXT(_tex, _coord2f, _lod1f)
#define EAGLER_HAS_TEXTURE_2D_LOD
#else
// Beware!
#define EAGLER_TEXTURE_2D_LOD(_tex, _coord2f, _lod1f) texture2D(_tex, _coord2f)
#define EAGLER_HAS_TEXTURE_2D_LOD
#endif
#else
#error Unable to determine API version! (Missing directive EAGLER_HAS_GLES_200 or 300)
#endif
#endif
#line 1 0
+55
View File
@@ -0,0 +1,55 @@
#line 2
/*
* Copyright (c) 2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
EAGLER_IN(vec2, v_position2f)
EAGLER_FRAG_OUT()
uniform sampler2D u_inputTexture;
uniform mat4 u_textureMatrix;
vec2 rand(in vec2 co){
float f = dot(co, vec2(12.98984576, 78.23378678));
return fract(vec2(sin(f + 0.32490982), cos(f - 0.69890)) * 43758.54576873);
}
void main() {
vec4 coords4f = vec4(v_position2f.x * 0.25 - 0.125, v_position2f.y * 0.25 - 0.125, v_position2f.y * 10.0 - 9.0, 1.0);
coords4f = u_textureMatrix * coords4f;
coords4f.xy /= coords4f.w;
EAGLER_FRAG_COLOR = EAGLER_TEXTURE_2D(u_inputTexture, coords4f.xy * 0.5 + 0.5);
EAGLER_FRAG_COLOR.rg += rand(v_position2f * 1.2344574345) * 0.05;
EAGLER_FRAG_COLOR.ba -= rand(v_position2f * 1.2343525225) * 0.05;
EAGLER_FRAG_COLOR.a = fract(sin(dot(coords4f.yz, vec2(12.9898, 78.233))) * 43758.5453);
EAGLER_FRAG_COLOR.a += exp(length(rand(coords4f.xw)) * -69.420);
EAGLER_FRAG_COLOR = pow(EAGLER_FRAG_COLOR, vec4(1.0 / 2.423952));
EAGLER_FRAG_COLOR = pow(EAGLER_FRAG_COLOR, vec4(5.4523856));
EAGLER_FRAG_COLOR += 0.00004423 + EAGLER_FRAG_COLOR.a * 0.02;
EAGLER_FRAG_COLOR = sqrt(EAGLER_FRAG_COLOR);
EAGLER_FRAG_COLOR = pow(EAGLER_FRAG_COLOR, vec4(1.0 / 1.9023576));
#ifdef EAGLER_HAS_GLES_300
EAGLER_FRAG_COLOR.ra += tanh(fract(EAGLER_FRAG_COLOR.a * 32.324834)) * 0.1012426;
#endif
EAGLER_FRAG_COLOR.b *= 0.934924;
EAGLER_FRAG_COLOR.b += (1.23213 / inversesqrt(EAGLER_FRAG_COLOR.a)) * 0.156365;
EAGLER_FRAG_COLOR.ga += rand(gl_FragCoord.xy) * 0.13423567;
EAGLER_FRAG_COLOR.rb += gl_PointCoord * 0.0124264565;
#ifdef EAGLER_HAS_GLES_300
EAGLER_FRAG_COLOR *= 0.95234 + asinh(EAGLER_FRAG_COLOR.g * 5.23423) * 0.0254325;
#endif
}
+28
View File
@@ -0,0 +1,28 @@
#line 2
/*
* Copyright (c) 2022-2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
EAGLER_VSH_LAYOUT_BEGIN()
EAGLER_IN(0, vec2, a_position2f)
EAGLER_VSH_LAYOUT_END()
EAGLER_OUT(vec2, v_position2f)
void main() {
v_position2f = a_position2f * 0.5 + 0.5;
EAGLER_VERT_POSITION = vec4(a_position2f, 0.0, 1.0);
}
+369
View File
@@ -0,0 +1,369 @@
#line 2
// Remove this line below if you plan to modify this file
#ifndef EAGLER_IS_GLES_200
#define USE_OPTIMIZED
#endif
/*
* Copyright (c) 2022-2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
/*
* This file was modified by lax1dude to remove dead code
*
* Original: https://gist.github.com/kosua20/0c506b81b3812ac900048059d2383126
*
*/
/*
* ============================================================================
*
*
* NVIDIA FXAA 3.11 by TIMOTHY LOTTES
*
*
* ------------------------------------------------------------------------------
* COPYRIGHT (C) 2010, 2011 NVIDIA CORPORATION. ALL RIGHTS RESERVED.
* ------------------------------------------------------------------------------
* TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THIS SOFTWARE IS PROVIDED
* *AS IS* AND NVIDIA AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES, EITHER EXPRESS
* OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA
* OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR
* CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR
* LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION,
* OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE
* THIS SOFTWARE, EVEN IF NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGES.
*
*/
EAGLER_IN(vec2, v_position2f)
EAGLER_FRAG_OUT()
uniform sampler2D u_screenTexture;
uniform vec2 u_screenSize2f;
#ifndef USE_OPTIMIZED
#ifndef FXAA_GREEN_AS_LUMA
// For those using non-linear color,
// and either not able to get luma in alpha, or not wanting to,
// this enables FXAA to run using green as a proxy for luma.
// So with this enabled, no need to pack luma in alpha.
//
// This will turn off AA on anything which lacks some amount of green.
// Pure red and blue or combination of only R and B, will get no AA.
//
// Might want to lower the settings for both,
// fxaaConsoleEdgeThresholdMin
// fxaaQualityEdgeThresholdMin
// In order to insure AA does not get turned off on colors
// which contain a minor amount of green.
//
// 1 = On.
// 0 = Off.
//
#define FXAA_GREEN_AS_LUMA 0
#endif
#ifndef FXAA_DISCARD
// 1 = Use discard on pixels which don't need AA.
// 0 = Return unchanged color on pixels which don't need AA.
#define FXAA_DISCARD 0
#endif
/*============================================================================
API PORTING
============================================================================*/
#define FxaaBool bool
#define FxaaDiscard discard
#define FxaaFloat float
#define FxaaFloat2 vec2
#define FxaaFloat3 vec3
#define FxaaFloat4 vec4
#define FxaaHalf float
#define FxaaHalf2 vec2
#define FxaaHalf3 vec3
#define FxaaHalf4 vec4
#define FxaaInt2 ivec2
#define FxaaSat(x) clamp(x, 0.0, 1.0)
#define FxaaTex sampler2D
/*--------------------------------------------------------------------------*/
#define FxaaTexTop(t, p) EAGLER_TEXTURE_2D_LOD(t, p, 0.0)
/*============================================================================
GREEN AS LUMA OPTION SUPPORT FUNCTION
============================================================================*/
#if (FXAA_GREEN_AS_LUMA == 0)
FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return dot(rgba.xyz * rgba.xyz, vec3(0.299, 0.587, 0.114)); }
#else
FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.y; }
#endif
/*============================================================================
FXAA3 CONSOLE - PC VERSION
============================================================================*/
/*--------------------------------------------------------------------------*/
FxaaFloat4 FxaaPixelShader(
// See FXAA Quality FxaaPixelShader() source for docs on Inputs!
//
// Use noperspective interpolation here (turn off perspective interpolation).
// {xy} = center of pixel
FxaaFloat2 pos,
//
// Used only for FXAA Console, and not used on the 360 version.
// Use noperspective interpolation here (turn off perspective interpolation).
// {xy__} = upper left of pixel
// {__zw} = lower right of pixel
FxaaFloat4 fxaaConsolePosPos,
//
// Input color texture.
// {rgb_} = color in linear or perceptual color space
// if (FXAA_GREEN_AS_LUMA == 0)
// {___a} = luma in perceptual color space (not linear)
FxaaTex tex,
//
// Only used on FXAA Console.
// This must be from a constant/uniform.
// This effects sub-pixel AA quality and inversely sharpness.
// Where N ranges between,
// N = 0.50 (default)
// N = 0.33 (sharper)
// {x___} = -N/screenWidthInPixels
// {_y__} = -N/screenHeightInPixels
// {__z_} = N/screenWidthInPixels
// {___w} = N/screenHeightInPixels
FxaaFloat4 fxaaConsoleRcpFrameOpt,
//
// Only used on FXAA Console.
// Not used on 360, but used on PS3 and PC.
// This must be from a constant/uniform.
// {x___} = -2.0/screenWidthInPixels
// {_y__} = -2.0/screenHeightInPixels
// {__z_} = 2.0/screenWidthInPixels
// {___w} = 2.0/screenHeightInPixels
FxaaFloat4 fxaaConsoleRcpFrameOpt2,
//
// Only used on FXAA Console.
// This used to be the FXAA_CONSOLE__EDGE_SHARPNESS define.
// It is here now to allow easier tuning.
// This does not effect PS3, as this needs to be compiled in.
// Use FXAA_CONSOLE__PS3_EDGE_SHARPNESS for PS3.
// Due to the PS3 being ALU bound,
// there are only three safe values here: 2 and 4 and 8.
// These options use the shaders ability to a free *|/ by 2|4|8.
// For all other platforms can be a non-power of two.
// 8.0 is sharper (default!!!)
// 4.0 is softer
// 2.0 is really soft (good only for vector graphics inputs)
FxaaFloat fxaaConsoleEdgeSharpness,
//
// Only used on FXAA Console.
// This used to be the FXAA_CONSOLE__EDGE_THRESHOLD define.
// It is here now to allow easier tuning.
// This does not effect PS3, as this needs to be compiled in.
// Use FXAA_CONSOLE__PS3_EDGE_THRESHOLD for PS3.
// Due to the PS3 being ALU bound,
// there are only two safe values here: 1/4 and 1/8.
// These options use the shaders ability to a free *|/ by 2|4|8.
// The console setting has a different mapping than the quality setting.
// Other platforms can use other values.
// 0.125 leaves less aliasing, but is softer (default!!!)
// 0.25 leaves more aliasing, and is sharper
FxaaFloat fxaaConsoleEdgeThreshold,
//
// Only used on FXAA Console.
// This used to be the FXAA_CONSOLE__EDGE_THRESHOLD_MIN define.
// It is here now to allow easier tuning.
// Trims the algorithm from processing darks.
// The console setting has a different mapping than the quality setting.
// This does not apply to PS3,
// PS3 was simplified to avoid more shader instructions.
// 0.06 - faster but more aliasing in darks
// 0.05 - default
// 0.04 - slower and less aliasing in darks
// Special notes when using FXAA_GREEN_AS_LUMA,
// Likely want to set this to zero.
// As colors that are mostly not-green
// will appear very dark in the green channel!
// Tune by looking at mostly non-green content,
// then start at zero and increase until aliasing is a problem.
FxaaFloat fxaaConsoleEdgeThresholdMin
) {
/*--------------------------------------------------------------------------*/
FxaaFloat lumaNw = FxaaLuma(FxaaTexTop(tex, fxaaConsolePosPos.xy));
FxaaFloat lumaSw = FxaaLuma(FxaaTexTop(tex, fxaaConsolePosPos.xw));
FxaaFloat lumaNe = FxaaLuma(FxaaTexTop(tex, fxaaConsolePosPos.zy));
FxaaFloat lumaSe = FxaaLuma(FxaaTexTop(tex, fxaaConsolePosPos.zw));
/*--------------------------------------------------------------------------*/
FxaaFloat4 rgbyM = FxaaTexTop(tex, pos.xy);
#if (FXAA_GREEN_AS_LUMA == 0)
// TODO Luma
FxaaFloat lumaM = FxaaLuma(rgbyM);
#else
FxaaFloat lumaM = rgbyM.y;
#endif
/*--------------------------------------------------------------------------*/
FxaaFloat lumaMaxNwSw = max(lumaNw, lumaSw);
lumaNe += 1.0/384.0;
FxaaFloat lumaMinNwSw = min(lumaNw, lumaSw);
/*--------------------------------------------------------------------------*/
FxaaFloat lumaMaxNeSe = max(lumaNe, lumaSe);
FxaaFloat lumaMinNeSe = min(lumaNe, lumaSe);
/*--------------------------------------------------------------------------*/
FxaaFloat lumaMax = max(lumaMaxNeSe, lumaMaxNwSw);
FxaaFloat lumaMin = min(lumaMinNeSe, lumaMinNwSw);
/*--------------------------------------------------------------------------*/
FxaaFloat lumaMaxScaled = lumaMax * fxaaConsoleEdgeThreshold;
/*--------------------------------------------------------------------------*/
FxaaFloat lumaMinM = min(lumaMin, lumaM);
FxaaFloat lumaMaxScaledClamped = max(fxaaConsoleEdgeThresholdMin, lumaMaxScaled);
FxaaFloat lumaMaxM = max(lumaMax, lumaM);
FxaaFloat dirSwMinusNe = lumaSw - lumaNe;
FxaaFloat lumaMaxSubMinM = lumaMaxM - lumaMinM;
FxaaFloat dirSeMinusNw = lumaSe - lumaNw;
if(lumaMaxSubMinM < lumaMaxScaledClamped)
{
#if (FXAA_DISCARD == 1)
FxaaDiscard;
#else
return rgbyM;
#endif
}
/*--------------------------------------------------------------------------*/
FxaaFloat2 dir;
dir.x = dirSwMinusNe + dirSeMinusNw;
dir.y = dirSwMinusNe - dirSeMinusNw;
/*--------------------------------------------------------------------------*/
FxaaFloat2 dir1 = normalize(dir.xy);
FxaaFloat4 rgbyN1 = FxaaTexTop(tex, pos.xy - dir1 * fxaaConsoleRcpFrameOpt.zw);
FxaaFloat4 rgbyP1 = FxaaTexTop(tex, pos.xy + dir1 * fxaaConsoleRcpFrameOpt.zw);
/*--------------------------------------------------------------------------*/
FxaaFloat dirAbsMinTimesC = min(abs(dir1.x), abs(dir1.y)) * fxaaConsoleEdgeSharpness;
FxaaFloat2 dir2 = clamp(dir1.xy / dirAbsMinTimesC, -2.0, 2.0);
/*--------------------------------------------------------------------------*/
FxaaFloat2 dir2x = dir2 * fxaaConsoleRcpFrameOpt2.zw;
FxaaFloat4 rgbyN2 = FxaaTexTop(tex, pos.xy - dir2x);
FxaaFloat4 rgbyP2 = FxaaTexTop(tex, pos.xy + dir2x);
/*--------------------------------------------------------------------------*/
FxaaFloat4 rgbyA = rgbyN1 + rgbyP1;
FxaaFloat4 rgbyB = ((rgbyN2 + rgbyP2) * 0.25) + (rgbyA * 0.25);
/*--------------------------------------------------------------------------*/
#if (FXAA_GREEN_AS_LUMA == 0)
// TODO Luma
float lumaB = FxaaLuma(rgbyB);
#else
float lumaB = rgbyB.y;
#endif
if((lumaB < lumaMin) || (lumaB > lumaMax))
rgbyB.xyz = rgbyA.xyz * 0.5;
//
return rgbyB;
}
/*==========================================================================*/
#define edgeSharpness 3.0
#define edgeThreshold 0.15
#define edgeThresholdMin 0.05
void main(){
vec2 screenSize05 = 0.5 * u_screenSize2f;
vec4 posPos;
posPos.xy = v_position2f;
posPos.zw = v_position2f + u_screenSize2f;
vec4 rcpFrameOpt;
rcpFrameOpt.xy = -screenSize05;
rcpFrameOpt.zw = screenSize05;
EAGLER_FRAG_COLOR = vec4(FxaaPixelShader(v_position2f + screenSize05, posPos, u_screenTexture, rcpFrameOpt, rcpFrameOpt * 4.0, edgeSharpness, edgeThreshold, edgeThresholdMin).rgb, 1.0);
}
#else
// This 'optimized' code was generated using glslangValidator + spirv-cross + spirv-opt on the source code above
// Is it faster? Idfk, probably compiles faster at least, what matters it I tried
float _616;
void main()
{
mediump vec2 _257 = u_screenSize2f * 0.5;
mediump vec4 _611 = vec4(v_position2f, v_position2f + u_screenSize2f);
mediump vec4 _612 = vec4(_616, _616, _257);
mediump vec2 _290 = v_position2f + _257;
mediump vec4 _608;
for(;;)
{
mediump vec3 _532 = EAGLER_TEXTURE_2D_LOD(u_screenTexture, _611.xy, 0.0).xyz;
mediump float _536 = dot(_532 * _532, vec3(0.2989999949932098388671875, 0.58700001239776611328125, 0.114000000059604644775390625));
mediump vec3 _540 = EAGLER_TEXTURE_2D_LOD(u_screenTexture, _611.xw, 0.0).xyz;
mediump float _544 = dot(_540 * _540, vec3(0.2989999949932098388671875, 0.58700001239776611328125, 0.114000000059604644775390625));
mediump vec3 _548 = EAGLER_TEXTURE_2D_LOD(u_screenTexture, _611.zy, 0.0).xyz;
mediump vec3 _556 = EAGLER_TEXTURE_2D_LOD(u_screenTexture, _611.zw, 0.0).xyz;
mediump float _560 = dot(_556 * _556, vec3(0.2989999949932098388671875, 0.58700001239776611328125, 0.114000000059604644775390625));
mediump vec4 _390 = EAGLER_TEXTURE_2D_LOD(u_screenTexture, _290, 0.0);
mediump vec3 _564 = _390.xyz;
mediump float _568 = dot(_564 * _564, vec3(0.2989999949932098388671875, 0.58700001239776611328125, 0.114000000059604644775390625));
mediump float _397 = dot(_548 * _548, vec3(0.2989999949932098388671875, 0.58700001239776611328125, 0.114000000059604644775390625)) + 0.00260416674427688121795654296875;
mediump float _409 = max(max(_397, _560), max(_536, _544));
mediump float _412 = min(min(_397, _560), min(_536, _544));
mediump float _427 = _544 - _397;
mediump float _433 = _560 - _536;
if ((max(_409, _568) - min(_412, _568)) < max(0.0500000007450580596923828125, _409 * 0.1500000059604644775390625))
{
_608 = _390;
break;
}
mediump vec2 _449 = normalize(vec2(_427 + _433, _427 - _433));
vec2 hp_copy_449 = _449;
mediump vec2 _454 = _612.zw;
vec2 _614 = -hp_copy_449;
mediump vec2 mp_copy_614 = _614;
mediump vec2 _481 = clamp(_449 / vec2(min(abs(_449.x), abs(_449.y)) * 3.0), vec2(-2.0), vec2(2.0));
vec2 hp_copy_481 = _481;
mediump vec2 _484 = (_612 * 4.0).zw;
vec2 _615 = -hp_copy_481;
mediump vec2 mp_copy_615 = _615;
mediump vec4 _498 = EAGLER_TEXTURE_2D_LOD(u_screenTexture, mp_copy_614 * _454 + _290, 0.0) + EAGLER_TEXTURE_2D_LOD(u_screenTexture, _449 * _454 + _290, 0.0);
mediump vec4 _505 = ((EAGLER_TEXTURE_2D_LOD(u_screenTexture, mp_copy_615 * _484 + _290, 0.0) + EAGLER_TEXTURE_2D_LOD(u_screenTexture, _481 * _484 + _290, 0.0)) * 0.25) + (_498 * 0.25);
mediump float _576 = dot(_505.xyz * _505.xyz, vec3(0.2989999949932098388671875, 0.58700001239776611328125, 0.114000000059604644775390625));
mediump vec4 _607;
if ((_576 < _412) || (_576 > _409))
{
mediump vec3 _518 = _498.xyz * 0.5;
mediump vec4 _600;
_600.x = _518.x;
_600.y = _518.y;
_600.z = _518.z;
_607 = _600;
}
else
{
_607 = _505;
}
_608 = _607;
break;
}
EAGLER_FRAG_COLOR = vec4(_608.xyz, 1.0);
}
#endif
+43
View File
@@ -0,0 +1,43 @@
#line 2
/*
* Copyright (c) 2023-2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
EAGLER_IN(vec2, v_texCoords2f)
#ifndef COMPILE_BLIT_DEPTH
EAGLER_FRAG_OUT()
#endif
uniform sampler2D u_inputTexture;
uniform float u_textureLod1f;
#ifdef COMPILE_PIXEL_ALIGNMENT
uniform vec4 u_pixelAlignmentSizes4f;
uniform vec2 u_pixelAlignmentOffset2f;
#endif
void main() {
vec2 uv2f = v_texCoords2f;
#ifdef COMPILE_PIXEL_ALIGNMENT
uv2f = (floor(uv2f * u_pixelAlignmentSizes4f.xy) + u_pixelAlignmentOffset2f) * u_pixelAlignmentSizes4f.zw;
#endif
#ifndef COMPILE_BLIT_DEPTH
EAGLER_FRAG_COLOR = EAGLER_TEXTURE_2D_LOD(u_inputTexture, uv2f, u_textureLod1f);
#else
EAGLER_FRAG_DEPTH = EAGLER_TEXTURE_2D_LOD(u_inputTexture, uv2f, u_textureLod1f).r;
#endif
}
+32
View File
@@ -0,0 +1,32 @@
#line 2
/*
* Copyright (c) 2023-2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
EAGLER_VSH_LAYOUT_BEGIN()
EAGLER_IN(0, vec2, a_position2f)
EAGLER_VSH_LAYOUT_END()
EAGLER_OUT(vec2, v_texCoords2f)
uniform vec4 u_srcCoords4f;
uniform vec4 u_dstCoords4f;
void main() {
vec2 uv = a_position2f * 0.5 + 0.5;
v_texCoords2f = u_srcCoords4f.xy + u_srcCoords4f.zw * uv;
EAGLER_VERT_POSITION = vec4(u_dstCoords4f.xy + u_dstCoords4f.zw * uv, 0.0, 1.0);
}
+33
View File
@@ -0,0 +1,33 @@
#line 2
/*
* Copyright (c) 2022-2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
EAGLER_IN(vec2, v_position2f)
EAGLER_FRAG_OUT()
uniform sampler2D u_inputTexture;
uniform float u_textureLod1f;
uniform vec4 u_blendFactor4f;
uniform vec4 u_blendBias4f;
uniform mat3 u_matrixTransform;
void main() {
vec3 coords = u_matrixTransform * vec3(v_position2f, 1.0);
vec4 color4f = EAGLER_TEXTURE_2D_LOD(u_inputTexture, coords.xy, u_textureLod1f);
EAGLER_FRAG_COLOR = color4f * u_blendFactor4f + u_blendBias4f;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 950 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 818 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1011 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Some files were not shown because too many files have changed in this diff Show More