pull/1/head
Shiz 4 years ago
commit 259ba39fb2
  1. 12
      .gitmodules
  2. 13
      LICENSE
  3. 72
      Makefile
  4. 16
      README.md
  5. 1
      ext/bold
  6. 1
      ext/fishypack
  7. 1
      ext/smol
  8. 1
      ext/vondehi
  9. 42
      src/main.c

12
.gitmodules vendored

@ -0,0 +1,12 @@
[submodule "ext/smol"]
path = ext/smol
url = https://github.com/Shizmob/smol
[submodule "ext/fishypack"]
path = ext/fishypack
url = https://gitlab.com/PoroCYon/fishypack-trident
[submodule "ext/vondehi"]
path = ext/vondehi
url = https://gitlab.com/PoroCYon/vondehi
[submodule "ext/bold"]
path = ext/bold
url = http://git.alrj.org/git/bold.git

@ -0,0 +1,13 @@
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.

@ -0,0 +1,72 @@
B = bin
O = obj
S = src
E = ext
PKGS = glib-2.0 gtk+-3.0
LIBS = $(shell pkg-config --libs $(PKGS)) -lGL -lc
LIBFLAGS = $(shell pkg-config --cflags $(PKGS))
BITS = 64
AS = nasm
ASFLAGS =
CFLAGS = -m$(BITS) -Os -fomit-frame-pointer -fno-unwind-tables -ffast-math -march=haswell -ffunction-sections -fdata-sections
CFLAGS += $(LIBFLAGS)
SMOLCFLAGS = -no-pie -fno-PIE -fno-PIC -fno-plt -fno-stack-protector -fno-stack-check
BOLDFLAGS = -no-pie -fno-PIE -fno-PIC -fno-plt
COMPRESS = xz -c -9e --format=lzma --lzma1=preset=9,lc=1,lp=0,pb=0
.PHONY: all clean
all: $(B)/demo
clean:
@rm -rfv $(B) $(O)
$(B)/demo: $(B)/demo.o.smol.vondehi
cp $< $@
$(B)/demo.o: $(O)/main.o
.SECONDARY:
$(B)/%.fishypack: $(B)/% $(O)/fishypack
$(COMPRESS) $< | cat $(O)/fishypack - > $@
chmod +x $@
$(B)/%.vondehi: $(B)/% $(O)/vondehi
$(COMPRESS) $< | cat $(O)/vondehi - > $@
chmod +x $@
$(B)/%.smol: CFLAGS += $(SMOLCFLAGS)
$(B)/%.smol: | $(B)/%
$(E)/smol/smol $(LDFLAGS) $(LIBS) $(filter %.o,$^) -o $@
$(B)/%.bold: CFLAGS += $(BOLDFLAGS)
$(B)/%.bold: | $(B)/%
ln -sf ./ext/bold/runtime/bold_ibh*.o .
./ext/bold/bold -c -a $(LIBS) $(filter %.o,$^) -o $@
rm -f bold_ibh*.o
$(B)/%.full: $(B)/%.o
$(CC) $< $(LDFLAGS) $(LIBS) -o $@
$(B)/%.o: | $(B)/
$(LD) -r $(filter %.o,$^) -o $@
$(O)/fishypack: $(E)/fishypack/packer/header-64.asm | $(O)/
$(MAKE) -C $(E)/fishypack/packer header-64
cp $(E)/fishypack/packer/header-64 $@
$(O)/vondehi: $(E)/vondehi/vondehi.asm | $(O)/
$(MAKE) -C $(E)/vondehi vondehi
cp $(E)/vondehi/vondehi $@
$(O)/%.o: $(S)/%.c | $(O)/
$(CC) $(CFLAGS) -c $< -o $@
$(B)/ $(O)/:
@mkdir -vp $@

@ -0,0 +1,16 @@
liner
=====
Small Linux demo toolkit.
Usage
-----
Edit your stuff in `src/`, edit `Makefile` to include your desired libraries in `PKGS = ` or `LIBS = `,
and edit the `$(B)/demo.o: ` line to include the object files your demo consists of.
Then just run Make!
License
-------
[WTFPL](/LICENSE)

@ -0,0 +1 @@
Subproject commit 17a597978e7c7aa4311fe1b8fb186a6232ccfe4d

@ -0,0 +1 @@
Subproject commit 704b8daea40f4b5dfec2b26e217c712961bbb8fa

@ -0,0 +1 @@
Subproject commit d9dbaae27aea733cfb9c90128b222714890b0717

@ -0,0 +1 @@
Subproject commit 1e8dd70a464d7ab340bc7be244a91cda6d9972bc

@ -0,0 +1,42 @@
#include <stdlib.h>
#include <glib.h>
#include <gtk/gtk.h>
#include <GL/gl.h>
static void setup(GtkGLArea *gl)
{
gtk_gl_area_make_current(gl);
}
static gboolean render(GtkGLArea *gl, GdkGLContext *ctx)
{
glBegin(GL_TRIANGLES);
glColor3f(0.1, 0.2, 0.3);
glVertex3f(0, 0, 0);
glVertex3f(1, 0, 0);
glVertex3f(0, 1, 0);
glEnd();
return TRUE;
}
int main(void) {
/* skip one param, who needs it anyway */
((void (*)(int *))gtk_init)(NULL);
/* setup window */
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
GtkWidget *gl = gtk_gl_area_new();
gtk_container_add(GTK_CONTAINER(window), gl);
g_signal_connect(gl, "realize", G_CALLBACK(setup), NULL);
g_signal_connect(gl, "render", G_CALLBACK(render), NULL);
/* show window */
gtk_widget_show_all(window);
gtk_window_fullscreen(window);
gtk_main();
exit(0);
}
Loading…
Cancel
Save