Merged master fixed conflict.
This commit is contained in:
commit
3a9ed0e846
37 changed files with 56892 additions and 5730 deletions
51
CHANGELOG
51
CHANGELOG
|
|
@ -1,11 +1,60 @@
|
||||||
changelog
|
changelog
|
||||||
---------
|
---------
|
||||||
|
|
||||||
Current Release: raylib 1.2.2 (31 December 2014)
|
Current Release: raylib 1.3.0 (01 September 2015)
|
||||||
|
|
||||||
NOTE: Only versions marked as 'Release' are available in installer, updates are only available as source.
|
NOTE: Only versions marked as 'Release' are available in installer, updates are only available as source.
|
||||||
NOTE: Current Release includes all previous updates.
|
NOTE: Current Release includes all previous updates.
|
||||||
|
|
||||||
|
-----------------------------------------------
|
||||||
|
Release: raylib 1.3.0 (01 September 2015)
|
||||||
|
-----------------------------------------------
|
||||||
|
NOTE:
|
||||||
|
This version supposed a big boost for raylib, new modules have been added with lots of features.
|
||||||
|
Most of the modules have been completely reviewed to accomodate to the new features.
|
||||||
|
|
||||||
|
BIG changes:
|
||||||
|
[camera] NEW MODULE: Set of cameras for 3d view: Free, Orbital, 1st person, 3rd person
|
||||||
|
[gestures] NEW MODULE: Gestures system for Android and HTML5 platforms
|
||||||
|
[raygui] NEW MODULE: Set of IMGUI elements for tools development
|
||||||
|
[rlgl] SHADERS: Support for model shaders and postprocessing shaders (multiple functions)
|
||||||
|
[textures] FORMATS: Added support for multiple internal formats, including compressed formats
|
||||||
|
|
||||||
|
smaller changes:
|
||||||
|
[rlgl] Added check for OpenGL supported extensions
|
||||||
|
[rlgl] Added function SetBlenMode() to select some predefined blending modes
|
||||||
|
[core] Added support for drop&drag of external files into running program
|
||||||
|
[core] Added functions ShowCursor(), HideCursor(), IsCursorHidden()
|
||||||
|
[core] Renamed function SetFlags() to SetConfigFlags()
|
||||||
|
[shapes] Simplified some functions to improve performance
|
||||||
|
[textures] Added function LoadImageEx()
|
||||||
|
[textures] Added function LoadImageRaw()
|
||||||
|
[textures] Added function LoadTextureEx()
|
||||||
|
[textures] Simplified function parameters LoadTextureFromImage()
|
||||||
|
[textures] Added function GetImageData()
|
||||||
|
[textures] Added function GetTextureData()
|
||||||
|
[textures] Renamed function ConvertToPOT() to ImageConvertToPOT()
|
||||||
|
[textures] Added function ImageConvertFormat()
|
||||||
|
[textures] Added function GenTextureMipmaps()
|
||||||
|
[text] Added support for Latin-1 Extended characters for default font
|
||||||
|
[models] Review of struct: Model (added shaders support)
|
||||||
|
[models] Added 3d collision functions (sphere vs sphere vs box vs box)
|
||||||
|
[models] Added function DrawCubeTexture()
|
||||||
|
[models] Added function DrawQuad()
|
||||||
|
[models] Added function DrawRay()
|
||||||
|
[models] Simplified funtion DrawPlane()
|
||||||
|
[models] Removed function DrawPlaneEx()
|
||||||
|
[models] Simplified funtion DrawGizmo()
|
||||||
|
[models] Removed function DrawGizmoEx()
|
||||||
|
[models] Added function LoadModelEx()
|
||||||
|
[models] Review of function LoadCubicMap()
|
||||||
|
[models] Added function ResolveCollisionCubicmap()
|
||||||
|
[audio] Decopupled from raylib, now this module can be used as standalone
|
||||||
|
[audio] Added function UpdateMusicStream()
|
||||||
|
[raymath] Complete review of the module
|
||||||
|
[stb] Updated to latest headers versions
|
||||||
|
[*] Lots of tweaks around
|
||||||
|
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
Release: raylib 1.2.2 (31 December 2014)
|
Release: raylib 1.2.2 (31 December 2014)
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ with a small [donation](http://www.raylib.com/helpme.htm) (just some euros...).
|
||||||
raylib philosophy
|
raylib philosophy
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
* raylib is a tool to LEARN videogames programming, every single function in raylib should be a tutorial on itself.
|
* raylib is a tool to LEARN videogames programming, every single function in raylib should be a tutorial on itself (clear code).
|
||||||
* raylib is SIMPLE and EASY-TO-USE, I tried to keep it compact with a small set of functions, if a function is too complex or
|
* raylib is SIMPLE and EASY-TO-USE, I tried to keep it compact with a small set of functions, if a function is too complex or
|
||||||
has not a clear usefulness, better not to include it.
|
has not a clear usefulness, better not to include it.
|
||||||
* raylib is open source and free; educators and institutions can use this tool to TEACH videogames programming completely by free.
|
* raylib is open source and free; educators and institutions can use this tool to TEACH videogames programming completely by free.
|
||||||
|
|
|
||||||
342
LICENSE.md
342
LICENSE.md
|
|
@ -37,3 +37,345 @@ All rBMF fonts provided with raylib are free to use (freeware) and have been des
|
||||||
* Mecha - Captain Falcon
|
* Mecha - Captain Falcon
|
||||||
* PixelPlay - Aleksander Shevchuk
|
* PixelPlay - Aleksander Shevchuk
|
||||||
* PixAntiqua - Gerhard Großmann
|
* PixAntiqua - Gerhard Großmann
|
||||||
|
|
||||||
|
3d models
|
||||||
|
---------
|
||||||
|
|
||||||
|
dwarf 3d model used in examples is created by Daniel Moreno and licensed as Creative Commons Attribution-NonCommercial 3.0
|
||||||
|
|
||||||
|
Full license provided below:
|
||||||
|
|
||||||
|
Creative Commons Legal Code
|
||||||
|
|
||||||
|
Attribution-NonCommercial 3.0 Unported
|
||||||
|
|
||||||
|
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
|
||||||
|
LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN
|
||||||
|
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
|
||||||
|
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
|
||||||
|
REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR
|
||||||
|
DAMAGES RESULTING FROM ITS USE.
|
||||||
|
|
||||||
|
License
|
||||||
|
|
||||||
|
THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE
|
||||||
|
COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY
|
||||||
|
COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
|
||||||
|
AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
|
||||||
|
|
||||||
|
BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE
|
||||||
|
TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY
|
||||||
|
BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS
|
||||||
|
CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND
|
||||||
|
CONDITIONS.
|
||||||
|
|
||||||
|
1. Definitions
|
||||||
|
|
||||||
|
a. "Adaptation" means a work based upon the Work, or upon the Work and
|
||||||
|
other pre-existing works, such as a translation, adaptation,
|
||||||
|
derivative work, arrangement of music or other alterations of a
|
||||||
|
literary or artistic work, or phonogram or performance and includes
|
||||||
|
cinematographic adaptations or any other form in which the Work may be
|
||||||
|
recast, transformed, or adapted including in any form recognizably
|
||||||
|
derived from the original, except that a work that constitutes a
|
||||||
|
Collection will not be considered an Adaptation for the purpose of
|
||||||
|
this License. For the avoidance of doubt, where the Work is a musical
|
||||||
|
work, performance or phonogram, the synchronization of the Work in
|
||||||
|
timed-relation with a moving image ("synching") will be considered an
|
||||||
|
Adaptation for the purpose of this License.
|
||||||
|
b. "Collection" means a collection of literary or artistic works, such as
|
||||||
|
encyclopedias and anthologies, or performances, phonograms or
|
||||||
|
broadcasts, or other works or subject matter other than works listed
|
||||||
|
in Section 1(f) below, which, by reason of the selection and
|
||||||
|
arrangement of their contents, constitute intellectual creations, in
|
||||||
|
which the Work is included in its entirety in unmodified form along
|
||||||
|
with one or more other contributions, each constituting separate and
|
||||||
|
independent works in themselves, which together are assembled into a
|
||||||
|
collective whole. A work that constitutes a Collection will not be
|
||||||
|
considered an Adaptation (as defined above) for the purposes of this
|
||||||
|
License.
|
||||||
|
c. "Distribute" means to make available to the public the original and
|
||||||
|
copies of the Work or Adaptation, as appropriate, through sale or
|
||||||
|
other transfer of ownership.
|
||||||
|
d. "Licensor" means the individual, individuals, entity or entities that
|
||||||
|
offer(s) the Work under the terms of this License.
|
||||||
|
e. "Original Author" means, in the case of a literary or artistic work,
|
||||||
|
the individual, individuals, entity or entities who created the Work
|
||||||
|
or if no individual or entity can be identified, the publisher; and in
|
||||||
|
addition (i) in the case of a performance the actors, singers,
|
||||||
|
musicians, dancers, and other persons who act, sing, deliver, declaim,
|
||||||
|
play in, interpret or otherwise perform literary or artistic works or
|
||||||
|
expressions of folklore; (ii) in the case of a phonogram the producer
|
||||||
|
being the person or legal entity who first fixes the sounds of a
|
||||||
|
performance or other sounds; and, (iii) in the case of broadcasts, the
|
||||||
|
organization that transmits the broadcast.
|
||||||
|
f. "Work" means the literary and/or artistic work offered under the terms
|
||||||
|
of this License including without limitation any production in the
|
||||||
|
literary, scientific and artistic domain, whatever may be the mode or
|
||||||
|
form of its expression including digital form, such as a book,
|
||||||
|
pamphlet and other writing; a lecture, address, sermon or other work
|
||||||
|
of the same nature; a dramatic or dramatico-musical work; a
|
||||||
|
choreographic work or entertainment in dumb show; a musical
|
||||||
|
composition with or without words; a cinematographic work to which are
|
||||||
|
assimilated works expressed by a process analogous to cinematography;
|
||||||
|
a work of drawing, painting, architecture, sculpture, engraving or
|
||||||
|
lithography; a photographic work to which are assimilated works
|
||||||
|
expressed by a process analogous to photography; a work of applied
|
||||||
|
art; an illustration, map, plan, sketch or three-dimensional work
|
||||||
|
relative to geography, topography, architecture or science; a
|
||||||
|
performance; a broadcast; a phonogram; a compilation of data to the
|
||||||
|
extent it is protected as a copyrightable work; or a work performed by
|
||||||
|
a variety or circus performer to the extent it is not otherwise
|
||||||
|
considered a literary or artistic work.
|
||||||
|
g. "You" means an individual or entity exercising rights under this
|
||||||
|
License who has not previously violated the terms of this License with
|
||||||
|
respect to the Work, or who has received express permission from the
|
||||||
|
Licensor to exercise rights under this License despite a previous
|
||||||
|
violation.
|
||||||
|
h. "Publicly Perform" means to perform public recitations of the Work and
|
||||||
|
to communicate to the public those public recitations, by any means or
|
||||||
|
process, including by wire or wireless means or public digital
|
||||||
|
performances; to make available to the public Works in such a way that
|
||||||
|
members of the public may access these Works from a place and at a
|
||||||
|
place individually chosen by them; to perform the Work to the public
|
||||||
|
by any means or process and the communication to the public of the
|
||||||
|
performances of the Work, including by public digital performance; to
|
||||||
|
broadcast and rebroadcast the Work by any means including signs,
|
||||||
|
sounds or images.
|
||||||
|
i. "Reproduce" means to make copies of the Work by any means including
|
||||||
|
without limitation by sound or visual recordings and the right of
|
||||||
|
fixation and reproducing fixations of the Work, including storage of a
|
||||||
|
protected performance or phonogram in digital form or other electronic
|
||||||
|
medium.
|
||||||
|
|
||||||
|
2. Fair Dealing Rights. Nothing in this License is intended to reduce,
|
||||||
|
limit, or restrict any uses free from copyright or rights arising from
|
||||||
|
limitations or exceptions that are provided for in connection with the
|
||||||
|
copyright protection under copyright law or other applicable laws.
|
||||||
|
|
||||||
|
3. License Grant. Subject to the terms and conditions of this License,
|
||||||
|
Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
|
||||||
|
perpetual (for the duration of the applicable copyright) license to
|
||||||
|
exercise the rights in the Work as stated below:
|
||||||
|
|
||||||
|
a. to Reproduce the Work, to incorporate the Work into one or more
|
||||||
|
Collections, and to Reproduce the Work as incorporated in the
|
||||||
|
Collections;
|
||||||
|
b. to create and Reproduce Adaptations provided that any such Adaptation,
|
||||||
|
including any translation in any medium, takes reasonable steps to
|
||||||
|
clearly label, demarcate or otherwise identify that changes were made
|
||||||
|
to the original Work. For example, a translation could be marked "The
|
||||||
|
original work was translated from English to Spanish," or a
|
||||||
|
modification could indicate "The original work has been modified.";
|
||||||
|
c. to Distribute and Publicly Perform the Work including as incorporated
|
||||||
|
in Collections; and,
|
||||||
|
d. to Distribute and Publicly Perform Adaptations.
|
||||||
|
|
||||||
|
The above rights may be exercised in all media and formats whether now
|
||||||
|
known or hereafter devised. The above rights include the right to make
|
||||||
|
such modifications as are technically necessary to exercise the rights in
|
||||||
|
other media and formats. Subject to Section 8(f), all rights not expressly
|
||||||
|
granted by Licensor are hereby reserved, including but not limited to the
|
||||||
|
rights set forth in Section 4(d).
|
||||||
|
|
||||||
|
4. Restrictions. The license granted in Section 3 above is expressly made
|
||||||
|
subject to and limited by the following restrictions:
|
||||||
|
|
||||||
|
a. You may Distribute or Publicly Perform the Work only under the terms
|
||||||
|
of this License. You must include a copy of, or the Uniform Resource
|
||||||
|
Identifier (URI) for, this License with every copy of the Work You
|
||||||
|
Distribute or Publicly Perform. You may not offer or impose any terms
|
||||||
|
on the Work that restrict the terms of this License or the ability of
|
||||||
|
the recipient of the Work to exercise the rights granted to that
|
||||||
|
recipient under the terms of the License. You may not sublicense the
|
||||||
|
Work. You must keep intact all notices that refer to this License and
|
||||||
|
to the disclaimer of warranties with every copy of the Work You
|
||||||
|
Distribute or Publicly Perform. When You Distribute or Publicly
|
||||||
|
Perform the Work, You may not impose any effective technological
|
||||||
|
measures on the Work that restrict the ability of a recipient of the
|
||||||
|
Work from You to exercise the rights granted to that recipient under
|
||||||
|
the terms of the License. This Section 4(a) applies to the Work as
|
||||||
|
incorporated in a Collection, but this does not require the Collection
|
||||||
|
apart from the Work itself to be made subject to the terms of this
|
||||||
|
License. If You create a Collection, upon notice from any Licensor You
|
||||||
|
must, to the extent practicable, remove from the Collection any credit
|
||||||
|
as required by Section 4(c), as requested. If You create an
|
||||||
|
Adaptation, upon notice from any Licensor You must, to the extent
|
||||||
|
practicable, remove from the Adaptation any credit as required by
|
||||||
|
Section 4(c), as requested.
|
||||||
|
b. You may not exercise any of the rights granted to You in Section 3
|
||||||
|
above in any manner that is primarily intended for or directed toward
|
||||||
|
commercial advantage or private monetary compensation. The exchange of
|
||||||
|
the Work for other copyrighted works by means of digital file-sharing
|
||||||
|
or otherwise shall not be considered to be intended for or directed
|
||||||
|
toward commercial advantage or private monetary compensation, provided
|
||||||
|
there is no payment of any monetary compensation in connection with
|
||||||
|
the exchange of copyrighted works.
|
||||||
|
c. If You Distribute, or Publicly Perform the Work or any Adaptations or
|
||||||
|
Collections, You must, unless a request has been made pursuant to
|
||||||
|
Section 4(a), keep intact all copyright notices for the Work and
|
||||||
|
provide, reasonable to the medium or means You are utilizing: (i) the
|
||||||
|
name of the Original Author (or pseudonym, if applicable) if supplied,
|
||||||
|
and/or if the Original Author and/or Licensor designate another party
|
||||||
|
or parties (e.g., a sponsor institute, publishing entity, journal) for
|
||||||
|
attribution ("Attribution Parties") in Licensor's copyright notice,
|
||||||
|
terms of service or by other reasonable means, the name of such party
|
||||||
|
or parties; (ii) the title of the Work if supplied; (iii) to the
|
||||||
|
extent reasonably practicable, the URI, if any, that Licensor
|
||||||
|
specifies to be associated with the Work, unless such URI does not
|
||||||
|
refer to the copyright notice or licensing information for the Work;
|
||||||
|
and, (iv) consistent with Section 3(b), in the case of an Adaptation,
|
||||||
|
a credit identifying the use of the Work in the Adaptation (e.g.,
|
||||||
|
"French translation of the Work by Original Author," or "Screenplay
|
||||||
|
based on original Work by Original Author"). The credit required by
|
||||||
|
this Section 4(c) may be implemented in any reasonable manner;
|
||||||
|
provided, however, that in the case of a Adaptation or Collection, at
|
||||||
|
a minimum such credit will appear, if a credit for all contributing
|
||||||
|
authors of the Adaptation or Collection appears, then as part of these
|
||||||
|
credits and in a manner at least as prominent as the credits for the
|
||||||
|
other contributing authors. For the avoidance of doubt, You may only
|
||||||
|
use the credit required by this Section for the purpose of attribution
|
||||||
|
in the manner set out above and, by exercising Your rights under this
|
||||||
|
License, You may not implicitly or explicitly assert or imply any
|
||||||
|
connection with, sponsorship or endorsement by the Original Author,
|
||||||
|
Licensor and/or Attribution Parties, as appropriate, of You or Your
|
||||||
|
use of the Work, without the separate, express prior written
|
||||||
|
permission of the Original Author, Licensor and/or Attribution
|
||||||
|
Parties.
|
||||||
|
d. For the avoidance of doubt:
|
||||||
|
|
||||||
|
i. Non-waivable Compulsory License Schemes. In those jurisdictions in
|
||||||
|
which the right to collect royalties through any statutory or
|
||||||
|
compulsory licensing scheme cannot be waived, the Licensor
|
||||||
|
reserves the exclusive right to collect such royalties for any
|
||||||
|
exercise by You of the rights granted under this License;
|
||||||
|
ii. Waivable Compulsory License Schemes. In those jurisdictions in
|
||||||
|
which the right to collect royalties through any statutory or
|
||||||
|
compulsory licensing scheme can be waived, the Licensor reserves
|
||||||
|
the exclusive right to collect such royalties for any exercise by
|
||||||
|
You of the rights granted under this License if Your exercise of
|
||||||
|
such rights is for a purpose or use which is otherwise than
|
||||||
|
noncommercial as permitted under Section 4(b) and otherwise waives
|
||||||
|
the right to collect royalties through any statutory or compulsory
|
||||||
|
licensing scheme; and,
|
||||||
|
iii. Voluntary License Schemes. The Licensor reserves the right to
|
||||||
|
collect royalties, whether individually or, in the event that the
|
||||||
|
Licensor is a member of a collecting society that administers
|
||||||
|
voluntary licensing schemes, via that society, from any exercise
|
||||||
|
by You of the rights granted under this License that is for a
|
||||||
|
purpose or use which is otherwise than noncommercial as permitted
|
||||||
|
under Section 4(c).
|
||||||
|
e. Except as otherwise agreed in writing by the Licensor or as may be
|
||||||
|
otherwise permitted by applicable law, if You Reproduce, Distribute or
|
||||||
|
Publicly Perform the Work either by itself or as part of any
|
||||||
|
Adaptations or Collections, You must not distort, mutilate, modify or
|
||||||
|
take other derogatory action in relation to the Work which would be
|
||||||
|
prejudicial to the Original Author's honor or reputation. Licensor
|
||||||
|
agrees that in those jurisdictions (e.g. Japan), in which any exercise
|
||||||
|
of the right granted in Section 3(b) of this License (the right to
|
||||||
|
make Adaptations) would be deemed to be a distortion, mutilation,
|
||||||
|
modification or other derogatory action prejudicial to the Original
|
||||||
|
Author's honor and reputation, the Licensor will waive or not assert,
|
||||||
|
as appropriate, this Section, to the fullest extent permitted by the
|
||||||
|
applicable national law, to enable You to reasonably exercise Your
|
||||||
|
right under Section 3(b) of this License (right to make Adaptations)
|
||||||
|
but not otherwise.
|
||||||
|
|
||||||
|
5. Representations, Warranties and Disclaimer
|
||||||
|
|
||||||
|
UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR
|
||||||
|
OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY
|
||||||
|
KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,
|
||||||
|
INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF
|
||||||
|
LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS,
|
||||||
|
WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION
|
||||||
|
OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
|
||||||
|
|
||||||
|
6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE
|
||||||
|
LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR
|
||||||
|
ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES
|
||||||
|
ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS
|
||||||
|
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
7. Termination
|
||||||
|
|
||||||
|
a. This License and the rights granted hereunder will terminate
|
||||||
|
automatically upon any breach by You of the terms of this License.
|
||||||
|
Individuals or entities who have received Adaptations or Collections
|
||||||
|
from You under this License, however, will not have their licenses
|
||||||
|
terminated provided such individuals or entities remain in full
|
||||||
|
compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will
|
||||||
|
survive any termination of this License.
|
||||||
|
b. Subject to the above terms and conditions, the license granted here is
|
||||||
|
perpetual (for the duration of the applicable copyright in the Work).
|
||||||
|
Notwithstanding the above, Licensor reserves the right to release the
|
||||||
|
Work under different license terms or to stop distributing the Work at
|
||||||
|
any time; provided, however that any such election will not serve to
|
||||||
|
withdraw this License (or any other license that has been, or is
|
||||||
|
required to be, granted under the terms of this License), and this
|
||||||
|
License will continue in full force and effect unless terminated as
|
||||||
|
stated above.
|
||||||
|
|
||||||
|
8. Miscellaneous
|
||||||
|
|
||||||
|
a. Each time You Distribute or Publicly Perform the Work or a Collection,
|
||||||
|
the Licensor offers to the recipient a license to the Work on the same
|
||||||
|
terms and conditions as the license granted to You under this License.
|
||||||
|
b. Each time You Distribute or Publicly Perform an Adaptation, Licensor
|
||||||
|
offers to the recipient a license to the original Work on the same
|
||||||
|
terms and conditions as the license granted to You under this License.
|
||||||
|
c. If any provision of this License is invalid or unenforceable under
|
||||||
|
applicable law, it shall not affect the validity or enforceability of
|
||||||
|
the remainder of the terms of this License, and without further action
|
||||||
|
by the parties to this agreement, such provision shall be reformed to
|
||||||
|
the minimum extent necessary to make such provision valid and
|
||||||
|
enforceable.
|
||||||
|
d. No term or provision of this License shall be deemed waived and no
|
||||||
|
breach consented to unless such waiver or consent shall be in writing
|
||||||
|
and signed by the party to be charged with such waiver or consent.
|
||||||
|
e. This License constitutes the entire agreement between the parties with
|
||||||
|
respect to the Work licensed here. There are no understandings,
|
||||||
|
agreements or representations with respect to the Work not specified
|
||||||
|
here. Licensor shall not be bound by any additional provisions that
|
||||||
|
may appear in any communication from You. This License may not be
|
||||||
|
modified without the mutual written agreement of the Licensor and You.
|
||||||
|
f. The rights granted under, and the subject matter referenced, in this
|
||||||
|
License were drafted utilizing the terminology of the Berne Convention
|
||||||
|
for the Protection of Literary and Artistic Works (as amended on
|
||||||
|
September 28, 1979), the Rome Convention of 1961, the WIPO Copyright
|
||||||
|
Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996
|
||||||
|
and the Universal Copyright Convention (as revised on July 24, 1971).
|
||||||
|
These rights and subject matter take effect in the relevant
|
||||||
|
jurisdiction in which the License terms are sought to be enforced
|
||||||
|
according to the corresponding provisions of the implementation of
|
||||||
|
those treaty provisions in the applicable national law. If the
|
||||||
|
standard suite of rights granted under applicable copyright law
|
||||||
|
includes additional rights not granted under this License, such
|
||||||
|
additional rights are deemed to be included in the License; this
|
||||||
|
License is not intended to restrict the license of any rights under
|
||||||
|
applicable law.
|
||||||
|
|
||||||
|
|
||||||
|
Creative Commons Notice
|
||||||
|
|
||||||
|
Creative Commons is not a party to this License, and makes no warranty
|
||||||
|
whatsoever in connection with the Work. Creative Commons will not be
|
||||||
|
liable to You or any party on any legal theory for any damages
|
||||||
|
whatsoever, including without limitation any general, special,
|
||||||
|
incidental or consequential damages arising in connection to this
|
||||||
|
license. Notwithstanding the foregoing two (2) sentences, if Creative
|
||||||
|
Commons has expressly identified itself as the Licensor hereunder, it
|
||||||
|
shall have all rights and obligations of Licensor.
|
||||||
|
|
||||||
|
Except for the limited purpose of indicating to the public that the
|
||||||
|
Work is licensed under the CCPL, Creative Commons does not authorize
|
||||||
|
the use by either party of the trademark "Creative Commons" or any
|
||||||
|
related trademark or logo of Creative Commons without the prior
|
||||||
|
written consent of Creative Commons. Any permitted use will be in
|
||||||
|
compliance with Creative Commons' then-current trademark usage
|
||||||
|
guidelines, as may be published on its website or otherwise made
|
||||||
|
available upon request from time to time. For the avoidance of doubt,
|
||||||
|
this trademark restriction does not form part of the License.
|
||||||
|
|
||||||
|
Creative Commons may be contacted at https://creativecommons.org/.
|
||||||
37
README.md
37
README.md
|
|
@ -75,6 +75,28 @@ Lots of code changes and lot of testing have concluded in this amazing new rayli
|
||||||
|
|
||||||
In December 2014, new raylib 1.2.2 was published with support to compile directly for web (html5) using [emscripten](http://kripken.github.io/emscripten-site/) and [asm.js](http://asmjs.org/).
|
In December 2014, new raylib 1.2.2 was published with support to compile directly for web (html5) using [emscripten](http://kripken.github.io/emscripten-site/) and [asm.js](http://asmjs.org/).
|
||||||
|
|
||||||
|
notes on raylib 1.3
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
On September 2015, after 1 year of raylib 1.2 release, arrives raylib 1.3. This version adds shaders functionality,
|
||||||
|
improves textures module and provides some new modules (camera system, gestures system, IMGUI).
|
||||||
|
|
||||||
|
Shaders, the biggest addition to raylib, with support for simple and easy shaders loading and use. Loaded shaders can be
|
||||||
|
assigned to models or used as fullscreen postrocessing shaders.
|
||||||
|
|
||||||
|
Textures module has been improved to support most of the internal texture formats available in OpenGL
|
||||||
|
(RGB565, RGB888, RGBA5551, RGBA4444, etc.), including compressed texture formats (DXT, ETC1, ETC2, ASTC, PVRT).
|
||||||
|
|
||||||
|
New camera module offers the user multiple preconfigured ready-to-use camera systems (free camera, 1st person, third person),
|
||||||
|
very easy to use, just calling functions: SetCameraMode() and UpdateCamera().
|
||||||
|
|
||||||
|
New gestures module simplifies getures detection on Android and HTML5 programs.
|
||||||
|
|
||||||
|
New IMGUI (Immediate Mode GUI) module: raygui, offers a set of functions to create simple user interfaces,
|
||||||
|
primary intended for tools development, still in experimental state but already fully functional.
|
||||||
|
|
||||||
|
Lots of code changes and lot of testing have concluded in this amazing new raylib 1.3.
|
||||||
|
|
||||||
features
|
features
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
|
@ -82,6 +104,8 @@ features
|
||||||
* Uses C# PascalCase/camelCase notation
|
* Uses C# PascalCase/camelCase notation
|
||||||
* Hardware accelerated with OpenGL (1.1, 3.3+ or ES2)
|
* Hardware accelerated with OpenGL (1.1, 3.3+ or ES2)
|
||||||
* Unique OpenGL abstraction layer: [rlgl](https://github.com/raysan5/raylib/blob/master/src/rlgl.c)
|
* Unique OpenGL abstraction layer: [rlgl](https://github.com/raysan5/raylib/blob/master/src/rlgl.c)
|
||||||
|
* Hardware accelerated with OpenGL (1.1, 3.3 or ES2)
|
||||||
|
* Unique OpenGL abstraction layer [rlgl]
|
||||||
* Powerful fonts module with SpriteFonts support
|
* Powerful fonts module with SpriteFonts support
|
||||||
* Multiple textures support, including DDS, PKM and mipmaps generation
|
* Multiple textures support, including DDS, PKM and mipmaps generation
|
||||||
* Basic 3d support for Shapes, Models, Heightmaps and Billboards
|
* Basic 3d support for Shapes, Models, Heightmaps and Billboards
|
||||||
|
|
@ -258,9 +282,16 @@ acknowledgments
|
||||||
|
|
||||||
The following people have contributed in some way to make raylib project a reality. Big thanks to them!
|
The following people have contributed in some way to make raylib project a reality. Big thanks to them!
|
||||||
|
|
||||||
- [Zopokx](https://github.com/Zopokx) for testing and hosting the web.
|
- [Zopokx](https://github.com/Zopokx) for testing the web.
|
||||||
- [Elendow](http://www.elendow.com) for testing and helping on web development.
|
- [Elendow](http://www.elendow.com) for testing and helping on web development.
|
||||||
- Victor Dual for implementation and testing of 3D shapes functions.
|
- Victor Dual for implementating and testing of 3D shapes functions.
|
||||||
- Marc Palau for implementation and testing of 3D shapes functions.
|
- Marc Palau for implementating and testing of 3D shapes functions and helping on development of camera and getures modules.
|
||||||
|
- Kevin Gato for improving texture internal formats support and helping on raygui development.
|
||||||
|
- Daniel Nicolas for improving texture internal formats support and helping on raygui development.
|
||||||
|
- Marc Agüera for testing and using raylib on a real product (Koala Seasons)
|
||||||
|
- Daniel Moreno for testing and using raylib on a real product (Koala Seasons)
|
||||||
|
- Daniel Gomez for testing and using raylib on a real product (Koala Seasons)
|
||||||
|
- Sergio Martinez for helping on raygui development and tools development.
|
||||||
|
|
||||||
|
|
||||||
[raysan5]: mailto:raysan@raysanweb.com "Ramon Santamaria - Ray San"
|
[raysan5]: mailto:raysan@raysanweb.com "Ramon Santamaria - Ray San"
|
||||||
|
|
|
||||||
24
ROADMAP.md
24
ROADMAP.md
|
|
@ -4,21 +4,21 @@ roadmap
|
||||||
Current version of raylib is quite complete and functional but there is still a lot of things I would like to improve.
|
Current version of raylib is quite complete and functional but there is still a lot of things I would like to improve.
|
||||||
Here it is a list of features I would like to add and functions to improve.
|
Here it is a list of features I would like to add and functions to improve.
|
||||||
|
|
||||||
Around the source code there are some TODO points with pending revisions/bugs and here it is a list of features I would like to add.
|
Around the source code there are multiple TODO points with pending revisions/bugs and here it is a list of desired features.
|
||||||
|
|
||||||
This roadmap is quite outdated... a full list of all the features we are working on should be listed here at some point...
|
raylib v1.4
|
||||||
|
|
||||||
raylib v1.x
|
- TTF fonts support (using stb_truetype)
|
||||||
|
- Raycast system for 3D picking (including collisions detection)
|
||||||
- [DONE] Review Billboard Drawing functions
|
- Remove GLEW dependency (use another solution...)
|
||||||
- [DONE] Review Heightmap Loading and Drawing functions - Load Heightmap directly as a Model
|
- Floyd-Steinberg dithering on 16bit image format conversion
|
||||||
- Lighting support (only 3d mode)
|
- Basic image manipulation functions (crop, resize, draw...)
|
||||||
- [DONE] Simple Collision Detection functions
|
- Basic image procedural generation (spot, gradient, noise...)
|
||||||
- [IN PROGRESS] Default scene Camera controls (zoom, pan, rotate)
|
- Basic GPU stats sytem (memory, draws, time...)
|
||||||
- Basic Procedural Image Generation (Gradient, Checked, Spot, Noise, Cellular)
|
|
||||||
- [DONE] Software mipmapping generation and POT conversion (custom implementation)
|
|
||||||
- [IN PROGRESS] TTF fonts support
|
|
||||||
|
|
||||||
|
Check [GITHUB ISSUES][issues] for further details on implementation status for this features!
|
||||||
|
|
||||||
Any feature missing? Do you have a request? [Let me know!][raysan5]
|
Any feature missing? Do you have a request? [Let me know!][raysan5]
|
||||||
|
|
||||||
[raysan5]: mailto:raysan@raysanweb.com "Ramon Santamaria - Ray San"
|
[raysan5]: mailto:raysan@raysanweb.com "Ramon Santamaria - Ray San"
|
||||||
|
[isssues]: https://github.com/raysan5/raylib/issues
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
* This example has been created using raylib 1.1 (www.raylib.com)
|
* This example has been created using raylib 1.1 (www.raylib.com)
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
||||||
*
|
*
|
||||||
* Copyright (c) 2014 Ramon Santamaria (Ray San - raysan@raysanweb.com)
|
* Copyright (c) 2014 Ramon Santamaria (@raysan5)
|
||||||
*
|
*
|
||||||
********************************************************************************************/
|
********************************************************************************************/
|
||||||
|
|
||||||
|
|
@ -58,7 +58,12 @@ int main()
|
||||||
SetMusicVolume(volume);
|
SetMusicVolume(volume);
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
if (IsWindowMinimized()) PauseMusicStream();
|
||||||
|
else ResumeMusicStream();
|
||||||
|
|
||||||
timePlayed = GetMusicTimePlayed() / GetMusicTimeLength() * 100 * 4; // We scale by 4 to fit 400 pixels
|
timePlayed = GetMusicTimePlayed() / GetMusicTimeLength() * 100 * 4; // We scale by 4 to fit 400 pixels
|
||||||
|
|
||||||
|
UpdateMusicStream();
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
|
|
||||||
// Draw
|
// Draw
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,8 @@
|
||||||
/*******************************************************************************************
|
/*******************************************************************************************
|
||||||
*
|
*
|
||||||
* raylib [textures] example - Texture loading with mipmaps, mipmaps generation
|
* raylib [core] example - Picking in 3d mode
|
||||||
*
|
*
|
||||||
* NOTE: On OpenGL 1.1, mipmaps are calculated 'manually', original image must be power-of-two
|
* This example has been created using raylib 1.0 (www.raylib.com)
|
||||||
* On OpenGL 3.3 and ES2, mipmaps are generated automatically
|
|
||||||
*
|
|
||||||
* This example has been created using raylib 1.1 (www.raylib.com)
|
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
||||||
*
|
*
|
||||||
* Copyright (c) 2014 Ramon Santamaria (Ray San - raysan@raysanweb.com)
|
* Copyright (c) 2014 Ramon Santamaria (Ray San - raysan@raysanweb.com)
|
||||||
|
|
@ -21,15 +18,18 @@ int main()
|
||||||
int screenWidth = 800;
|
int screenWidth = 800;
|
||||||
int screenHeight = 450;
|
int screenHeight = 450;
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [textures] example - texture mipmaps generation");
|
InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d picking");
|
||||||
|
|
||||||
// NOTE: To generate mipmaps for an image, image must be loaded first and converted to texture
|
// Define the camera to look into our 3d world
|
||||||
|
Camera camera = {{ 0.0, 10.0, 10.0 }, { 0.0, 0.0, 0.0 }, { 0.0, 1.0, 0.0 }};
|
||||||
|
|
||||||
Image image = LoadImage("resources/raylib_logo.png"); // Load image to CPU memory (RAM)
|
Vector3 cubePosition = { 0.0, 0.0, 0.0 };
|
||||||
Texture2D texture = LoadTextureFromImage(image); // Load texture into GPU memory (VRAM)
|
|
||||||
GenTextureMipmaps(texture); // Generate mipmaps for texture
|
Ray pickingLine;
|
||||||
|
|
||||||
|
SetCameraMode(CAMERA_FREE);
|
||||||
|
|
||||||
UnloadImage(image); // Once texture has been created, we can unload image data from RAM
|
SetTargetFPS(60);
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
// Main game loop
|
// Main game loop
|
||||||
|
|
@ -37,7 +37,9 @@ int main()
|
||||||
{
|
{
|
||||||
// Update
|
// Update
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
// TODO: Update your variables here
|
camera = UpdateCamera(0);
|
||||||
|
|
||||||
|
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) pickingLine = GetMouseRay(GetMousePosition(), camera);
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
|
|
||||||
// Draw
|
// Draw
|
||||||
|
|
@ -46,10 +48,18 @@ int main()
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
ClearBackground(RAYWHITE);
|
||||||
|
|
||||||
DrawTexture(texture, screenWidth/2 - texture.width/2,
|
Begin3dMode(camera);
|
||||||
screenHeight/2 - texture.height/2 - 30, WHITE);
|
|
||||||
|
|
||||||
DrawText("this IS a texture with mipmaps! really!", 210, 360, 20, GRAY);
|
DrawCube(cubePosition, 2, 2, 2, RED);
|
||||||
|
DrawCubeWires(cubePosition, 2, 2, 2, MAROON);
|
||||||
|
|
||||||
|
DrawGrid(10.0, 1.0);
|
||||||
|
|
||||||
|
DrawRay(pickingLine, MAROON);
|
||||||
|
|
||||||
|
End3dMode();
|
||||||
|
|
||||||
|
DrawFPS(10, 10);
|
||||||
|
|
||||||
EndDrawing();
|
EndDrawing();
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
|
|
@ -57,9 +67,7 @@ int main()
|
||||||
|
|
||||||
// De-Initialization
|
// De-Initialization
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
UnloadTexture(texture); // Texture unloading
|
CloseWindow(); // Close window and OpenGL context
|
||||||
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* This example has been created using raylib 1.0 (www.raylib.com)
|
* This example has been created using raylib 1.0 (www.raylib.com)
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
||||||
*
|
*
|
||||||
* Copyright (c) 2014 Ramon Santamaria (Ray San - raysan@raysanweb.com)
|
* Copyright (c) 2014 Ramon Santamaria (@raysan5)
|
||||||
*
|
*
|
||||||
********************************************************************************************/
|
********************************************************************************************/
|
||||||
|
|
||||||
|
|
@ -52,7 +52,7 @@ int main()
|
||||||
}
|
}
|
||||||
|
|
||||||
// De-Initialization
|
// De-Initialization
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
CloseWindow(); // Close window and OpenGL context
|
CloseWindow(); // Close window and OpenGL context
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -164,8 +164,6 @@ EXAMPLES = \
|
||||||
textures_logo_raylib \
|
textures_logo_raylib \
|
||||||
textures_image_loading \
|
textures_image_loading \
|
||||||
textures_rectangle \
|
textures_rectangle \
|
||||||
textures_compressed_dds \
|
|
||||||
textures_mipmaps \
|
|
||||||
textures_srcrec_dstrec \
|
textures_srcrec_dstrec \
|
||||||
text_sprite_fonts \
|
text_sprite_fonts \
|
||||||
text_rbmf_fonts \
|
text_rbmf_fonts \
|
||||||
|
|
@ -253,14 +251,6 @@ textures_image_loading: textures_image_loading.c
|
||||||
textures_rectangle: textures_rectangle.c
|
textures_rectangle: textures_rectangle.c
|
||||||
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
||||||
|
|
||||||
# compile [textures] example - compressed texture loading (DDS)
|
|
||||||
textures_compressed_dds: textures_compressed_dds.c
|
|
||||||
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
|
||||||
|
|
||||||
# compile [textures] example - texture mipmaps generation
|
|
||||||
textures_mipmaps: textures_mipmaps.c
|
|
||||||
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
|
||||||
|
|
||||||
# compile [textures] example - texture source and destination rectangles
|
# compile [textures] example - texture source and destination rectangles
|
||||||
textures_srcrec_dstrec: textures_srcrec_dstrec.c
|
textures_srcrec_dstrec: textures_srcrec_dstrec.c
|
||||||
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
* This example has been created using raylib 1.0 (www.raylib.com)
|
* This example has been created using raylib 1.0 (www.raylib.com)
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
||||||
*
|
*
|
||||||
* Copyright (c) 2014 Ramon Santamaria (Ray San - raysan@raysanweb.com)
|
* Copyright (c) 2014 Ramon Santamaria (@raysan5)
|
||||||
*
|
*
|
||||||
********************************************************************************************/
|
********************************************************************************************/
|
||||||
|
|
||||||
|
|
@ -21,12 +21,12 @@ int main()
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [models] example - obj model loading");
|
InitWindow(screenWidth, screenHeight, "raylib [models] example - obj model loading");
|
||||||
|
|
||||||
// Define the camera to look into our 3d world
|
// Define the camera to look into our 3d world
|
||||||
Camera camera = {{ 10.0, 8.0, 10.0 }, { 0.0, 0.0, 0.0 }, { 0.0, 1.0, 0.0 }};
|
Camera camera = {{ 3.0, 3.0, 3.0 }, { 0.0, 1.5, 0.0 }, { 0.0, 1.0, 0.0 }};
|
||||||
|
|
||||||
Texture2D texture = LoadTexture("resources/catsham.png"); // Load model texture
|
Texture2D texture = LoadTexture("resources/model/dwarf_diffuse.png"); // Load model texture
|
||||||
Model cat = LoadModel("resources/cat.obj"); // Load OBJ model
|
Model dwarf = LoadModel("resources/model/dwarf.obj"); // Load OBJ model
|
||||||
SetModelTexture(&cat, texture); // Bind texture to model
|
SetModelTexture(&dwarf, texture); // Bind texture to model
|
||||||
Vector3 catPosition = { 0.0, 0.0, 0.0 }; // Set model position
|
Vector3 position = { 0.0, 0.0, 0.0 }; // Set model position
|
||||||
|
|
||||||
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
@ -36,10 +36,10 @@ int main()
|
||||||
{
|
{
|
||||||
// Update
|
// Update
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
if (IsKeyDown(KEY_LEFT)) catPosition.x -= 0.2;
|
if (IsKeyDown(KEY_LEFT)) position.x -= 0.2;
|
||||||
if (IsKeyDown(KEY_RIGHT)) catPosition.x += 0.2;
|
if (IsKeyDown(KEY_RIGHT)) position.x += 0.2;
|
||||||
if (IsKeyDown(KEY_UP)) catPosition.z -= 0.2;
|
if (IsKeyDown(KEY_UP)) position.z -= 0.2;
|
||||||
if (IsKeyDown(KEY_DOWN)) catPosition.z += 0.2;
|
if (IsKeyDown(KEY_DOWN)) position.z += 0.2;
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
|
|
||||||
// Draw
|
// Draw
|
||||||
|
|
@ -50,13 +50,15 @@ int main()
|
||||||
|
|
||||||
Begin3dMode(camera);
|
Begin3dMode(camera);
|
||||||
|
|
||||||
DrawModel(cat, catPosition, 0.1f, WHITE); // Draw 3d model with texture
|
DrawModel(dwarf, position, 2.0f, WHITE); // Draw 3d model with texture
|
||||||
|
|
||||||
DrawGrid(10.0, 1.0); // Draw a grid
|
DrawGrid(10.0, 1.0); // Draw a grid
|
||||||
|
|
||||||
DrawGizmo(catPosition); // Draw gizmo
|
DrawGizmo(position); // Draw gizmo
|
||||||
|
|
||||||
End3dMode();
|
End3dMode();
|
||||||
|
|
||||||
|
DrawText("(c) Dwarf 3D model by David Moreno", screenWidth - 200, screenHeight - 20, 10, GRAY);
|
||||||
|
|
||||||
DrawFPS(10, 10);
|
DrawFPS(10, 10);
|
||||||
|
|
||||||
|
|
@ -67,7 +69,7 @@ int main()
|
||||||
// De-Initialization
|
// De-Initialization
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
UnloadTexture(texture); // Unload texture
|
UnloadTexture(texture); // Unload texture
|
||||||
UnloadModel(cat); // Unload model
|
UnloadModel(dwarf); // Unload model
|
||||||
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
CloseWindow(); // Close window and OpenGL context
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
Binary file not shown.
|
Before Width: | Height: | Size: 308 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 302 KiB |
54966
examples/resources/model/dwarf.obj
Normal file
54966
examples/resources/model/dwarf.obj
Normal file
File diff suppressed because it is too large
Load diff
BIN
examples/resources/model/dwarf_diffuse.png
Normal file
BIN
examples/resources/model/dwarf_diffuse.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 MiB |
|
|
@ -5,7 +5,7 @@
|
||||||
* This example has been created using raylib 1.0 (www.raylib.com)
|
* This example has been created using raylib 1.0 (www.raylib.com)
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
||||||
*
|
*
|
||||||
* Copyright (c) 2014 Ramon Santamaria (Ray San - raysan@raysanweb.com)
|
* Copyright (c) 2014 Ramon Santamaria (@raysan5)
|
||||||
*
|
*
|
||||||
********************************************************************************************/
|
********************************************************************************************/
|
||||||
|
|
||||||
|
|
@ -16,7 +16,7 @@ int main()
|
||||||
// Initialization
|
// Initialization
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
int screenWidth = 800;
|
int screenWidth = 800;
|
||||||
int screenHeight = 150;
|
int screenHeight = 450;
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [text] example - font selector");
|
InitWindow(screenWidth, screenHeight, "raylib [text] example - font selector");
|
||||||
|
|
||||||
|
|
@ -45,12 +45,14 @@ int main()
|
||||||
|
|
||||||
Vector2 mousePoint;
|
Vector2 mousePoint;
|
||||||
|
|
||||||
Rectangle btnNextRec = { 673, 18, 109, 44 }; // Button rectangle (useful for collision)
|
|
||||||
|
|
||||||
Color btnNextOutColor = DARKBLUE; // Button color (outside line)
|
Color btnNextOutColor = DARKBLUE; // Button color (outside line)
|
||||||
Color btnNextInColor = SKYBLUE; // Button color (inside)
|
Color btnNextInColor = SKYBLUE; // Button color (inside)
|
||||||
|
|
||||||
int framesCounter = 0; // Useful to count frames button is 'active' = clicked
|
int framesCounter = 0; // Useful to count frames button is 'active' = clicked
|
||||||
|
|
||||||
|
int positionY = 180; // Text selector and button Y position
|
||||||
|
|
||||||
|
Rectangle btnNextRec = { 673, positionY, 109, 44 }; // Button rectangle (useful for collision)
|
||||||
|
|
||||||
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
@ -71,6 +73,15 @@ int main()
|
||||||
{
|
{
|
||||||
if (currentFont > 0) currentFont--;
|
if (currentFont > 0) currentFont--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (IsKeyPressed('0')) currentFont = 0;
|
||||||
|
else if (IsKeyPressed('1')) currentFont = 1;
|
||||||
|
else if (IsKeyPressed('2')) currentFont = 2;
|
||||||
|
else if (IsKeyPressed('3')) currentFont = 3;
|
||||||
|
else if (IsKeyPressed('4')) currentFont = 4;
|
||||||
|
else if (IsKeyPressed('5')) currentFont = 5;
|
||||||
|
else if (IsKeyPressed('6')) currentFont = 6;
|
||||||
|
else if (IsKeyPressed('7')) currentFont = 7;
|
||||||
|
|
||||||
// Mouse-based font selection (NEXT button logic)
|
// Mouse-based font selection (NEXT button logic)
|
||||||
mousePoint = GetMousePosition();
|
mousePoint = GetMousePosition();
|
||||||
|
|
@ -115,18 +126,21 @@ int main()
|
||||||
BeginDrawing();
|
BeginDrawing();
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
ClearBackground(RAYWHITE);
|
||||||
|
|
||||||
|
DrawText("font selector - use arroys, button or numbers", 160, 80, 20, DARKGRAY);
|
||||||
|
DrawLine(120, 120, 680, 120, DARKGRAY);
|
||||||
|
|
||||||
DrawRectangle(18, 18, 644, 44, DARKGRAY);
|
DrawRectangle(18, positionY, 644, 44, DARKGRAY);
|
||||||
DrawRectangle(20, 20, 640, 40, LIGHTGRAY);
|
DrawRectangle(20, positionY + 2, 640, 40, LIGHTGRAY);
|
||||||
DrawText(fontNames[currentFont], 30, 31, 20, BLACK);
|
DrawText(fontNames[currentFont], 30, positionY + 13, 20, BLACK);
|
||||||
DrawText("< >", 610, 26, 30, BLACK);
|
DrawText("< >", 610, positionY + 8, 30, BLACK);
|
||||||
|
|
||||||
DrawRectangleRec(btnNextRec, btnNextOutColor);
|
DrawRectangleRec(btnNextRec, btnNextOutColor);
|
||||||
DrawRectangle(675, 20, 105, 40, btnNextInColor);
|
DrawRectangle(675, positionY + 2, 105, 40, btnNextInColor);
|
||||||
DrawText("NEXT", 700, 31, 20, btnNextOutColor);
|
DrawText("NEXT", 700, positionY + 13, 20, btnNextOutColor);
|
||||||
|
|
||||||
DrawTextEx(fonts[currentFont], text, (Vector2){ screenWidth/2 - textSize.x/2,
|
DrawTextEx(fonts[currentFont], text, (Vector2){ screenWidth/2 - textSize.x/2,
|
||||||
75 + (70 - textSize.y)/2 }, GetFontBaseSize(fonts[currentFont])*3,
|
260 + (70 - textSize.y)/2 }, GetFontBaseSize(fonts[currentFont])*3,
|
||||||
1, colors[currentFont]);
|
1, colors[currentFont]);
|
||||||
|
|
||||||
EndDrawing();
|
EndDrawing();
|
||||||
|
|
|
||||||
|
|
@ -18,20 +18,43 @@ int main()
|
||||||
{
|
{
|
||||||
// Initialization
|
// Initialization
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
int screenWidth = 560;
|
int screenWidth = 800;
|
||||||
int screenHeight = 800;
|
int screenHeight = 450;
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [text] example - rBMF fonts");
|
InitWindow(screenWidth, screenHeight, "raylib [text] example - rBMF fonts");
|
||||||
|
|
||||||
// NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required)
|
// NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required)
|
||||||
SpriteFont font1 = LoadSpriteFont("resources/fonts/alagard.rbmf"); // rBMF font loading
|
SpriteFont fonts[8];
|
||||||
SpriteFont font2 = LoadSpriteFont("resources/fonts/pixelplay.rbmf"); // rBMF font loading
|
|
||||||
SpriteFont font3 = LoadSpriteFont("resources/fonts/mecha.rbmf"); // rBMF font loading
|
fonts[0] = LoadSpriteFont("resources/fonts/alagard.rbmf"); // rBMF font loading
|
||||||
SpriteFont font4 = LoadSpriteFont("resources/fonts/setback.rbmf"); // rBMF font loading
|
fonts[1] = LoadSpriteFont("resources/fonts/pixelplay.rbmf"); // rBMF font loading
|
||||||
SpriteFont font5 = LoadSpriteFont("resources/fonts/romulus.rbmf"); // rBMF font loading
|
fonts[2] = LoadSpriteFont("resources/fonts/mecha.rbmf"); // rBMF font loading
|
||||||
SpriteFont font6 = LoadSpriteFont("resources/fonts/pixantiqua.rbmf"); // rBMF font loading
|
fonts[3] = LoadSpriteFont("resources/fonts/setback.rbmf"); // rBMF font loading
|
||||||
SpriteFont font7 = LoadSpriteFont("resources/fonts/alpha_beta.rbmf"); // rBMF font loading
|
fonts[4] = LoadSpriteFont("resources/fonts/romulus.rbmf"); // rBMF font loading
|
||||||
SpriteFont font8 = LoadSpriteFont("resources/fonts/jupiter_crash.rbmf"); // rBMF font loading
|
fonts[5] = LoadSpriteFont("resources/fonts/pixantiqua.rbmf"); // rBMF font loading
|
||||||
|
fonts[6] = LoadSpriteFont("resources/fonts/alpha_beta.rbmf"); // rBMF font loading
|
||||||
|
fonts[7] = LoadSpriteFont("resources/fonts/jupiter_crash.rbmf"); // rBMF font loading
|
||||||
|
|
||||||
|
const char *messages[8] = { "ALAGARD FONT designed by Hewett Tsoi",
|
||||||
|
"PIXELPLAY FONT designed by Aleksander Shevchuk",
|
||||||
|
"MECHA FONT designed by Captain Falcon",
|
||||||
|
"SETBACK FONT designed by Brian Kent (AEnigma)",
|
||||||
|
"ROMULUS FONT designed by Hewett Tsoi",
|
||||||
|
"PIXANTIQUA FONT designed by Gerhard Grossmann",
|
||||||
|
"ALPHA_BETA FONT designed by Brian Kent (AEnigma)",
|
||||||
|
"JUPITER_CRASH FONT designed by Brian Kent (AEnigma)" };
|
||||||
|
|
||||||
|
const int spacings[8] = { 2, 4, 8, 4, 3, 4, 4, 1 };
|
||||||
|
|
||||||
|
Vector2 positions[8];
|
||||||
|
|
||||||
|
for (int i = 0; i < 8; i++)
|
||||||
|
{
|
||||||
|
positions[i].x = screenWidth/2 - MeasureTextEx(fonts[i], messages[i], GetFontBaseSize(fonts[i])*2, spacings[i]).x/2;
|
||||||
|
positions[i].y = 60 + GetFontBaseSize(fonts[i]) + 50*i;
|
||||||
|
}
|
||||||
|
|
||||||
|
Color colors[8] = { MAROON, ORANGE, DARKGREEN, DARKBLUE, DARKPURPLE, LIME, GOLD };
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
// Main game loop
|
// Main game loop
|
||||||
|
|
@ -47,15 +70,14 @@ int main()
|
||||||
BeginDrawing();
|
BeginDrawing();
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
ClearBackground(RAYWHITE);
|
||||||
|
|
||||||
DrawTextEx(font1, "TESTING ALAGARD FONT", (Vector2){ 100, 100 }, GetFontBaseSize(font1)*2, 2, MAROON);
|
DrawText("free fonts included with raylib", 250, 20, 20, DARKGRAY);
|
||||||
DrawTextEx(font2, "TESTING PIXELPLAY FONT", (Vector2){ 100, 180 }, GetFontBaseSize(font2)*2, 4, ORANGE);
|
DrawLine(220, 50, 590, 50, DARKGRAY);
|
||||||
DrawTextEx(font3, "TESTING MECHA FONT", (Vector2){ 100, 260 }, GetFontBaseSize(font3)*2, 8, DARKGREEN);
|
|
||||||
DrawTextEx(font4, "TESTING SETBACK FONT", (Vector2){ 100, 350 }, GetFontBaseSize(font4)*2, 4, DARKBLUE);
|
for (int i = 0; i < 8; i++)
|
||||||
DrawTextEx(font5, "TESTING ROMULUS FONT", (Vector2){ 100, 430 }, GetFontBaseSize(font5)*2, 3, DARKPURPLE);
|
{
|
||||||
DrawTextEx(font6, "TESTING PIXANTIQUA FONT", (Vector2){ 100, 510 }, GetFontBaseSize(font6)*2, 4, LIME);
|
DrawTextEx(fonts[i], messages[i], positions[i], GetFontBaseSize(fonts[i])*2, spacings[i], colors[i]);
|
||||||
DrawTextEx(font7, "TESTING ALPHA_BETA FONT", (Vector2){ 100, 590 }, GetFontBaseSize(font7)*2, 4, GOLD);
|
}
|
||||||
DrawTextEx(font8, "TESTING JUPITER_CRASH FONT", (Vector2){ 100, 660 }, GetFontBaseSize(font8)*2, 1, RED);
|
|
||||||
|
|
||||||
EndDrawing();
|
EndDrawing();
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
|
|
@ -63,14 +85,10 @@ int main()
|
||||||
|
|
||||||
// De-Initialization
|
// De-Initialization
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
UnloadSpriteFont(font1); // SpriteFont unloading
|
for (int i = 0; i < 8; i++)
|
||||||
UnloadSpriteFont(font2); // SpriteFont unloading
|
{
|
||||||
UnloadSpriteFont(font3); // SpriteFont unloading
|
UnloadSpriteFont(fonts[i]); // SpriteFont unloading
|
||||||
UnloadSpriteFont(font4); // SpriteFont unloading
|
}
|
||||||
UnloadSpriteFont(font5); // SpriteFont unloading
|
|
||||||
UnloadSpriteFont(font6); // SpriteFont unloading
|
|
||||||
UnloadSpriteFont(font7); // SpriteFont unloading
|
|
||||||
UnloadSpriteFont(font8); // SpriteFont unloading
|
|
||||||
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
CloseWindow(); // Close window and OpenGL context
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 15 KiB |
|
|
@ -7,7 +7,7 @@
|
||||||
* This example has been created using raylib 1.1 (www.raylib.com)
|
* This example has been created using raylib 1.1 (www.raylib.com)
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
||||||
*
|
*
|
||||||
* Copyright (c) 2014 Ramon Santamaria (Ray San - raysan@raysanweb.com)
|
* Copyright (c) 2014 Ramon Santamaria (@raysan5)
|
||||||
*
|
*
|
||||||
********************************************************************************************/
|
********************************************************************************************/
|
||||||
|
|
||||||
|
|
@ -25,7 +25,7 @@ int main()
|
||||||
// NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required)
|
// NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required)
|
||||||
|
|
||||||
Image image = LoadImage("resources/raylib_logo.png"); // Loaded in CPU memory (RAM)
|
Image image = LoadImage("resources/raylib_logo.png"); // Loaded in CPU memory (RAM)
|
||||||
Texture2D texture = LoadTextureFromImage(image); // Image converted to texture, GPU memory (VRAM)
|
Texture2D texture = LoadTextureFromImage(image); // Image converted to texture, GPU memory (VRAM)
|
||||||
|
|
||||||
UnloadImage(image); // Once image has been converted to texture and uploaded to VRAM, it can be unloaded from RAM
|
UnloadImage(image); // Once image has been converted to texture and uploaded to VRAM, it can be unloaded from RAM
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue