mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-20 13:49:40 +02:00
* moved to gtk
This commit is contained in:
parent
b29a3cd01b
commit
71ad1f181f
@ -1,829 +0,0 @@
|
||||
#
|
||||
# Don't edit, this file is generated by fpcmake v1.99.0 [2001/01/29]
|
||||
#
|
||||
default: all
|
||||
override PATH:=$(subst \,/,$(PATH))
|
||||
PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(subst ;, ,$(PATH)))))
|
||||
ifeq ($(PWD),)
|
||||
PWD:=$(strip $(wildcard $(addsuffix /pwd,$(subst :, ,$(PATH)))))
|
||||
ifeq ($(PWD),)
|
||||
nopwd:
|
||||
@echo You need the GNU utils package to use this Makefile!
|
||||
@echo Get ftp://ftp.freepascal.org/pub/fpc/dist/go32v2/utilgo32.zip
|
||||
@exit
|
||||
else
|
||||
inUnix=1
|
||||
PWD:=$(firstword $(PWD))
|
||||
endif
|
||||
else
|
||||
PWD:=$(firstword $(PWD))
|
||||
endif
|
||||
ifndef inUnix
|
||||
ifeq ($(OS),Windows_NT)
|
||||
inWinNT=1
|
||||
else
|
||||
ifdef OS2_SHELL
|
||||
inOS2=1
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
ifdef inUnix
|
||||
SRCEXEEXT=
|
||||
else
|
||||
SRCEXEEXT=.exe
|
||||
endif
|
||||
ifdef inUnix
|
||||
BATCHEXT=.sh
|
||||
else
|
||||
ifdef inOS2
|
||||
BATCHEXT=.cmd
|
||||
else
|
||||
BATCHEXT=.bat
|
||||
endif
|
||||
endif
|
||||
ifdef inUnix
|
||||
PATHSEP=/
|
||||
else
|
||||
PATHSEP=$(subst /,\,/)
|
||||
endif
|
||||
ifdef inUnix
|
||||
SEARCHPATH=$(subst :, ,$(PATH))
|
||||
else
|
||||
SEARCHPATH=$(subst ;, ,$(PATH))
|
||||
endif
|
||||
ifdef PWD
|
||||
BASEDIR:=$(shell $(PWD))
|
||||
else
|
||||
BASEDIR=.
|
||||
endif
|
||||
ifndef FPC
|
||||
ifdef PP
|
||||
FPC=$(PP)
|
||||
else
|
||||
FPC=ppc386
|
||||
endif
|
||||
endif
|
||||
override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
|
||||
override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
|
||||
ifndef OS_TARGET
|
||||
OS_TARGET:=$(shell $(FPC) -iTO)
|
||||
endif
|
||||
ifndef OS_SOURCE
|
||||
OS_SOURCE:=$(shell $(FPC) -iSO)
|
||||
endif
|
||||
ifndef CPU_TARGET
|
||||
CPU_TARGET:=$(shell $(FPC) -iTP)
|
||||
endif
|
||||
ifndef CPU_SOURCE
|
||||
CPU_SOURCE:=$(shell $(FPC) -iSP)
|
||||
endif
|
||||
ifndef FPC_VERSION
|
||||
FPC_VERSION:=$(shell $(FPC) -iV)
|
||||
endif
|
||||
export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION
|
||||
ifdef FPCDIR
|
||||
override FPCDIR:=$(subst \,/,$(FPCDIR))
|
||||
ifeq ($(wildcard $(FPCDIR)/rtl),)
|
||||
ifeq ($(wildcard $(FPCDIR)/units),)
|
||||
override FPCDIR=wrong
|
||||
endif
|
||||
endif
|
||||
else
|
||||
override FPCDIR=wrong
|
||||
endif
|
||||
ifeq ($(FPCDIR),wrong)
|
||||
ifdef inUnix
|
||||
override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
|
||||
ifeq ($(wildcard $(FPCDIR)/units),)
|
||||
override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
|
||||
endif
|
||||
else
|
||||
override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
|
||||
override FPCDIR:=$(FPCDIR)/..
|
||||
ifeq ($(wildcard $(FPCDIR)/rtl),)
|
||||
ifeq ($(wildcard $(FPCDIR)/units),)
|
||||
override FPCDIR:=$(FPCDIR)/..
|
||||
ifeq ($(wildcard $(FPCDIR)/rtl),)
|
||||
ifeq ($(wildcard $(FPCDIR)/units),)
|
||||
override FPCDIR=c:/pp
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
override FPCDIR:=$(wildcard $(FPCDIR))
|
||||
UNITSDIR=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
|
||||
PACKAGESDIR=$(wildcard $(FPCDIR) $(FPCDIR)/packages)
|
||||
ifndef ECHO
|
||||
ECHO:=$(strip $(wildcard $(addsuffix /gecho$(EXEEXT),$(SEARCHPATH))))
|
||||
ifeq ($(ECHO),)
|
||||
ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
|
||||
ifeq ($(ECHO),)
|
||||
ECHO:=echo
|
||||
else
|
||||
ECHO:=$(firstword $(ECHO))
|
||||
endif
|
||||
else
|
||||
ECHO:=$(firstword $(ECHO))
|
||||
endif
|
||||
endif
|
||||
ifndef COPY
|
||||
COPY:=cp -fp
|
||||
endif
|
||||
ifndef COPYTREE
|
||||
COPYTREE:=cp -rfp
|
||||
endif
|
||||
ifndef MOVE
|
||||
MOVE:=mv -f
|
||||
endif
|
||||
ifndef DEL
|
||||
DEL:=rm -f
|
||||
endif
|
||||
ifndef DELTREE
|
||||
DELTREE:=rm -rf
|
||||
endif
|
||||
ifndef INSTALL
|
||||
ifdef inUnix
|
||||
INSTALL:=install -c -m 644
|
||||
else
|
||||
INSTALL:=$(COPY)
|
||||
endif
|
||||
endif
|
||||
ifndef INSTALLEXE
|
||||
ifdef inUnix
|
||||
INSTALLEXE:=install -c -m 755
|
||||
else
|
||||
INSTALLEXE:=$(COPY)
|
||||
endif
|
||||
endif
|
||||
ifndef MKDIR
|
||||
ifdef inUnix
|
||||
MKDIR:=install -m 755 -d
|
||||
else
|
||||
MKDIR:=ginstall -m 755 -d
|
||||
endif
|
||||
endif
|
||||
export ECHO COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
|
||||
ifndef AS
|
||||
AS=as
|
||||
endif
|
||||
ifndef LD
|
||||
LD=ld
|
||||
endif
|
||||
PPAS=$(BATCHEXT)
|
||||
ifdef inUnix
|
||||
LDCONFIG=ldconfig
|
||||
else
|
||||
LDCONFIG=
|
||||
endif
|
||||
ifndef PPUMOVE
|
||||
PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
|
||||
ifeq ($(PPUMOVE),)
|
||||
PPUMOVE=
|
||||
else
|
||||
PPUMOVE:=$(firstword $(PPUMOVE))
|
||||
endif
|
||||
endif
|
||||
export PPUMOVE
|
||||
ifndef PPUFILES
|
||||
PPUFILES:=$(strip $(wildcard $(addsuffix /ppufiles$(SRCEXEEXT),$(SEARCHPATH))))
|
||||
ifeq ($(PPUFILES),)
|
||||
PPUFILES=
|
||||
else
|
||||
PPUFILES:=$(firstword $(PPUFILES))
|
||||
endif
|
||||
endif
|
||||
export PPUFILES
|
||||
ifndef DATE
|
||||
DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
|
||||
ifeq ($(DATE),)
|
||||
DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEACHPATH))))
|
||||
ifeq ($(DATE),)
|
||||
DATE=
|
||||
else
|
||||
DATE:=$(firstword $(DATE))
|
||||
endif
|
||||
else
|
||||
DATE:=$(firstword $(DATE))
|
||||
endif
|
||||
endif
|
||||
export DATE
|
||||
ifdef DATE
|
||||
DATESTR:=$(shell $(DATE) +%Y%m%d)
|
||||
else
|
||||
DATESTR=
|
||||
endif
|
||||
ifndef UPXPROG
|
||||
ifeq ($(OS_TARGET),go32v2)
|
||||
UPXPROG:=1
|
||||
endif
|
||||
ifeq ($(OS_TARGET),win32)
|
||||
UPXPROG:=1
|
||||
endif
|
||||
ifdef UPXPROG
|
||||
UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
|
||||
ifeq ($(UPXPROG),)
|
||||
UPXPROG=
|
||||
else
|
||||
UPXPROG:=$(firstword $(UPXPROG))
|
||||
endif
|
||||
else
|
||||
UPXPROG=
|
||||
endif
|
||||
endif
|
||||
export UPXPROG
|
||||
ifndef ZIPPROG
|
||||
ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
|
||||
ifeq ($(ZIPPROG),)
|
||||
ZIPPROG=
|
||||
else
|
||||
ZIPPROG:=$(firstword $(ZIPPROG))
|
||||
endif
|
||||
endif
|
||||
export ZIPPROG
|
||||
ZIPOPT=-9
|
||||
ZIPEXT=.zip
|
||||
ifndef TARPROG
|
||||
TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
|
||||
ifeq ($(TARPROG),)
|
||||
TARPROG=
|
||||
else
|
||||
TARPROG:=$(firstword $(TARPROG))
|
||||
endif
|
||||
endif
|
||||
export TARPROG
|
||||
ifeq ($(USETAR),bz2)
|
||||
TAROPT=vI
|
||||
TAREXT=.tar.bz2
|
||||
else
|
||||
TAROPT=vz
|
||||
TAREXT=.tar.gz
|
||||
endif
|
||||
LOADEREXT=.as
|
||||
EXEEXT=.exe
|
||||
PPLEXT=.ppl
|
||||
PPUEXT=.ppu
|
||||
OEXT=.o
|
||||
ASMEXT=.s
|
||||
SMARTEXT=.sl
|
||||
STATICLIBEXT=.a
|
||||
SHAREDLIBEXT=.so
|
||||
LIBPREFIX=lib
|
||||
RSTEXT=.rst
|
||||
FPCMADE=fpcmade
|
||||
ifeq ($(OS_TARGET),go32v1)
|
||||
PPUEXT=.pp1
|
||||
OEXT=.o1
|
||||
ASMEXT=.s1
|
||||
SMARTEXT=.sl1
|
||||
STATICLIBEXT=.a1
|
||||
SHAREDLIBEXT=.so1
|
||||
LIBPREFIX=
|
||||
FPCMADE=fpcmade.v1
|
||||
PACKAGESUFFIX=v1
|
||||
endif
|
||||
ifeq ($(OS_TARGET),go32v2)
|
||||
LIBPREFIX=
|
||||
FPCMADE=fpcmade.dos
|
||||
ZIPSUFFIX=go32
|
||||
endif
|
||||
ifeq ($(OS_TARGET),linux)
|
||||
EXEEXT=
|
||||
HASSHAREDLIB=1
|
||||
FPCMADE=fpcmade.lnx
|
||||
ZIPSUFFIX=linux
|
||||
endif
|
||||
ifeq ($(OS_TARGET),freebsd)
|
||||
EXEEXT=
|
||||
HASSHAREDLIB=1
|
||||
FPCMADE=fpcmade.freebsd
|
||||
ZIPSUFFIX=freebsd
|
||||
endif
|
||||
ifeq ($(OS_TARGET),win32)
|
||||
PPUEXT=.ppw
|
||||
OEXT=.ow
|
||||
ASMEXT=.sw
|
||||
SMARTEXT=.slw
|
||||
STATICLIBEXT=.aw
|
||||
SHAREDLIBEXT=.dll
|
||||
FPCMADE=fpcmade.w32
|
||||
ZIPSUFFIX=w32
|
||||
endif
|
||||
ifeq ($(OS_TARGET),os2)
|
||||
PPUEXT=.ppo
|
||||
ASMEXT=.so2
|
||||
OEXT=.oo2
|
||||
SMARTEXT=.so
|
||||
STATICLIBEXT=.ao2
|
||||
SHAREDLIBEXT=.dll
|
||||
FPCMADE=fpcmade.os2
|
||||
ZIPSUFFIX=emx
|
||||
endif
|
||||
ifdef REQUIRE_UNITSDIR
|
||||
override UNITSDIR+=$(REQUIRE_UNITSDIR)
|
||||
endif
|
||||
ifdef REQUIRE_PACKAGESDIR
|
||||
override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
|
||||
endif
|
||||
ifdef ZIPINSTALL
|
||||
ifeq ($(OS_TARGET),linux)
|
||||
UNIXINSTALLDIR=1
|
||||
endif
|
||||
ifeq ($(OS_TARGET),freebsd)
|
||||
UNIXINSTALLDIR=1
|
||||
endif
|
||||
else
|
||||
ifeq ($(OS_SOURCE),linux)
|
||||
UNIXINSTALLDIR=1
|
||||
endif
|
||||
ifeq ($(OS_SOURCE),freebsd)
|
||||
UNIXINSTALLDIR=1
|
||||
endif
|
||||
endif
|
||||
ifndef INSTALL_PREFIX
|
||||
ifdef UNIXINSTALLDIR
|
||||
INSTALL_PREFIX=/usr/local
|
||||
else
|
||||
INSTALL_PREFIX=/pp
|
||||
endif
|
||||
endif
|
||||
export INSTALL_PREFIX
|
||||
ifndef DIST_DESTDIR
|
||||
DIST_DESTDIR:=$(BASEDIR)
|
||||
endif
|
||||
export DIST_DESTDIR
|
||||
ifndef INSTALL_BASEDIR
|
||||
ifdef UNIXINSTALLDIR
|
||||
INSTALL_BASEDIR=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
|
||||
else
|
||||
INSTALL_BASEDIR=$(INSTALL_PREFIX)
|
||||
endif
|
||||
endif
|
||||
ifndef INSTALL_BINDIR
|
||||
ifdef UNIXINSTALLDIR
|
||||
INSTALL_BINDIR=$(INSTALL_PREFIX)/bin
|
||||
else
|
||||
INSTALL_BINDIR=$(INSTALL_BASEDIR)/bin/$(OS_TARGET)
|
||||
endif
|
||||
endif
|
||||
ifndef INSTALL_UNITDIR
|
||||
INSTALL_UNITDIR=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
|
||||
ifdef PACKAGE_NAME
|
||||
INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
|
||||
endif
|
||||
endif
|
||||
ifndef INSTALL_LIBDIR
|
||||
ifdef UNIXINSTALLDIR
|
||||
INSTALL_LIBDIR=$(INSTALL_PREFIX)/lib
|
||||
else
|
||||
INSTALL_LIBDIR=$(INSTALL_UNITDIR)
|
||||
endif
|
||||
endif
|
||||
ifndef INSTALL_SOURCEDIR
|
||||
ifdef UNIXINSTALLDIR
|
||||
INSTALL_SOURCEDIR=$(INSTALL_PREFIX)/src/fpc-$(FPC_VERSION)
|
||||
else
|
||||
INSTALL_SOURCEDIR=$(INSTALL_BASEDIR)/source
|
||||
endif
|
||||
ifdef PACKAGE_NAME
|
||||
INSTALL_SOURCEDIR:=$(INSTALL_SOURCEDIR)/$(PACKAGE_NAME)
|
||||
endif
|
||||
endif
|
||||
ifndef INSTALL_DOCDIR
|
||||
ifdef UNIXINSTALLDIR
|
||||
INSTALL_DOCDIR=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)
|
||||
else
|
||||
INSTALL_DOCDIR=$(INSTALL_BASEDIR)/doc
|
||||
endif
|
||||
endif
|
||||
ifndef INSTALL_EXAMPLEDIR
|
||||
ifdef UNIXINSTALLDIR
|
||||
INSTALL_EXAMPLEDIR=$(INSTALL_DOCDIR)/examples
|
||||
else
|
||||
INSTALL_EXAMPLEDIR=$(INSTALL_BASEDIR)/examples
|
||||
endif
|
||||
ifdef EXAMPLESUBDIR
|
||||
INSTALL_EXAMPLEDIR:=$(INSTALL_EXAMPLEDIR)/$(EXAMPLESUBDIR)
|
||||
endif
|
||||
endif
|
||||
ifndef INSTALL_DATADIR
|
||||
INSTALL_DATADIR=$(INSTALL_BASEDIR)
|
||||
endif
|
||||
ifdef inUnix
|
||||
ifndef GCCLIBDIR
|
||||
GCCLIBDIR:=$(shell dirname `(gcc -v 2>&1)| head -n 1| awk '{ print $$4 } '`)
|
||||
endif
|
||||
ifndef OTHERLIBDIR
|
||||
OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }')
|
||||
endif
|
||||
export GCCLIBDIR OTHERLIB
|
||||
endif
|
||||
REQUIRE_PACKAGES_OPENGL=1
|
||||
REQUIRE_PACKAGES_GTK=1
|
||||
ifeq ($(OS_TARGET),linux)
|
||||
REQUIRE_PACKAGES_X11=1
|
||||
endif
|
||||
ifdef REQUIRE_PACKAGES_X11
|
||||
PACKAGEDIR_X11:=$(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR)))))
|
||||
ifneq ($(PACKAGEDIR_X11),)
|
||||
PACKAGEDIR_X11:=$(firstword $(PACKAGEDIR_X11))
|
||||
ifeq ($(wildcard $(PACKAGEDIR_X11)/$(FPCMADE)),)
|
||||
override COMPILEPACKAGES+=package_x11
|
||||
package_x11:
|
||||
$(MAKE) -C $(PACKAGEDIR_X11) all
|
||||
endif
|
||||
ifneq ($(wildcard $(PACKAGEDIR_X11)/$(OS_TARGET)),)
|
||||
UNITDIR_X11=$(PACKAGEDIR_X11)/$(OS_TARGET)
|
||||
else
|
||||
UNITDIR_X11=$(PACKAGEDIR_X11)
|
||||
endif
|
||||
else
|
||||
PACKAGEDIR_X11=
|
||||
UNITDIR_X11:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /x11/Package.fpc,$(UNITSDIR)))))
|
||||
ifneq ($(UNITDIR_X11),)
|
||||
UNITDIR_X11:=$(firstword $(UNITDIR_X11))
|
||||
else
|
||||
UNITDIR_X11=
|
||||
endif
|
||||
endif
|
||||
ifdef UNITDIR_X11
|
||||
override COMPILER_UNITDIR+=$(UNITDIR_X11)
|
||||
endif
|
||||
endif
|
||||
ifdef REQUIRE_PACKAGES_OPENGL
|
||||
PACKAGEDIR_OPENGL:=$(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /opengl/Makefile.fpc,$(PACKAGESDIR)))))
|
||||
ifneq ($(PACKAGEDIR_OPENGL),)
|
||||
PACKAGEDIR_OPENGL:=$(firstword $(PACKAGEDIR_OPENGL))
|
||||
ifeq ($(wildcard $(PACKAGEDIR_OPENGL)/$(FPCMADE)),)
|
||||
override COMPILEPACKAGES+=package_opengl
|
||||
package_opengl:
|
||||
$(MAKE) -C $(PACKAGEDIR_OPENGL) all
|
||||
endif
|
||||
ifneq ($(wildcard $(PACKAGEDIR_OPENGL)/$(OS_TARGET)),)
|
||||
UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)/$(OS_TARGET)
|
||||
else
|
||||
UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)
|
||||
endif
|
||||
else
|
||||
PACKAGEDIR_OPENGL=
|
||||
UNITDIR_OPENGL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /opengl/Package.fpc,$(UNITSDIR)))))
|
||||
ifneq ($(UNITDIR_OPENGL),)
|
||||
UNITDIR_OPENGL:=$(firstword $(UNITDIR_OPENGL))
|
||||
else
|
||||
UNITDIR_OPENGL=
|
||||
endif
|
||||
endif
|
||||
ifdef UNITDIR_OPENGL
|
||||
override COMPILER_UNITDIR+=$(UNITDIR_OPENGL)
|
||||
endif
|
||||
endif
|
||||
ifdef REQUIRE_PACKAGES_GTK
|
||||
PACKAGEDIR_GTK:=$(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /gtk/Makefile.fpc,$(PACKAGESDIR)))))
|
||||
ifneq ($(PACKAGEDIR_GTK),)
|
||||
PACKAGEDIR_GTK:=$(firstword $(PACKAGEDIR_GTK))
|
||||
ifeq ($(wildcard $(PACKAGEDIR_GTK)/$(FPCMADE)),)
|
||||
override COMPILEPACKAGES+=package_gtk
|
||||
package_gtk:
|
||||
$(MAKE) -C $(PACKAGEDIR_GTK) all
|
||||
endif
|
||||
ifneq ($(wildcard $(PACKAGEDIR_GTK)/$(OS_TARGET)),)
|
||||
UNITDIR_GTK=$(PACKAGEDIR_GTK)/$(OS_TARGET)
|
||||
else
|
||||
UNITDIR_GTK=$(PACKAGEDIR_GTK)
|
||||
endif
|
||||
else
|
||||
PACKAGEDIR_GTK=
|
||||
UNITDIR_GTK:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /gtk/Package.fpc,$(UNITSDIR)))))
|
||||
ifneq ($(UNITDIR_GTK),)
|
||||
UNITDIR_GTK:=$(firstword $(UNITDIR_GTK))
|
||||
else
|
||||
UNITDIR_GTK=
|
||||
endif
|
||||
endif
|
||||
ifdef UNITDIR_GTK
|
||||
override COMPILER_UNITDIR+=$(UNITDIR_GTK)
|
||||
endif
|
||||
endif
|
||||
.PHONY: package_x11 package_opengl package_gtk
|
||||
override FPCOPTDEF=$(CPU_TARGET)
|
||||
ifneq ($(OS_TARGET),$(OS_SOURCE))
|
||||
override FPCOPT+=-T$(OS_TARGET)
|
||||
endif
|
||||
ifdef UNITDIR
|
||||
override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
|
||||
endif
|
||||
ifdef LIBDIR
|
||||
override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
|
||||
endif
|
||||
ifdef OBJDIR
|
||||
override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
|
||||
endif
|
||||
ifdef INCDIR
|
||||
override FPCOPT+=$(addprefix -Fi,$(INCDIR))
|
||||
endif
|
||||
ifdef LINKSMART
|
||||
override FPCOPT+=-XX
|
||||
endif
|
||||
ifdef CREATESMART
|
||||
override FPCOPT+=-CX
|
||||
endif
|
||||
ifdef DEBUG
|
||||
override FPCOPT+=-gl
|
||||
override FPCOPTDEF+=DEBUG
|
||||
endif
|
||||
ifdef RELEASE
|
||||
override FPCOPT+=-Xs -OG2p3 -n
|
||||
override FPCOPTDEF+=RELEASE
|
||||
endif
|
||||
ifdef STRIP
|
||||
override FPCOPT+=-Xs
|
||||
endif
|
||||
ifdef OPTIMIZE
|
||||
override FPCOPT+=-OG2p3
|
||||
endif
|
||||
ifdef VERBOSE
|
||||
override FPCOPT+=-vwni
|
||||
endif
|
||||
ifdef COMPILER_OPTIONS
|
||||
override FPCOPT+=$(COMPILER_OPTIONS)
|
||||
endif
|
||||
ifdef COMPILER_UNITDIR
|
||||
override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
|
||||
endif
|
||||
ifdef COMPILER_LIBRARYDIR
|
||||
override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
|
||||
endif
|
||||
ifdef COMPILER_OBJECTDIR
|
||||
override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
|
||||
endif
|
||||
ifdef COMPILER_INCLUDEDIR
|
||||
override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
|
||||
endif
|
||||
ifdef COMPILER_TARGETDIR
|
||||
override FPCOPT+=-FE$(COMPILER_TARGETDIR)
|
||||
ifeq ($(COMPILER_TARGETDIR),.)
|
||||
override TARGETDIRPREFIX=
|
||||
else
|
||||
override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
|
||||
endif
|
||||
endif
|
||||
ifdef COMPILER_UNITTARGETDIR
|
||||
override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
|
||||
ifeq ($(COMPILER_UNITTARGETDIR),.)
|
||||
override UNITTARGETDIRPREFIX=
|
||||
else
|
||||
override UNITTARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
|
||||
endif
|
||||
else
|
||||
ifdef COMPILER_TARGETDIR
|
||||
override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
|
||||
override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
|
||||
endif
|
||||
endif
|
||||
ifdef GCCLIBDIR
|
||||
override FPCOPT+=-Fl$(GCCLIBDIR)
|
||||
endif
|
||||
ifdef OTHERLIBDIR
|
||||
override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR))
|
||||
endif
|
||||
ifdef OPT
|
||||
override FPCOPT+=$(OPT)
|
||||
endif
|
||||
ifdef FPCOPTDEF
|
||||
override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
|
||||
endif
|
||||
ifdef CFGFILE
|
||||
override FPCOPT+=@$(CFGFILE)
|
||||
endif
|
||||
ifeq ($(OS_SOURCE),win32)
|
||||
override FPCEXTCMD:=$(FPCOPT)
|
||||
override FPCOPT:=!FPCEXTCMD
|
||||
export FPCEXTCMD
|
||||
endif
|
||||
override COMPILER:=$(FPC) $(FPCOPT)
|
||||
ifeq (,$(findstring -s ,$(COMPILER)))
|
||||
EXECPPAS=
|
||||
else
|
||||
ifeq ($(OS_SOURCE),$(OS_TARGET))
|
||||
EXECPPAS:=@$(PPAS)
|
||||
endif
|
||||
endif
|
||||
.PHONY: fpc_packages fpc_all fpc_smart fpc_debug
|
||||
$(FPCMADE): $(ALLTARGET)
|
||||
@$(ECHO) Compiled > $(FPCMADE)
|
||||
fpc_packages: $(COMPILEPACKAGES)
|
||||
fpc_all: fpc_packages $(FPCMADE)
|
||||
fpc_smart:
|
||||
$(MAKE) all LINKSMART=1 CREATESMART=1
|
||||
fpc_debug:
|
||||
$(MAKE) all DEBUG=1
|
||||
.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp
|
||||
%$(PPUEXT): %.pp
|
||||
$(COMPILER) $<
|
||||
$(EXECPPAS)
|
||||
%$(PPUEXT): %.pas
|
||||
$(COMPILER) $<
|
||||
$(EXECPPAS)
|
||||
%$(EXEEXT): %.pp
|
||||
$(COMPILER) $<
|
||||
$(EXECPPAS)
|
||||
%$(EXEEXT): %.pas
|
||||
$(COMPILER) $<
|
||||
$(EXECPPAS)
|
||||
vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCDIR)
|
||||
vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCDIR)
|
||||
vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
|
||||
.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
|
||||
ifdef INSTALL_UNITS
|
||||
override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
|
||||
endif
|
||||
ifdef INSTALLPPUFILES
|
||||
override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
|
||||
ifdef PPUFILES
|
||||
INSTALLPPULINKFILES:=$(shell $(PPUFILES) -S -O $(INSTALLPPUFILES))
|
||||
else
|
||||
INSTALLPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))))
|
||||
endif
|
||||
override INSTALLPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES))
|
||||
endif
|
||||
ifdef INSTALLEXEFILES
|
||||
override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES))
|
||||
endif
|
||||
fpc_install: $(INSTALLTARGET)
|
||||
ifdef INSTALLEXEFILES
|
||||
$(MKDIR) $(INSTALL_BINDIR)
|
||||
ifdef UPXPROG
|
||||
-$(UPXPROG) $(INSTALLEXEFILES)
|
||||
endif
|
||||
$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
|
||||
endif
|
||||
ifdef INSTALLPPUFILES
|
||||
$(MKDIR) $(INSTALL_UNITDIR)
|
||||
$(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
|
||||
ifneq ($(INSTALLPPULINKFILES),)
|
||||
$(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
|
||||
endif
|
||||
ifneq ($(wildcard $(LIB_FULLNAME)),)
|
||||
$(MKDIR) $(INSTALL_LIBDIR)
|
||||
$(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
|
||||
ifdef inUnix
|
||||
ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
ifdef INSTALL_FILES
|
||||
$(MKDIR) $(INSTALL_DATADIR)
|
||||
$(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
|
||||
endif
|
||||
fpc_sourceinstall: distclean
|
||||
$(MKDIR) $(INSTALL_SOURCEDIR)
|
||||
$(COPYTREE) $(BASEDIR) $(INSTALL_SOURCEDIR)
|
||||
fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
|
||||
ifdef EXAMPLESOURCEFILES
|
||||
$(MKDIR) $(INSTALL_EXAMPLEDIR)
|
||||
$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
|
||||
endif
|
||||
ifdef TARGET_EXAMPLEDIRS
|
||||
ifndef EXAMPLESOURCEFILES
|
||||
$(MKDIR) $(INSTALL_EXAMPLEDIR)
|
||||
endif
|
||||
$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
|
||||
endif
|
||||
fpc_distinstall: fpc_install fpc_exampleinstall
|
||||
.PHONY: fpc_clean fpc_cleanall fpc_distclean
|
||||
ifdef EXEFILES
|
||||
override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
|
||||
endif
|
||||
ifdef CLEAN_UNITS
|
||||
override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
|
||||
endif
|
||||
ifdef CLEANPPUFILES
|
||||
override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
|
||||
ifdef PPUFILES
|
||||
CLEANPPULINKFILES:=$(shell $(PPUFILES) $(CLEANPPUFILES))
|
||||
else
|
||||
CLEANPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))))
|
||||
endif
|
||||
override CLEANPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))
|
||||
endif
|
||||
fpc_clean: $(CLEANTARGET)
|
||||
ifdef CLEANEXEFILES
|
||||
-$(DEL) $(CLEANEXEFILES)
|
||||
endif
|
||||
ifdef CLEANPPUFILES
|
||||
-$(DEL) $(CLEANPPUFILES)
|
||||
endif
|
||||
ifneq ($(CLEANPPULINKFILES),)
|
||||
-$(DEL) $(CLEANPPULINKFILES)
|
||||
endif
|
||||
ifdef CLEANRSTFILES
|
||||
-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
|
||||
endif
|
||||
ifdef CLEAN_FILES
|
||||
-$(DEL) $(CLEAN_FILES)
|
||||
endif
|
||||
ifdef LIB_NAME
|
||||
-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
|
||||
endif
|
||||
-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
|
||||
fpc_distclean: fpc_clean
|
||||
ifdef COMPILER_UNITTARGETDIR
|
||||
TARGETDIRCLEAN=fpc_clean
|
||||
endif
|
||||
fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
|
||||
ifdef CLEANEXEFILES
|
||||
-$(DEL) $(CLEANEXEFILES)
|
||||
endif
|
||||
-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
|
||||
-$(DELTREE) *$(SMARTEXT)
|
||||
-$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
|
||||
.PHONY: fpc_info
|
||||
fpc_info:
|
||||
@$(ECHO)
|
||||
@$(ECHO) == Package info ==
|
||||
@$(ECHO) Package Name..... $(PACKAGE_NAME)
|
||||
@$(ECHO) Package Version.. $(PACKAGE_VERSION)
|
||||
@$(ECHO)
|
||||
@$(ECHO) == Configuration info ==
|
||||
@$(ECHO)
|
||||
@$(ECHO) FPC.......... $(FPC)
|
||||
@$(ECHO) FPC Version.. $(FPC_VERSION)
|
||||
@$(ECHO) Source CPU... $(CPU_SOURCE)
|
||||
@$(ECHO) Target CPU... $(CPU_TARGET)
|
||||
@$(ECHO) Source OS.... $(OS_SOURCE)
|
||||
@$(ECHO) Target OS.... $(OS_TARGET)
|
||||
@$(ECHO)
|
||||
@$(ECHO) == Directory info ==
|
||||
@$(ECHO)
|
||||
@$(ECHO) Basedir......... $(BASEDIR)
|
||||
@$(ECHO) FPCDir.......... $(FPCDIR)
|
||||
@$(ECHO) UnitsDir........ $(UNITSDIR)
|
||||
@$(ECHO) PackagesDir..... $(PACKAGESDIR)
|
||||
@$(ECHO)
|
||||
@$(ECHO) GCC library..... $(GCCLIBDIR)
|
||||
@$(ECHO) Other library... $(OTHERLIBDIR)
|
||||
@$(ECHO)
|
||||
@$(ECHO) == Tools info ==
|
||||
@$(ECHO)
|
||||
@$(ECHO) Pwd....... $(PWD)
|
||||
@$(ECHO) Echo...... $(ECHO)
|
||||
@$(ECHO) PPUMove... $(PPUMOVE)
|
||||
@$(ECHO) PPUFiles.. $(PPUFILES)
|
||||
@$(ECHO) Date...... $(DATE)
|
||||
@$(ECHO) Upx....... $(UPXPROG)
|
||||
@$(ECHO) Zip....... $(ZIPPROG)
|
||||
@$(ECHO)
|
||||
@$(ECHO) == Object info ==
|
||||
@$(ECHO)
|
||||
@$(ECHO) Target Loaders...... $(TARGET_LOADERS)
|
||||
@$(ECHO) Target Units........ $(TARGET_UNITS)
|
||||
@$(ECHO) Target Programs..... $(TARGET_PROGRAMS)
|
||||
@$(ECHO) Target Dirs......... $(TARGET_DIRS)
|
||||
@$(ECHO) Target Examples..... $(TARGET_EXAMPLES)
|
||||
@$(ECHO) Target ExampleDirs.. $(TARGET_EXAMPLEDIRS)
|
||||
@$(ECHO)
|
||||
@$(ECHO) Clean Units......... $(CLEAN_UNITS)
|
||||
@$(ECHO) Clean Files......... $(CLEAN_FILES)
|
||||
@$(ECHO)
|
||||
@$(ECHO) Install Units....... $(INSTALL_UNITS)
|
||||
@$(ECHO) Install Files....... $(INSTALL_FILES)
|
||||
@$(ECHO)
|
||||
@$(ECHO) == Install info ==
|
||||
@$(ECHO)
|
||||
@$(ECHO) DateStr.............. $(DATESTR)
|
||||
@$(ECHO) ZipPrefix............ $(ZIPPREFIX)
|
||||
@$(ECHO) ZipSuffix............ $(ZIPSUFFIX)
|
||||
@$(ECHO)
|
||||
@$(ECHO) INSTALL_BASEDIR...... $(INSTALL_BASEDIR)
|
||||
@$(ECHO) INSTALL_BINDIR....... $(INSTALL_BINDIR)
|
||||
@$(ECHO) INSTALL_LIBDIR....... $(INSTALL_LIBDIR)
|
||||
@$(ECHO) INSTALL_UNITDIR...... $(INSTALL_UNITDIR)
|
||||
@$(ECHO) INSTALL_SOURCEDIR.... $(INSTALL_SOURCEDIR)
|
||||
@$(ECHO) INSTALL_DOCDIR....... $(INSTALL_DOCDIR)
|
||||
@$(ECHO) INSTALL_DATADIR...... $(INSTALL_DATADIR)
|
||||
@$(ECHO)
|
||||
@$(ECHO) DIST_DESTDIR......... $(DIST_DESTDIR)
|
||||
@$(ECHO) DIST_ZIPNAME......... $(DIST_ZIPNAME)
|
||||
@$(ECHO)
|
||||
all: fpc_all
|
||||
debug: fpc_debug
|
||||
examples: fpc_examples
|
||||
smart: fpc_smart
|
||||
shared: fpc_shared
|
||||
install: fpc_install
|
||||
sourceinstall: fpc_sourceinstall
|
||||
exampleinstall: fpc_exampleinstall
|
||||
distinstall: fpc_distinstall
|
||||
zipinstall:
|
||||
zipsourceinstall:
|
||||
zipexampleinstall:
|
||||
zipdistinstall:
|
||||
clean: fpc_clean
|
||||
distclean: fpc_distclean
|
||||
cleanall: fpc_cleanall
|
||||
info: fpc_info
|
||||
.PHONY: all debug examples smart shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info
|
||||
ifneq ($(wildcard fpcmake.loc),)
|
||||
include fpcmake.loc
|
||||
endif
|
@ -1,17 +0,0 @@
|
||||
#
|
||||
# Makefile.fpc for GtkGLArea
|
||||
#
|
||||
|
||||
[targets]
|
||||
units=gtkglarea
|
||||
examples=gtkgldemo
|
||||
|
||||
[require]
|
||||
packages=opengl gtk
|
||||
packages_linux=x11
|
||||
|
||||
[dirs]
|
||||
fpcdir=../../..
|
||||
|
||||
[libs]
|
||||
libother=1
|
@ -1,178 +0,0 @@
|
||||
{
|
||||
$Id$
|
||||
|
||||
Translation of the gtkglarea 4 headers for Free Pascal
|
||||
Copyright (C) 2000 Sebastian Guenther
|
||||
|
||||
Copyright notice of gtkglarea:
|
||||
|
||||
* Copyright (C) 1997-1998 Janne Löf <jlof@mail.student.oulu.fi>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
}
|
||||
|
||||
unit gtkglarea;
|
||||
|
||||
{$MODE objfpc}
|
||||
{$PACKRECORDS C}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
GDK, GTK, GL;
|
||||
|
||||
const
|
||||
libgtkgl = 'gtkgl';
|
||||
|
||||
// ===================================================================
|
||||
// gdkgl
|
||||
// ===================================================================
|
||||
|
||||
{
|
||||
These definitions are duplicated from GL/glx.h that comes with Mesa.
|
||||
I don't want every program to include GL/glx.h, that might become
|
||||
problem if GtkGLArea is ever ported to non X environments like
|
||||
(horror!) Windows.
|
||||
}
|
||||
|
||||
// enum _GDK_GL_CONFIGS
|
||||
GDK_GL_NONE = 0;
|
||||
GDK_GL_USE_GL = 1;
|
||||
GDK_GL_BUFFER_SIZE = 2;
|
||||
GDK_GL_LEVEL = 3;
|
||||
GDK_GL_RGBA = 4;
|
||||
GDK_GL_DOUBLEBUFFER = 5;
|
||||
GDK_GL_STEREO = 6;
|
||||
GDK_GL_AUX_BUFFERS = 7;
|
||||
GDK_GL_RED_SIZE = 8;
|
||||
GDK_GL_GREEN_SIZE = 9;
|
||||
GDK_GL_BLUE_SIZE = 10;
|
||||
GDK_GL_ALPHA_SIZE = 11;
|
||||
GDK_GL_DEPTH_SIZE = 12;
|
||||
GDK_GL_STENCIL_SIZE = 13;
|
||||
GDK_GL_ACCUM_RED_SIZE = 14;
|
||||
GDK_GL_ACCUM_GREEN_SIZE = 15;
|
||||
GDK_GL_ACCUM_BLUE_SIZE = 16;
|
||||
GDK_GL_ACCUM_ALPHA_SIZE = 17;
|
||||
|
||||
// GLX_EXT_visual_info extension
|
||||
GDK_GL_X_VISUAL_TYPE_EXT = $22;
|
||||
GDK_GL_TRANSPARENT_TYPE_EXT = $23;
|
||||
GDK_GL_TRANSPARENT_INDEX_VALUE_EXT = $24;
|
||||
GDK_GL_TRANSPARENT_RED_VALUE_EXT = $25;
|
||||
GDK_GL_TRANSPARENT_GREEN_VALUE_EXT = $26;
|
||||
GDK_GL_TRANSPARENT_BLUE_VALUE_EXT = $27;
|
||||
GDK_GL_TRANSPARENT_ALPHA_VALUE_EXT = $28;
|
||||
|
||||
|
||||
type
|
||||
|
||||
TGdkGLContext = record end;
|
||||
PGdkGLContext = ^TGdkGLContext;
|
||||
|
||||
|
||||
function gdk_gl_query: Integer; cdecl; external libgtkgl;
|
||||
function gdk_gl_choose_visual(attrList: PInteger): PGdkVisual; cdecl; external libgtkgl;
|
||||
{$ifndef win32}
|
||||
function gdk_gl_get_config(visual: PGdkVisual; attrib: Integer): Integer; cdecl; external libgtkgl;
|
||||
function gdk_gl_context_new(visual: PGdkVisual): PGdkGLContext; cdecl; external libgtkgl;
|
||||
function gdk_gl_context_share_new(visual: PGdkVisual; sharelist: PGdkGLContext; direct: Integer): PGdkGLContext; cdecl; external libgtkgl;
|
||||
function gdk_gl_context_ref(context: PGdkGLContext): PGdkGLContext; cdecl; external libgtkgl;
|
||||
procedure gdk_gl_context_unref(context: PGdkGLContext); cdecl; external libgtkgl;
|
||||
{$endif}
|
||||
function gdk_gl_make_current(drawable: PGdkDrawable; context: PGdkGLContext): Integer; cdecl; external libgtkgl;
|
||||
procedure gdk_gl_swap_buffers(drawable: PGdkDrawable); cdecl; external libgtkgl;
|
||||
procedure gdk_gl_wait_gdk; cdecl; external libgtkgl;
|
||||
procedure gdk_gl_wait_gl; cdecl; external libgtkgl;
|
||||
|
||||
|
||||
// glpixmap stuff
|
||||
|
||||
type
|
||||
|
||||
TGdkGLPixmap = record end;
|
||||
PGdkGLPixmap = ^TGdkGLPixmap;
|
||||
|
||||
{$ifndef win32}
|
||||
function gdk_gl_pixmap_new(visual: PGdkVisual; pixmap: PGdkPixmap): PGdkGLPixmap; cdecl; external libgtkgl;
|
||||
function gdk_gl_pixmap_ref(glpixmap: PGdkGLPixmap): PGdkGLPixmap; cdecl; external libgtkgl;
|
||||
procedure gdk_gl_pixmap_unref(glpixmap: PGdkGLPixmap); cdecl; external libgtkgl;
|
||||
function gdk_gl_pixmap_make_current(glpixmap: PGdkGLPixmap; context: PGdkGLContext): Integer; cdecl; external libgtkgl;
|
||||
{$endif}
|
||||
|
||||
|
||||
// fonts
|
||||
{$ifndef win32}
|
||||
procedure gdk_gl_use_gdk_font(font: PGdkFont; first, count, list_base: Integer); cdecl; external libgtkgl;
|
||||
{$endif}
|
||||
|
||||
|
||||
// ===================================================================
|
||||
// gtkglarea
|
||||
// ===================================================================
|
||||
|
||||
type
|
||||
|
||||
PGtkGLArea = ^TGtkGLArea;
|
||||
|
||||
TGtkGLArea = record
|
||||
darea: TGtkDrawingArea;
|
||||
glcontext: PGdkGLContext;
|
||||
end;
|
||||
|
||||
|
||||
PGtkGLAreaClass = ^TGtkGLAreaClass;
|
||||
TGtkGLAreaClass = record
|
||||
parent_class: TGtkDrawingAreaClass;
|
||||
end;
|
||||
|
||||
|
||||
function GTK_TYPE_GL_AREA: TGtkType; cdecl; external libgtkgl name 'gtk_gl_area_get_type';
|
||||
function GTK_IS_GL_AREA(obj: Pointer): Boolean;
|
||||
function GTK_IS_GL_AREA_CLASS(klass: Pointer): Boolean;
|
||||
|
||||
function gtk_gl_area_get_type: TGtkType; cdecl; external libgtkgl;
|
||||
function gtk_gl_area_new(attrList: PInteger): PGtkWidget; cdecl; external libgtkgl;
|
||||
function gtk_gl_area_share_new(attrList: PInteger; share: PGtkGLArea): PGtkWidget; cdecl; external libgtkgl;
|
||||
function gtk_gl_area_new_vargs(share: PGtkGLArea; args: array of const): PGtkWidget; cdecl; external libgtkgl;
|
||||
|
||||
function gtk_gl_area_make_current(glarea: PGtkGLArea): Integer; cdecl; external libgtkgl;
|
||||
procedure gtk_gl_area_swapbuffers(glarea: PGtkGLArea); cdecl; external libgtkgl;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
|
||||
function GTK_IS_GL_AREA(obj: Pointer): Boolean;
|
||||
begin
|
||||
Result := Assigned(obj) and GTK_IS_GL_AREA_CLASS(PGtkTypeObject(obj)^.klass);
|
||||
end;
|
||||
|
||||
function GTK_IS_GL_AREA_CLASS(klass: Pointer): Boolean;
|
||||
begin
|
||||
Result := Assigned(klass) and (PGtkTypeClass(klass)^.thetype = GTK_TYPE_GL_AREA);
|
||||
end;
|
||||
|
||||
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.1 2000-09-03 21:25:45 peter
|
||||
* new updated version
|
||||
* gtkglarea unit and demo
|
||||
* win32 opengl headers
|
||||
* morph3d demo
|
||||
|
||||
}
|
@ -1,196 +0,0 @@
|
||||
{$MODE DELPHI}
|
||||
|
||||
{$ifdef win32}
|
||||
{$APPTYPE GUI}
|
||||
{$endif}
|
||||
|
||||
program gtkgldemo;
|
||||
|
||||
uses glib, gdk, gtk, gtkglarea,gl;
|
||||
|
||||
|
||||
function init(widget:PGtkWidget ):gint;cdecl;
|
||||
|
||||
begin
|
||||
if (gint(True)=gtk_gl_area_make_current(PGtkGLArea(widget))) then
|
||||
begin
|
||||
|
||||
glViewport(0,0, widget^.allocation.width, widget^.allocation.height);
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
glOrtho(0,100, 100,0, -1,1);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
|
||||
end;
|
||||
|
||||
init:= gint(TRUE);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
(* When widget is exposed it's contents are redrawn. *)
|
||||
|
||||
function draw(widget: PGtkWidget; event: PGdkEventExpose): gint; cdecl;
|
||||
|
||||
begin
|
||||
|
||||
(* Draw only last expose. *)
|
||||
if (event^.count > 0) then
|
||||
exit(gint(TRUE));
|
||||
|
||||
(* OpenGL functions can be called only if make_current returns true *)
|
||||
if (gint(True) = gtk_gl_area_make_current(PGtkGLArea(widget))) then
|
||||
begin
|
||||
|
||||
glClearColor(0,0,0,1);
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
glColor3f(1,1,1);
|
||||
glBegin(GL_TRIANGLES);
|
||||
glVertex2f(10,10);
|
||||
glVertex2f(10,90);
|
||||
glVertex2f(90,90);
|
||||
glEnd();
|
||||
|
||||
(* Swap backbuffer to front *)
|
||||
gtk_gl_area_swapbuffers(PGtkGLArea(widget));
|
||||
|
||||
end;
|
||||
|
||||
exit(gint(TRUE));
|
||||
end;
|
||||
|
||||
(* When glarea widget size changes, viewport size is set to match the new size *)
|
||||
|
||||
function reshape(widget:PGtkWidget; event: PGdkEventConfigure):gint; cdecl;
|
||||
begin
|
||||
|
||||
(* OpenGL functions can be called only if make_current returns true *)
|
||||
if (gint(True) = gtk_gl_area_make_current(PGtkGLArea(widget))) then
|
||||
begin
|
||||
|
||||
glViewport(0, 0, widget^.allocation.width, widget^.allocation.height);
|
||||
|
||||
end;
|
||||
exit( gint(TRUE));
|
||||
end;
|
||||
|
||||
var
|
||||
window,glarea: PGtkWidget;
|
||||
|
||||
(* Attribute list for gtkglarea widget. Specifies a
|
||||
list of Boolean attributes and enum/integer
|
||||
attribute/value pairs. The last attribute must be
|
||||
GDK_GL_NONE. See glXChooseVisual manpage for further
|
||||
explanation.
|
||||
*)
|
||||
|
||||
const
|
||||
attrlist: array [1..11] of LongInt=
|
||||
( GDK_GL_RGBA,
|
||||
GDK_GL_RED_SIZE, 1,
|
||||
GDK_GL_GREEN_SIZE, 1,
|
||||
GDK_GL_BLUE_SIZE, 1,
|
||||
GDK_GL_DEPTH_SIZE,1,
|
||||
GDK_GL_DOUBLEBUFFER,
|
||||
GDK_GL_None
|
||||
);
|
||||
|
||||
(* int attrlist[] = {
|
||||
GDK_GL_RGBA,
|
||||
GDK_GL_RED_SIZE,1,
|
||||
GDK_GL_GREEN_SIZE,1,
|
||||
GDK_GL_BLUE_SIZE,1,
|
||||
GDK_GL_DOUBLEBUFFER,
|
||||
GDK_GL_NONE
|
||||
};
|
||||
*)
|
||||
|
||||
begin
|
||||
(* OpenGL functions can be called only if make_current returns true *)
|
||||
if not InitGl then begin
|
||||
WriteLn('OpenGL is not supported on this system');
|
||||
Halt(2);
|
||||
end;
|
||||
|
||||
|
||||
(* initialize gtk *)
|
||||
gtk_init(@argc, @argv);
|
||||
|
||||
(* Attribute list for gtkglarea widget. Specifies a
|
||||
list of Boolean attributes and enum/integer
|
||||
attribute/value pairs. The last attribute must be
|
||||
GDK_GL_NONE. See glXChooseVisual manpage for further
|
||||
explanation.
|
||||
*)
|
||||
|
||||
|
||||
(* vendor dependent version info string *)
|
||||
{ info_str = gdk_gl_get_info();
|
||||
g_print(info_str);
|
||||
g_free(info_str);}
|
||||
|
||||
(* Check if OpenGL is supported. *)
|
||||
{ if (gdk_gl_query() = FALSE) then
|
||||
begin
|
||||
g_print("OpenGL not supported\n");
|
||||
return 0;
|
||||
end;}
|
||||
|
||||
|
||||
|
||||
|
||||
(* Create new top level window. *)
|
||||
window := gtk_window_new( GTK_WINDOW_TOPLEVEL);
|
||||
gtk_window_set_title(GTK_WINDOW(window), 'OpenGL Output');
|
||||
gtk_container_set_border_width(GTK_CONTAINER(window), 10);
|
||||
|
||||
(* Quit form main if got delete event *)
|
||||
gtk_signal_connect(GTK_OBJECT(window), 'delete_event',
|
||||
GTK_SIGNAL_FUNC(@gtk_main_quit), NULL);
|
||||
|
||||
|
||||
(* You should always delete gtk_gl_area widgets before exit or else
|
||||
GLX contexts are left undeleted, this may cause problems (=core dump)
|
||||
in some systems.
|
||||
Destroy method of objects is not automatically called on exit.
|
||||
You need to manually enable this feature. Do gtk_quit_add_destroy()
|
||||
for all your top level windows unless you are certain that they get
|
||||
destroy signal by other means.
|
||||
*)
|
||||
gtk_quit_add_destroy(1, GTK_OBJECT(window));
|
||||
|
||||
|
||||
(* Create new OpenGL widget. *)
|
||||
glarea := GTK_WIDGET(gtk_gl_area_new(pgint(@attrlist)));
|
||||
|
||||
(* Events for widget must be set before X Window is created *)
|
||||
gtk_widget_set_events(GTK_WIDGET(glarea),
|
||||
GDK_EXPOSURE_MASK or
|
||||
GDK_BUTTON_PRESS_MASK);
|
||||
|
||||
(* Connect signal handlers *)
|
||||
(* Redraw image when exposed. *)
|
||||
gtk_signal_connect(GTK_OBJECT(glarea), 'expose_event', GTK_SIGNAL_FUNC(@draw), Nil);
|
||||
|
||||
(* When window is resized viewport needs to be resized also. *)
|
||||
gtk_signal_connect(GTK_OBJECT(glarea), 'configure_event', GTK_SIGNAL_FUNC(@reshape), Nil);
|
||||
|
||||
(* Do initialization when widget has been realized. *)
|
||||
gtk_signal_connect(GTK_OBJECT(glarea), 'realize', GTK_SIGNAL_FUNC(@init), Nil);
|
||||
|
||||
(* set minimum size *)
|
||||
gtk_widget_set_usize(GTK_WIDGET(glarea), 400,400);
|
||||
|
||||
(* put glarea into window and show it all *)
|
||||
gtk_container_add(GTK_CONTAINER(window),GTK_WIDGET(glarea));
|
||||
|
||||
|
||||
gtk_widget_show(GTK_WIDGET(glarea));
|
||||
|
||||
gtk_widget_show(GTK_WIDGET(window));
|
||||
|
||||
gtk_main();
|
||||
|
||||
end.
|
Loading…
Reference in New Issue
Block a user