(defun make-shader () (wheelwork::create-shader '(:vertex ((vert :vec2) (col :vec2)) () ((values (vari:vec4 (* 0.008 vert) 0.0 1.0) col))) '(:fragment ((tc :vec2)) ((tex :sampler-2d)) ((* (vari:vec4 1.0 1.0 1.0 1.0) (aref (vari:texture tex tc) 0)))))) (defun start () (sdl2:with-init (:everything) (sdl2:gl-set-attr :context-major-version 3) (sdl2:gl-set-attr :context-minor-version 3) (sdl2:gl-set-attr :context-profile-mask sdl2-ffi:+sdl-gl-context-profile-core+) (sdl2:gl-set-attr :doublebuffer 1) (sdl2:with-window (window :flags '(:shown :opengl) :title "Font Example") (sdl2:with-gl-context (ctx window) (sdl2:gl-make-current window ctx) (gl:viewport 0 0 800 800) (gl:enable :depth-test) (let* ((font (cl-fond:make-font #P"~/projects/INACTIVE/wwb-haxe/Assets/Ticketing.ttf" "ABCDEFGHJIJKLMNOPQRSTUVWXYZabcdefhgjijklmnopqrstuvwxyz0123456789 ,.!?:;-+/\\")) (shader (make-shader))) (gl:program-uniformi shader (gl:get-uniform-location shader "TEX") 0) (multiple-value-bind (vao elems) (cl-fond:compute-text font "Hey Man") (print (list :vao vao :elems elems)) (sdl2:with-event-loop (:method :poll) (:idle () (gl:clear-color 0.0 0.0 0.0 1.0) (gl:clear :depth-buffer-bit :color-buffer-bit) (gl:use-program shader) (gl:active-texture 0) (gl:bind-texture :texture-2d (cl-fond:texture font)) (gl:bind-vertex-array vao) (%gl:draw-elements :triangles elems :unsigned-int 0) (gl:bind-vertex-array 0) (sdl2:gl-swap-window window) (setf got-here t)) (:quit () (gl:delete-vertex-arrays (list vao)) t))))))))