mirror of
https://github.com/ctruLua/ctruLua.git
synced 2025-10-27 16:39:29 +00:00
Added ctr.gfx.text and the Bitsream Vera font
This commit is contained in:
parent
2dcb9c6aa0
commit
7edb1e2f7b
19 changed files with 385 additions and 4 deletions
1
data/vera.ttf
Symbolic link
1
data/vera.ttf
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
../libs/ttf-bitstream-vera-1.10/Vera.ttf
|
||||||
124
libs/ttf-bitstream-vera-1.10/COPYRIGHT.TXT
Normal file
124
libs/ttf-bitstream-vera-1.10/COPYRIGHT.TXT
Normal file
|
|
@ -0,0 +1,124 @@
|
||||||
|
Bitstream Vera Fonts Copyright
|
||||||
|
|
||||||
|
The fonts have a generous copyright, allowing derivative works (as
|
||||||
|
long as "Bitstream" or "Vera" are not in the names), and full
|
||||||
|
redistribution (so long as they are not *sold* by themselves). They
|
||||||
|
can be be bundled, redistributed and sold with any software.
|
||||||
|
|
||||||
|
The fonts are distributed under the following copyright:
|
||||||
|
|
||||||
|
Copyright
|
||||||
|
=========
|
||||||
|
|
||||||
|
Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream
|
||||||
|
Vera is a trademark of Bitstream, Inc.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of the fonts accompanying this license ("Fonts") and associated
|
||||||
|
documentation files (the "Font Software"), to reproduce and distribute
|
||||||
|
the Font Software, including without limitation the rights to use,
|
||||||
|
copy, merge, publish, distribute, and/or sell copies of the Font
|
||||||
|
Software, and to permit persons to whom the Font Software is furnished
|
||||||
|
to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright and trademark notices and this permission notice
|
||||||
|
shall be included in all copies of one or more of the Font Software
|
||||||
|
typefaces.
|
||||||
|
|
||||||
|
The Font Software may be modified, altered, or added to, and in
|
||||||
|
particular the designs of glyphs or characters in the Fonts may be
|
||||||
|
modified and additional glyphs or characters may be added to the
|
||||||
|
Fonts, only if the fonts are renamed to names not containing either
|
||||||
|
the words "Bitstream" or the word "Vera".
|
||||||
|
|
||||||
|
This License becomes null and void to the extent applicable to Fonts
|
||||||
|
or Font Software that has been modified and is distributed under the
|
||||||
|
"Bitstream Vera" names.
|
||||||
|
|
||||||
|
The Font Software may be sold as part of a larger software package but
|
||||||
|
no copy of one or more of the Font Software typefaces may be sold by
|
||||||
|
itself.
|
||||||
|
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL
|
||||||
|
BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||||
|
OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL,
|
||||||
|
OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
||||||
|
OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT
|
||||||
|
SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||||
|
|
||||||
|
Except as contained in this notice, the names of Gnome, the Gnome
|
||||||
|
Foundation, and Bitstream Inc., shall not be used in advertising or
|
||||||
|
otherwise to promote the sale, use or other dealings in this Font
|
||||||
|
Software without prior written authorization from the Gnome Foundation
|
||||||
|
or Bitstream Inc., respectively. For further information, contact:
|
||||||
|
fonts at gnome dot org.
|
||||||
|
|
||||||
|
Copyright FAQ
|
||||||
|
=============
|
||||||
|
|
||||||
|
1. I don't understand the resale restriction... What gives?
|
||||||
|
|
||||||
|
Bitstream is giving away these fonts, but wishes to ensure its
|
||||||
|
competitors can't just drop the fonts as is into a font sale system
|
||||||
|
and sell them as is. It seems fair that if Bitstream can't make money
|
||||||
|
from the Bitstream Vera fonts, their competitors should not be able to
|
||||||
|
do so either. You can sell the fonts as part of any software package,
|
||||||
|
however.
|
||||||
|
|
||||||
|
2. I want to package these fonts separately for distribution and
|
||||||
|
sale as part of a larger software package or system. Can I do so?
|
||||||
|
|
||||||
|
Yes. A RPM or Debian package is a "larger software package" to begin
|
||||||
|
with, and you aren't selling them independently by themselves.
|
||||||
|
See 1. above.
|
||||||
|
|
||||||
|
3. Are derivative works allowed?
|
||||||
|
Yes!
|
||||||
|
|
||||||
|
4. Can I change or add to the font(s)?
|
||||||
|
Yes, but you must change the name(s) of the font(s).
|
||||||
|
|
||||||
|
5. Under what terms are derivative works allowed?
|
||||||
|
|
||||||
|
You must change the name(s) of the fonts. This is to ensure the
|
||||||
|
quality of the fonts, both to protect Bitstream and Gnome. We want to
|
||||||
|
ensure that if an application has opened a font specifically of these
|
||||||
|
names, it gets what it expects (though of course, using fontconfig,
|
||||||
|
substitutions could still could have occurred during font
|
||||||
|
opening). You must include the Bitstream copyright. Additional
|
||||||
|
copyrights can be added, as per copyright law. Happy Font Hacking!
|
||||||
|
|
||||||
|
6. If I have improvements for Bitstream Vera, is it possible they might get
|
||||||
|
adopted in future versions?
|
||||||
|
|
||||||
|
Yes. The contract between the Gnome Foundation and Bitstream has
|
||||||
|
provisions for working with Bitstream to ensure quality additions to
|
||||||
|
the Bitstream Vera font family. Please contact us if you have such
|
||||||
|
additions. Note, that in general, we will want such additions for the
|
||||||
|
entire family, not just a single font, and that you'll have to keep
|
||||||
|
both Gnome and Jim Lyles, Vera's designer, happy! To make sense to add
|
||||||
|
glyphs to the font, they must be stylistically in keeping with Vera's
|
||||||
|
design. Vera cannot become a "ransom note" font. Jim Lyles will be
|
||||||
|
providing a document describing the design elements used in Vera, as a
|
||||||
|
guide and aid for people interested in contributing to Vera.
|
||||||
|
|
||||||
|
7. I want to sell a software package that uses these fonts: Can I do so?
|
||||||
|
|
||||||
|
Sure. Bundle the fonts with your software and sell your software
|
||||||
|
with the fonts. That is the intent of the copyright.
|
||||||
|
|
||||||
|
8. If applications have built the names "Bitstream Vera" into them,
|
||||||
|
can I override this somehow to use fonts of my choosing?
|
||||||
|
|
||||||
|
This depends on exact details of the software. Most open source
|
||||||
|
systems and software (e.g., Gnome, KDE, etc.) are now converting to
|
||||||
|
use fontconfig (see www.fontconfig.org) to handle font configuration,
|
||||||
|
selection and substitution; it has provisions for overriding font
|
||||||
|
names and subsituting alternatives. An example is provided by the
|
||||||
|
supplied local.conf file, which chooses the family Bitstream Vera for
|
||||||
|
"sans", "serif" and "monospace". Other software (e.g., the XFree86
|
||||||
|
core server) has other mechanisms for font substitution.
|
||||||
|
|
||||||
11
libs/ttf-bitstream-vera-1.10/README.TXT
Normal file
11
libs/ttf-bitstream-vera-1.10/README.TXT
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
Contained herin is the Bitstream Vera font family.
|
||||||
|
|
||||||
|
The Copyright information is found in the COPYRIGHT.TXT file (along
|
||||||
|
with being incoporated into the fonts themselves).
|
||||||
|
|
||||||
|
The releases notes are found in the file "RELEASENOTES.TXT".
|
||||||
|
|
||||||
|
We hope you enjoy Vera!
|
||||||
|
|
||||||
|
Bitstream, Inc.
|
||||||
|
The Gnome Project
|
||||||
162
libs/ttf-bitstream-vera-1.10/RELEASENOTES.TXT
Normal file
162
libs/ttf-bitstream-vera-1.10/RELEASENOTES.TXT
Normal file
|
|
@ -0,0 +1,162 @@
|
||||||
|
Bitstream Vera Fonts - April 16, 2003
|
||||||
|
=====================================
|
||||||
|
|
||||||
|
The version number of these fonts is 1.10 to distinguish them from the
|
||||||
|
beta test fonts.
|
||||||
|
|
||||||
|
Note that the Vera copyright is incorporated in the fonts themselves.
|
||||||
|
The License field in the fonts contains the copyright license as it
|
||||||
|
appears below. The TrueType copyright field is not large enough to
|
||||||
|
contain the full license, so the license is incorporated (as you might
|
||||||
|
think if you thought about it) into the license field, which
|
||||||
|
unfortunately can be obscure to find. (In pfaedit, see: Element->Font
|
||||||
|
Info->TTFNames->License).
|
||||||
|
|
||||||
|
Our apologies for it taking longer to complete the fonts than planned.
|
||||||
|
Beta testers requested a tighter line spacing (less leading) and Jim
|
||||||
|
Lyles redesigned Vera's accents to bring its line spacing to more
|
||||||
|
typical of other fonts. This took additional time and effort. Our
|
||||||
|
thanks to Jim for this effort above and beyond the call of duty.
|
||||||
|
|
||||||
|
There are four monospace and sans faces (normal, oblique, bold, bold
|
||||||
|
oblique) and two serif faces (normal and bold). Fontconfig/Xft2 (see
|
||||||
|
www.fontconfig.org) can artificially oblique the serif faces for you:
|
||||||
|
this loses hinting and distorts the faces slightly, but is visibly
|
||||||
|
different than normal and bold, and reasonably pleasing.
|
||||||
|
|
||||||
|
On systems with fontconfig 2.0 or 2.1 installed, making your sans,
|
||||||
|
serif and monospace fonts default to these fonts is very easy. Just
|
||||||
|
drop the file local.conf into your /etc/fonts directory. This will
|
||||||
|
make the Bitstream fonts your default fonts for all applications using
|
||||||
|
fontconfig (if sans, serif, or monospace names are used, as they often
|
||||||
|
are as default values in many desktops). The XML in local.conf may
|
||||||
|
need modification to enable subpixel decimation, if appropriate,
|
||||||
|
however, the commented out phrase does so for XFree86 4.3, in the case
|
||||||
|
that the server does not have sufficient information to identify the
|
||||||
|
use of a flat panel. Fontconfig 2.2 adds Vera to the list of font
|
||||||
|
families and will, by default use it as the default sans, serif and
|
||||||
|
monospace fonts.
|
||||||
|
|
||||||
|
During the testing of the final Vera fonts, we learned that screen
|
||||||
|
fonts in general are only typically hinted to work correctly at
|
||||||
|
integer pixel sizes. Vera is coded internally for integer sizes only.
|
||||||
|
We need to investigate further to see if there are commonly used fonts
|
||||||
|
that are hinted to be rounded but are not rounded to integer sizes due
|
||||||
|
to oversights in their coding.
|
||||||
|
|
||||||
|
Most fonts work best at 8 pixels and below if anti-aliased only, as
|
||||||
|
the amount of work required to hint well at smaller and smaller sizes
|
||||||
|
becomes astronomical. GASP tables are typically used to control
|
||||||
|
whether hinting is used or not, but Freetype/Xft does not currently
|
||||||
|
support GASP tables (which are present in Vera).
|
||||||
|
|
||||||
|
To mitigate this problem, both for Vera and other fonts, there will be
|
||||||
|
(very shortly) a new fontconfig 2.2 release that will, by default not
|
||||||
|
apply hints if the size is below 8 pixels. if you should have a font
|
||||||
|
that in fact has been hinted more agressively, you can use fontconfig
|
||||||
|
to note this exception. We believe this should improve many hinted
|
||||||
|
fonts in addition to Vera, though implemeting GASP support is likely
|
||||||
|
the right long term solution.
|
||||||
|
|
||||||
|
Font rendering in Gnome or KDE is the combination of algorithms in
|
||||||
|
Xft2 and Freetype, along with hinting in the fonts themselves. It is
|
||||||
|
vital to have sufficient information to disentangle problems that you
|
||||||
|
may observe.
|
||||||
|
|
||||||
|
Note that having your font rendering system set up correctly is vital
|
||||||
|
to proper judgement of problems of the fonts:
|
||||||
|
|
||||||
|
* Freetype may or may not be configured to in ways that may
|
||||||
|
implement execution of possibly patented (in some parts of the world)
|
||||||
|
TrueType hinting algorithms, particularly at small sizes. Best
|
||||||
|
results are obtained while using these algorithms.
|
||||||
|
|
||||||
|
* The freetype autohinter (used when the possibly patented
|
||||||
|
algorithms are not used) continues to improve with each release. If
|
||||||
|
you are using the autohinter, please ensure you are using an up to
|
||||||
|
date version of freetype before reporting problems.
|
||||||
|
|
||||||
|
* Please identify what version of freetype you are using in any
|
||||||
|
bug reports, and how your freetype is configured.
|
||||||
|
|
||||||
|
* Make sure you are not using the freetype version included in
|
||||||
|
XFree86 4.3, as it has bugs that significantly degrade most fonts,
|
||||||
|
including Vera. if you build XFree86 4.3 from source yourself, you may
|
||||||
|
have installed this broken version without intending it (as I
|
||||||
|
did). Vera was verified with the recently released Freetype 2.1.4. On
|
||||||
|
many systems, 'ldd" can be used to see which freetype shared library
|
||||||
|
is actually being used.
|
||||||
|
|
||||||
|
* Xft/X Render does not (yet) implement gamma correction. This
|
||||||
|
causes significant problems rendering white text on a black background
|
||||||
|
(causing partial pixels to be insufficiently shaded) if the gamma of
|
||||||
|
your monitor has not been compensated for, and minor problems with
|
||||||
|
black text on a while background. The program "xgamma" can be used to
|
||||||
|
set a gamma correction value in the X server's color pallette. Most
|
||||||
|
monitors have a gamma near 2.
|
||||||
|
|
||||||
|
* Note that the Vera family uses minimal delta hinting. Your
|
||||||
|
results on other systems when not used anti-aliased may not be
|
||||||
|
entirely satisfying. We are primarily interested in reports of
|
||||||
|
problems on open source systems implementing Xft2/fontconfig/freetype
|
||||||
|
(which implements antialiasing and hinting adjustements, and
|
||||||
|
sophisticated subpixel decimation on flatpanels). Also, the
|
||||||
|
algorithms used by Xft2 adjust the hints to integer widths and the
|
||||||
|
results are crisper on open source systems than on Windows or
|
||||||
|
MacIntosh.
|
||||||
|
|
||||||
|
* Your fontconfig may (probably does) predate the release of
|
||||||
|
fontconfig 2.2, and you may see artifacts not present when the font is
|
||||||
|
used at very small sizes with hinting enabled. "vc-list -V" can be
|
||||||
|
used to see what version you have installed.
|
||||||
|
|
||||||
|
We believe and hope that these fonts will resolve the problems
|
||||||
|
reported during beta test. The largest change is the reduction of
|
||||||
|
leading (interline spacing), which had annoyed a number of people, and
|
||||||
|
reduced Vera's utility for some applcations. The Vera monospace font
|
||||||
|
should also now make '0' and 'O' and '1' and 'l' more clearly
|
||||||
|
distinguishable.
|
||||||
|
|
||||||
|
The version of these fonts is version 1.10. Fontconfig should be
|
||||||
|
choosing the new version of the fonts if both the released fonts and
|
||||||
|
beta test fonts are installed (though please discard them: they have
|
||||||
|
names of form tt20[1-12]gn.ttf). Note that older versions of
|
||||||
|
fontconfig sometimes did not rebuild their cache correctly when new
|
||||||
|
fonts are installed: please upgrade to fontconfig 2.2. "fc-cache -f"
|
||||||
|
can be used to force rebuilding fontconfig's cache files.
|
||||||
|
|
||||||
|
If you note problems, please send them to fonts at gnome dot org, with
|
||||||
|
exactly which face and size and unicode point you observe the problem
|
||||||
|
at. The xfd utility from XFree86 CVS may be useful for this (e.g. "xfd
|
||||||
|
-fa sans"). A possibly more useful program to examine fonts at a
|
||||||
|
variety of sizes is the "waterfall" program found in Keith Packard's
|
||||||
|
CVS.
|
||||||
|
|
||||||
|
$ cvs -d :pserver:anoncvs@keithp.com:/local/src/CVS login
|
||||||
|
Logging in to :pserver:anoncvs@keithp.com:2401/local/src/CVS
|
||||||
|
CVS password: <hit return>
|
||||||
|
$ cvs -d :pserver:anoncvs@keithp.com:/local/src/CVS co waterfall
|
||||||
|
$ cd waterfall
|
||||||
|
$ xmkmf -a
|
||||||
|
$ make
|
||||||
|
# make install
|
||||||
|
# make install.man
|
||||||
|
|
||||||
|
Again, please make sure you are running an up-to-date freetype, and
|
||||||
|
that you are only examining integer sizes.
|
||||||
|
|
||||||
|
Reporting Problems
|
||||||
|
==================
|
||||||
|
|
||||||
|
Please send problem reports to fonts at gnome org, with the following
|
||||||
|
information:
|
||||||
|
|
||||||
|
1. Version of Freetype, Xft2 and fontconfig
|
||||||
|
2. Whether TT hinting is being used, or the autohinter
|
||||||
|
3. Application being used
|
||||||
|
4. Character/Unicode code point that has problems (if applicable)
|
||||||
|
5. Version of which operating system
|
||||||
|
6. Please include a screenshot, when possible.
|
||||||
|
|
||||||
|
Please check the fonts list archives before reporting problems to cut
|
||||||
|
down on duplication.
|
||||||
BIN
libs/ttf-bitstream-vera-1.10/Vera.ttf
Normal file
BIN
libs/ttf-bitstream-vera-1.10/Vera.ttf
Normal file
Binary file not shown.
BIN
libs/ttf-bitstream-vera-1.10/VeraBI.ttf
Normal file
BIN
libs/ttf-bitstream-vera-1.10/VeraBI.ttf
Normal file
Binary file not shown.
BIN
libs/ttf-bitstream-vera-1.10/VeraBd.ttf
Normal file
BIN
libs/ttf-bitstream-vera-1.10/VeraBd.ttf
Normal file
Binary file not shown.
BIN
libs/ttf-bitstream-vera-1.10/VeraIt.ttf
Normal file
BIN
libs/ttf-bitstream-vera-1.10/VeraIt.ttf
Normal file
Binary file not shown.
BIN
libs/ttf-bitstream-vera-1.10/VeraMoBI.ttf
Normal file
BIN
libs/ttf-bitstream-vera-1.10/VeraMoBI.ttf
Normal file
Binary file not shown.
BIN
libs/ttf-bitstream-vera-1.10/VeraMoBd.ttf
Normal file
BIN
libs/ttf-bitstream-vera-1.10/VeraMoBd.ttf
Normal file
Binary file not shown.
BIN
libs/ttf-bitstream-vera-1.10/VeraMoIt.ttf
Normal file
BIN
libs/ttf-bitstream-vera-1.10/VeraMoIt.ttf
Normal file
Binary file not shown.
BIN
libs/ttf-bitstream-vera-1.10/VeraMono.ttf
Normal file
BIN
libs/ttf-bitstream-vera-1.10/VeraMono.ttf
Normal file
Binary file not shown.
BIN
libs/ttf-bitstream-vera-1.10/VeraSe.ttf
Normal file
BIN
libs/ttf-bitstream-vera-1.10/VeraSe.ttf
Normal file
Binary file not shown.
BIN
libs/ttf-bitstream-vera-1.10/VeraSeBd.ttf
Normal file
BIN
libs/ttf-bitstream-vera-1.10/VeraSeBd.ttf
Normal file
Binary file not shown.
32
libs/ttf-bitstream-vera-1.10/local.conf
Normal file
32
libs/ttf-bitstream-vera-1.10/local.conf
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
<!-- /etc/fonts.conf file to configure system font access -->
|
||||||
|
<fontconfig>
|
||||||
|
<!-- Enable sub-pixel rendering
|
||||||
|
<match target="font">
|
||||||
|
<test qual="all" name="rgba">
|
||||||
|
<const>unknown</const>
|
||||||
|
</test>
|
||||||
|
<edit name="rgba" mode="assign"><const>rgb</const></edit>
|
||||||
|
</match>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<alias>
|
||||||
|
<family>serif</family>
|
||||||
|
<prefer>
|
||||||
|
<family>Bitstream Vera Serif</family>
|
||||||
|
</prefer>
|
||||||
|
</alias>
|
||||||
|
<alias>
|
||||||
|
<family>sans-serif</family>
|
||||||
|
<prefer>
|
||||||
|
<family>Bitstream Vera Sans</family>
|
||||||
|
</prefer>
|
||||||
|
</alias>
|
||||||
|
<alias>
|
||||||
|
<family>monospace</family>
|
||||||
|
<prefer>
|
||||||
|
<family>Bitstream Vera Sans Mono</family>
|
||||||
|
</prefer>
|
||||||
|
</alias>
|
||||||
|
</fontconfig>
|
||||||
|
|
@ -34,6 +34,13 @@ while os.run() do
|
||||||
|
|
||||||
gfx.endFrame()
|
gfx.endFrame()
|
||||||
|
|
||||||
|
gfx.startFrame(gfx.GFX_BOTTOM)
|
||||||
|
|
||||||
|
gfx.color.setDefault(0, 0, 0)
|
||||||
|
gfx.text(5, 10, "Hello world, from Lua !", 15)
|
||||||
|
|
||||||
|
gfx.endFrame()
|
||||||
|
|
||||||
angle = angle + 0.05
|
angle = angle + 0.05
|
||||||
if angle > 2*math.pi then angle = angle - 2*math.pi end
|
if angle > 2*math.pi then angle = angle - 2*math.pi end
|
||||||
|
|
||||||
|
|
|
||||||
23
source/font.c
Normal file
23
source/font.c
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
#include <sftd.h>
|
||||||
|
#include "vera_ttf.h"
|
||||||
|
|
||||||
|
#include <lua.h>
|
||||||
|
#include <lauxlib.h>
|
||||||
|
|
||||||
|
sftd_font *font_default;
|
||||||
|
|
||||||
|
static const struct luaL_Reg font_lib[] = {
|
||||||
|
{ NULL, NULL }
|
||||||
|
};
|
||||||
|
|
||||||
|
int luaopen_font_lib(lua_State *L) {
|
||||||
|
luaL_newlib(L, font_lib);
|
||||||
|
|
||||||
|
font_default = sftd_load_font_mem(vera_ttf, vera_ttf_size); // Load default font
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void load_font_lib(lua_State *L) {
|
||||||
|
luaL_requiref(L, "ctr.gfx.font", luaopen_font_lib, false);
|
||||||
|
}
|
||||||
19
source/gfx.c
19
source/gfx.c
|
|
@ -1,11 +1,14 @@
|
||||||
#include <sf2d.h>
|
#include <sf2d.h>
|
||||||
|
#include <sftd.h>
|
||||||
|
|
||||||
#include <lua.h>
|
#include <lua.h>
|
||||||
#include <lauxlib.h>
|
#include <lauxlib.h>
|
||||||
|
|
||||||
int load_color_lib(lua_State *L);
|
int load_color_lib(lua_State *L);
|
||||||
|
int load_font_lib(lua_State *L);
|
||||||
|
|
||||||
u32 color_default;
|
u32 color_default;
|
||||||
|
sftd_font *font_default;
|
||||||
|
|
||||||
static int gfx_startFrame(lua_State *L) {
|
static int gfx_startFrame(lua_State *L) {
|
||||||
u8 screen = luaL_checkinteger(L, 1);
|
u8 screen = luaL_checkinteger(L, 1);
|
||||||
|
|
@ -81,6 +84,20 @@ static int gfx_circle(lua_State *L) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int gfx_text(lua_State *L) {
|
||||||
|
int x = luaL_checkinteger(L, 1);
|
||||||
|
int y = luaL_checkinteger(L, 2);
|
||||||
|
const char *text = luaL_checkstring(L, 3);
|
||||||
|
|
||||||
|
int size = luaL_optinteger(L, 4, 9);
|
||||||
|
u32 color = luaL_optinteger(L, 5, color_default);
|
||||||
|
// todo : font selection
|
||||||
|
|
||||||
|
sftd_draw_text(font_default, x, y, color, size, text);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static const struct luaL_Reg gfx_lib[] = {
|
static const struct luaL_Reg gfx_lib[] = {
|
||||||
{ "startFrame", gfx_startFrame},
|
{ "startFrame", gfx_startFrame},
|
||||||
{ "endFrame", gfx_endFrame },
|
{ "endFrame", gfx_endFrame },
|
||||||
|
|
@ -89,6 +106,7 @@ static const struct luaL_Reg gfx_lib[] = {
|
||||||
{ "point", gfx_point },
|
{ "point", gfx_point },
|
||||||
{ "rectangle", gfx_rectangle },
|
{ "rectangle", gfx_rectangle },
|
||||||
{ "circle", gfx_circle },
|
{ "circle", gfx_circle },
|
||||||
|
{ "text", gfx_text },
|
||||||
{ NULL, NULL }
|
{ NULL, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -107,6 +125,7 @@ struct { char *name; int value; } gfx_constants[] = {
|
||||||
|
|
||||||
struct { char *name; int (*load)(lua_State *L); } gfx_libs[] = {
|
struct { char *name; int (*load)(lua_State *L); } gfx_libs[] = {
|
||||||
{ "color", load_color_lib },
|
{ "color", load_color_lib },
|
||||||
|
{ "font", load_font_lib },
|
||||||
{ NULL, NULL }
|
{ NULL, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,11 +47,13 @@ int main() {
|
||||||
// Do the actual thing
|
// Do the actual thing
|
||||||
if(luaL_dofile(L, BOOT_FILE)) error("Can open "BOOT_FILE);
|
if(luaL_dofile(L, BOOT_FILE)) error("Can open "BOOT_FILE);
|
||||||
|
|
||||||
// Un-init (?)
|
// Disable accel/gyro
|
||||||
sftd_fini();
|
|
||||||
sf2d_fini();
|
|
||||||
// Disable needed things
|
|
||||||
HIDUSER_DisableAccelerometer();
|
HIDUSER_DisableAccelerometer();
|
||||||
HIDUSER_DisableGyroscope();
|
HIDUSER_DisableGyroscope();
|
||||||
|
|
||||||
|
// Uninit GFX
|
||||||
|
sftd_fini();
|
||||||
|
sf2d_fini();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue