\ Copyright 2022 Bradley D. Nelson \ \ Licensed under the Apache License, Version 2.0 (the "License"); \ you may not use this file except in compliance with the License. \ You may obtain a copy of the License at \ \ http://www.apache.org/licenses/LICENSE-2.0 \ \ Unless required by applicable law or agreed to in writing, software \ distributed under the License is distributed on an "AS IS" BASIS, \ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. \ See the License for the specific language governing permissions and \ limitations under the License. ( Generic Graphics Interface ) \ Startup: \ window ( w h -- ) \ Drawing region: \ pixel ( x y -- a ) (format [b g r x]) \ width ( -- n ) \ height ( -- n ) \ flip ( -- ) \ Getting events: \ wait ( -- ) \ poll ( -- ) \ Event info: \ mouse-x ( -- n ) \ mouse-y ( -- n ) \ last-key ( -- n ) \ last-char ( -- n ) \ pressed? ( k -- f ) \ event ( -- n ) \ Event constants: \ IDLE RESIZED EXPOSED MOTION \ PRESSED RELEASED TYPED FINISHED \ Key/Button constants: \ LEFT-BUTTON MIDDLE-BUTTON RIGHT-BUTTON vocabulary graphics graphics definitions vocabulary internals 0 constant IDLE 1 constant RESIZED 2 constant EXPOSED 3 constant MOTION 4 constant PRESSED 5 constant RELEASED 6 constant TYPED 7 constant FINISHED 255 constant LEFT-BUTTON 254 constant MIDDLE-BUTTON 253 constant RIGHT-BUTTON 0 value mouse-x 0 value mouse-y 0 value last-key 0 value last-char 0 value event 0 value width 0 value height internals definitions 0 value backbuffer 256 constant key-count create key-state key-count allot key-state key-count erase : key-state! ( f k ) key-count mod key-state + c! ; graphics definitions also internals : pixel ( w h -- a ) width * + 4* backbuffer + ; : pressed? ( k -- f ) key-state + c@ 0<> ; ( Rest of the core definitions per platform. ) only forth definitions
Legal: site web personnel sans commerce / personal site without seling