From 6add9557ee8a0e658e47f0baf25206e10f9d4fc7 Mon Sep 17 00:00:00 2001 From: Meg Ford Date: Sun, 19 May 2019 15:49:29 -0500 Subject: [PATCH 01/12] Update branch for GObject Instrospection --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index c132a58ee9..717ef905e5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,7 +30,7 @@ RUN git clone git://github.com/sstephenson/rbenv.git /root/.rbenv RUN git clone git://github.com/sstephenson/ruby-build.git /root/.rbenv/plugins/ruby-build ENV PATH /root/.rbenv/shims:/root/.rbenv/bin:/root/.rbenv/plugins/ruby-build/bin:$PATH -RUN git clone https://gitlab.gnome.org/ptomato/gobject-introspection.git -b devdocs-fixes --depth=1 /opt/gi +RUN git clone https://gitlab.gnome.org/GNOME/gobject-introspection.git --depth=1 /opt/gi WORKDIR /opt/gi RUN meson _build -Ddoctool=true RUN ninja -C _build From 6a9e03daaf727b2986b4b0e1d06dc262c3a42176 Mon Sep 17 00:00:00 2001 From: Philip Chimento Date: Wed, 12 Jun 2019 11:45:08 -0700 Subject: [PATCH 02/12] Fix comment libxml220 documentation is intentionally omitted, as it doesn't contain anything usable from JavaScript. --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 717ef905e5..111d507b2d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -75,8 +75,8 @@ RUN for docset in appindicator301 appstreamglib10 atk10 atspi20 cairo10 \ do echo $docset; bundle exec thor docs:generate $docset --force; done # Intentionally omitted: -# dbus10, dbusglib10, fontconfig20, freetype220, gdkpixdata20, gl10, win3210, -# xfixes40, xft20, xlib20, xrandr13 +# dbus10, dbusglib10, fontconfig20, freetype220, gdkpixdata20, gl10, libxml220, +# win3210, xfixes40, xft20, xlib20, xrandr13 # Clean up Docker image to make it smaller RUN dnf remove -y ModemManager-glib NetworkManager{,-wifi} \ From 6159b89fd2bfa17f5e778f4103bf2265c34b7ed0 Mon Sep 17 00:00:00 2001 From: Philip Chimento Date: Wed, 12 Jun 2019 11:46:17 -0700 Subject: [PATCH 03/12] Remove some packages from uninstall list These packages now seem to be dependencies of systemd-udev, which is a restricted package that can't be removed. So, we shouldn't remove these packages. --- Dockerfile | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/Dockerfile b/Dockerfile index 111d507b2d..cdc0f169b2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -131,8 +131,8 @@ RUN dnf remove -y ModemManager-glib NetworkManager{,-wifi} \ libcanberra{,-devel,-gtk2,-gtk3} libchamplain{,-devel,-gtk} \ libcom_err-devel libcroco libcue libcurl-devel libdatrie \ libdbusmenu{,-devel,-gtk3} libdrm{,-devel} libdwarf libedit \ - libepoxy{,-devel} libevdev libexif libffi-devel libfontenc \ - libgcab1{,-devel} libgdata{,-devel} libgee{,-devel} libgexiv2 \ + libepoxy{,-devel} libevdev libexif libfontenc libgcab1{,-devel} \ + libgdata{,-devel} libgee{,-devel} libgexiv2 \ libglvnd{,-core-devel,-devel,-egl,-gles,-glx,-opengl} libgnomekbd \ libgomp libgrss libgs libgsf libgtop2 libgudev-devel libgusb \ libgweather{,-devel} libgxps{,-devel} libical{,-devel} libicu-devel libidn \ @@ -140,18 +140,17 @@ RUN dnf remove -y ModemManager-glib NetworkManager{,-wifi} \ libkadm5 libldb libmcpp libmediaart libmodman libmpc libndp libnl3 libnma \ libnotify{,-devel} liboauth{,-devel} libogg libosinfo libpaper \ libpciaccess libpeas{,-devel,-gtk} libpng{,-devel} libproxy \ - libquvi{,-scripts} librsvg2{,-devel} libsecret{,-devel} libselinux-devel \ - libsepol-devel libserf libsmbclient libsndfile libsoup{,-devel} libspectre \ - libss libstdc++-devel libstemmer libtalloc libtasn1-{devel,tools} libtdb \ - libtevent libthai libtheora libtiff{,-devel} libtomcrypt libtommath \ - libtool{,-ltdl} libunwind libverto-devel libvisual libvncserver libvorbis \ - libwacom{,-data} libwayland-{client,cursor,egl,server} libwbclient libwebp \ - libxcb{,-devel} libxcrypt-devel libxkbcommon{,-devel,-x11} libxkbfile \ - libxklavier libxml2-devel libxshmfence libxslt libyaml-devel \ - libzapojit{,-devel} llvm-libs lmdb-libs lua{,-expat,-json,-lpeg,-socket} \ - lzo-minilzo m4 make mcpp mdadm \ - mesa-{dri-drivers,filesystem,khr-devel,libglapi} mesa-libEGL{,-devel} \ - mesa-libGL{,-devel} mesa-libgbm{,-devel} meson \ + libquvi{,-scripts} librsvg2{,-devel} libsecret{,-devel} libserf \ + libsmbclient libsndfile libsoup{,-devel} libspectre libss libstdc++-devel \ + libstemmer libtalloc libtasn1-{devel,tools} libtdb libtevent libthai \ + libtheora libtiff{,-devel} libtomcrypt libtommath libtool{,-ltdl} \ + libunwind libverto-devel libvisual libvncserver libvorbis libwacom{,-data} \ + libwayland-{client,cursor,egl,server} libwbclient libwebp libxcb{,-devel} \ + libxcrypt-devel libxkbcommon{,-devel,-x11} libxkbfile libxklavier \ + libxml2-devel libxshmfence libxslt libyaml-devel libzapojit{,-devel} \ + llvm-libs lmdb-libs lua{,-expat,-json,-lpeg,-socket} lzo-minilzo m4 make \ + mcpp mdadm mesa-{dri-drivers,filesystem,khr-devel,libglapi} \ + mesa-libEGL{,-devel} mesa-libGL{,-devel} mesa-libgbm{,-devel} meson \ mobile-broadband-provider-info mokutil mozilla-filesystem mozjs{52,60} \ mtdev mtools multilib-rpm-config mutter ncurses-{c++-libs,devel} \ nettle-devel nim-srpm-macros ninja-build nm-connection-editor npm \ @@ -161,7 +160,6 @@ RUN dnf remove -y ModemManager-glib NetworkManager{,-wifi} \ openblas-srpm-macros openjade openjpeg2 opensp openssh{,-clients} opus \ orc{,-compiler,-devel} osinfo-db{,-tools} ostree-libs \ p11-kit-{devel,server} pango{,-devel} parted patch patchutils \ - pcre2-{devel,utf16,utf32} \ perl-{Carp,Data-Dumper,Digest,Digest-MD5,Encode,Errno,Error,Exporter} \ perl-File-{Path,Temp} \ perl-{Getopt-Long,Git,HTTP-Tiny,IO,MIME-Base64,Mozilla-CA,Net-SSLeay,PathTools} \ @@ -197,8 +195,7 @@ RUN dnf remove -y ModemManager-glib NetworkManager{,-wifi} \ wpa_supplicant xapian-core-libs xcb-util xdg-dbus-proxy \ xdg-desktop-portal{,-gtk} xfsprogs xkeyboard-config xml-common \ xorg-x11-{drv-libinput,font-utils,proto-devel,xauth,xinit,xkb-utils} \ - xorg-x11-server-{Xorg,Xwayland,common,utils} xz-devel zenity zip \ - zlib-devel && \ + xorg-x11-server-{Xorg,Xwayland,common,utils} xz-devel zenity zip && \ dnf clean all && \ rm -rf /var/cache/yum From 6788f4630e286c9f6cce8f96ceb7781a1158e68d Mon Sep 17 00:00:00 2001 From: Philip Chimento Date: Wed, 12 Jun 2019 11:57:02 -0700 Subject: [PATCH 04/12] Remove ShellMenu-0.1 docs This GIR file is no longer exposed by gnome-shell, there's no more JS code that uses it. --- Dockerfile | 5 ++--- assets/javascripts/gnome_news.json | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index cdc0f169b2..0a2782f051 100644 --- a/Dockerfile +++ b/Dockerfile @@ -49,7 +49,6 @@ RUN bundle exec thor gir:generate_all /usr/lib64/mutter # Some of the gnome-shell GIRs need extra include paths RUN bundle exec thor gir:generate /usr/share/gnome-shell/Gvc-1.0.gir RUN bundle exec thor gir:generate /usr/share/gnome-shell/Shell-0.1.gir --include /usr/lib64/mutter -RUN bundle exec thor gir:generate /usr/share/gnome-shell/ShellMenu-0.1.gir --include /usr/lib64/mutter RUN bundle exec thor gir:generate /usr/share/gnome-shell/St-1.0.gir --include /usr/lib64/mutter RUN for docset in appindicator301 appstreamglib10 atk10 atspi20 cairo10 \ @@ -69,8 +68,8 @@ RUN for docset in appindicator301 appstreamglib10 atk10 atspi20 cairo10 \ javascriptcore40 json10 keybinder30 meta3 nm10 notify07 pango10 \ pangocairo10 pangoft210 pangoxft10 peas10 peasgtk10 polkit10 \ polkitagent10 poppler018 rest07 restextras07 rsvg20 secret1 shell01 \ - shellmenu01 soup24 soupgnome24 st10 telepathyglib012 tracker20 \ - trackercontrol20 trackerminer20 upowerglib10 vte00 vte291 webkit240 \ + soup24 soupgnome24 st10 telepathyglib012 tracker20 trackercontrol20 \ + trackerminer20 upowerglib10 vte00 vte291 webkit240 \ webkit2webextension40 zpj00; \ do echo $docset; bundle exec thor docs:generate $docset --force; done diff --git a/assets/javascripts/gnome_news.json b/assets/javascripts/gnome_news.json index 2dae210999..0bb34b2700 100644 --- a/assets/javascripts/gnome_news.json +++ b/assets/javascripts/gnome_news.json @@ -2,7 +2,7 @@ [ "2019-04-06", "Update to upstream DevDocs:\nAdded print & PDF stylesheet.\nPreferences can now be exported and imported.", - "New documentations: Cally 3 (Mutter version), Camel, Clutter 3 (Mutter version), ClutterX11 3 (Mutter version), Cogl 3 (Mutter version), CoglPango 3 (Mutter version), EBook, EBookContacts, EDataServer, EDataServerUI, Folks, FolksDummy, FolksEds, FolksTelepathy, GData, Gee, GstGL, GVC, JavaScriptCore (including JSC-GLib), Mutter, NM 1.0, Shell, ShellMenu, St, Tracker 2.0, TrackerControl 2.0, TrackerMiner 2.0\n", + "New documentations: Cally 3 (Mutter version), Camel, Clutter 3 (Mutter version), ClutterX11 3 (Mutter version), Cogl 3 (Mutter version), CoglPango 3 (Mutter version), EBook, EBookContacts, EDataServer, EDataServerUI, Folks, FolksDummy, FolksEds, FolksTelepathy, GData, Gee, GstGL, GVC, JavaScriptCore (including JSC-GLib), Mutter, NM 1.0, Shell, St, Tracker 2.0, TrackerControl 2.0, TrackerMiner 2.0\n", "Removed some documentations that are no longer available:\nClutterGst 1.0, ClutterGst 2.0, GstFFT 1.0, NetworkManager 1.0, NMClient 1.0, Tracker 1.0, TrackerControl 1.0, TrackerMiner 1.0, Vte 2.90, WebKit 1.0, WebKit 3.0" ], [ From 14402ff200bb4952529d264cab837ed55a489c7a Mon Sep 17 00:00:00 2001 From: Philip Chimento Date: Wed, 12 Jun 2019 12:01:39 -0700 Subject: [PATCH 05/12] Change to mutter-4 libraries On the latest Fedora images, the Mutter libraries have bumped their API versions. --- Dockerfile | 10 +++++----- assets/javascripts/gnome_news.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0a2782f051..aa6eadcb08 100644 --- a/Dockerfile +++ b/Dockerfile @@ -44,7 +44,7 @@ RUN rbenv install RUN gem install bundler RUN bundle install RUN bundle exec thor gir:generate_all /usr/share/gir-1.0 -RUN bundle exec thor gir:generate_all /usr/lib64/mutter +RUN bundle exec thor gir:generate_all /usr/lib64/mutter-4 # Some of the gnome-shell GIRs need extra include paths RUN bundle exec thor gir:generate /usr/share/gnome-shell/Gvc-1.0.gir @@ -52,9 +52,9 @@ RUN bundle exec thor gir:generate /usr/share/gnome-shell/Shell-0.1.gir --include RUN bundle exec thor gir:generate /usr/share/gnome-shell/St-1.0.gir --include /usr/lib64/mutter RUN for docset in appindicator301 appstreamglib10 atk10 atspi20 cairo10 \ - cally10 cally3 camel12 champlain012 cheese30 clutter10 clutter3 \ - cluttergdk10 cluttergst30 clutterx1110 clutterx113 cogl10 cogl20 cogl3 \ - coglpango10 coglpango20 coglpango3 css dbusmenu04 ebook12 \ + cally10 cally4 camel12 champlain012 cheese30 clutter10 clutter4 \ + cluttergdk10 cluttergst30 clutterx1110 clutterx114 cogl10 cogl20 cogl4 \ + coglpango10 coglpango20 coglpango4 css dbusmenu04 ebook12 \ ebookcontacts12 edataserver12 edataserverui12 evincedocument30 \ evinceview30 folks06 folksdummy06 folkseds06 folkstelepathy06 gcab10 \ gck1 gcr3 gcrui3 gdata00 gdesktopenums30 gdk20 gdk30 gdkpixbuf20 \ @@ -65,7 +65,7 @@ RUN for docset in appindicator301 appstreamglib10 atk10 atspi20 cairo10 \ gstrtsp10 gstsdp10 gsttag10 gstvideo10 gtk20 gtk30 gtkchamplain012 \ gtkclutter10 gtkosxapplication10 gtksource30 gudev10 gupnp10 \ gupnpdlna20 gupnpdlnagst20 gvc10 gweather30 gxps01 ibus10 javascript \ - javascriptcore40 json10 keybinder30 meta3 nm10 notify07 pango10 \ + javascriptcore40 json10 keybinder30 meta4 nm10 notify07 pango10 \ pangocairo10 pangoft210 pangoxft10 peas10 peasgtk10 polkit10 \ polkitagent10 poppler018 rest07 restextras07 rsvg20 secret1 shell01 \ soup24 soupgnome24 st10 telepathyglib012 tracker20 trackercontrol20 \ diff --git a/assets/javascripts/gnome_news.json b/assets/javascripts/gnome_news.json index 0bb34b2700..ec0fab3f47 100644 --- a/assets/javascripts/gnome_news.json +++ b/assets/javascripts/gnome_news.json @@ -2,7 +2,7 @@ [ "2019-04-06", "Update to upstream DevDocs:\nAdded print & PDF stylesheet.\nPreferences can now be exported and imported.", - "New documentations: Cally 3 (Mutter version), Camel, Clutter 3 (Mutter version), ClutterX11 3 (Mutter version), Cogl 3 (Mutter version), CoglPango 3 (Mutter version), EBook, EBookContacts, EDataServer, EDataServerUI, Folks, FolksDummy, FolksEds, FolksTelepathy, GData, Gee, GstGL, GVC, JavaScriptCore (including JSC-GLib), Mutter, NM 1.0, Shell, St, Tracker 2.0, TrackerControl 2.0, TrackerMiner 2.0\n", + "New documentations: Cally 4 (Mutter version), Camel, Clutter 4 (Mutter version), ClutterX11 4 (Mutter version), Cogl 4 (Mutter version), CoglPango 4 (Mutter version), EBook, EBookContacts, EDataServer, EDataServerUI, Folks, FolksDummy, FolksEds, FolksTelepathy, GData, Gee, GstGL, GVC, JavaScriptCore (including JSC-GLib), Mutter, NM 1.0, Shell, St, Tracker 2.0, TrackerControl 2.0, TrackerMiner 2.0\n", "Removed some documentations that are no longer available:\nClutterGst 1.0, ClutterGst 2.0, GstFFT 1.0, NetworkManager 1.0, NMClient 1.0, Tracker 1.0, TrackerControl 1.0, TrackerMiner 1.0, Vte 2.90, WebKit 1.0, WebKit 3.0" ], [ From d74233f23a05d1519e5b7eeeadbb104ecf9aab82 Mon Sep 17 00:00:00 2001 From: Philip Chimento Date: Wed, 12 Jun 2019 12:11:07 -0700 Subject: [PATCH 06/12] Remove gdm from uninstall list Uninstalling gdm seems to make the build hang indefinitely. Let's not uninstall it. --- Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index aa6eadcb08..4a12338b3e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -100,10 +100,10 @@ RUN dnf remove -y ModemManager-glib NetworkManager{,-wifi} \ fipscheck{,-lib} flac-libs flatpak flex folks{,-devel,-tools} \ fontconfig{,-devel} fontpackages-filesystem fpc-srpm-macros \ freetype{,-devel} fribidi{,-devel} fuse{,-common,-libs} gc gcc{,-c++} \ - gcr{,-devel} gdbm{,-devel} gdk-pixbuf2{,-devel,-modules} gdm \ - geoclue2{,-libs} geocode-glib{,-devel} gettext{,-libs} ghc-srpm-macros \ - giflib git git-core{,-doc} gjs glib-networking glibc-{devel,headers} \ - glx-utils gmp-{c++,devel} gnat-srpm-macros gnome-bluetooth{,-libs} \ + gcr{,-devel} gdbm{,-devel} gdk-pixbuf2{,-devel,-modules} geoclue2{,-libs} \ + geocode-glib{,-devel} gettext{,-libs} ghc-srpm-macros giflib git \ + git-core{,-doc} gjs glib-networking glibc-{devel,headers} glx-utils \ + gmp-{c++,devel} gnat-srpm-macros gnome-bluetooth{,-libs} \ gnome-control-center{,-filesystem} gnome-desktop3 gnome-keyring{,-pam} \ gnome-online-accounts{,-devel} gnome-remote-desktop \ gnome-session{,-wayland-session,-xsession} gnome-settings-daemon \ From d4c956943b803fb5344bf81696ed3544ac852281 Mon Sep 17 00:00:00 2001 From: Andy Holmes Date: Wed, 6 Nov 2019 20:34:57 -0800 Subject: [PATCH 07/12] Dockerfile: fix gobject-introspection build Fix the `-Ddoctool` option, which was changed to be a "feature" option instead of a boolean. https://gitlab.gnome.org/GNOME/gobject-introspection/commit/efbd35d290d35e37994d441c9f2e4c0dffcd9cec --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4a12338b3e..8f9e6a14d8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -32,7 +32,7 @@ ENV PATH /root/.rbenv/shims:/root/.rbenv/bin:/root/.rbenv/plugins/ruby-build/bin RUN git clone https://gitlab.gnome.org/GNOME/gobject-introspection.git --depth=1 /opt/gi WORKDIR /opt/gi -RUN meson _build -Ddoctool=true +RUN meson _build -Ddoctool=enabled RUN ninja -C _build RUN ninja -C _build install ENV G_IR_DOC_TOOL /usr/local/bin/g-ir-doc-tool From 2e913ca067165d4d066fcdc8eda4a446540cd1e9 Mon Sep 17 00:00:00 2001 From: Andy Holmes Date: Thu, 7 Nov 2019 19:56:57 -0800 Subject: [PATCH 08/12] Dockerfile: bump and fedora image to 31 and split into build/run This is a large update which does the following: * update the mutter libs (meta, clutter, cogl, etc) * split the container into build and run time images * update the images and specify Fedora 31 * use fedora-minimal for the run time image * use bundler's deployment option to install gems into /opt/devdocs --- .ruby-version | 2 +- Dockerfile | 167 ++++++-------------------------------------------- Gemfile | 2 +- Gemfile.lock | 4 +- 4 files changed, 24 insertions(+), 151 deletions(-) diff --git a/.ruby-version b/.ruby-version index 914ec96711..57cf282ebb 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.6.0 \ No newline at end of file +2.6.5 diff --git a/Dockerfile b/Dockerfile index 4a12338b3e..a86ac197b6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,14 +1,14 @@ -FROM fedora +FROM fedora:31 AS build +RUN dnf install -y glibc-langpack-en ENV LANG en_US.UTF-8 ENV LANGUAGE en_US.UTF-8 ENV LC_ALL en_US.UTF-8 # Build dependencies and GIR packages -RUN dnf install -y 'dnf-command(builddep)' @development-tools bzip2 gcc-c++ \ - meson nodejs && \ - dnf builddep -y gobject-introspection ruby && \ - dnf install -y NetworkManager-libnm-devel cairo-devel cheese-libs-devel \ +RUN dnf install -y 'dnf-command(builddep)' @development-tools bzip2 gcc-c++ && \ + dnf install -y ruby rubygem-bundler ruby-devel python3-markdown \ + NetworkManager-libnm-devel cairo-devel cheese-libs-devel \ clutter-{gst3,gtk}-devel evince-devel folks-devel geocode-glib-devel \ glib2-devel gnome-online-accounts-devel gnome-shell \ gobject-introspection-devel gom-devel grilo-devel \ @@ -24,37 +24,23 @@ RUN dnf install -y 'dnf-command(builddep)' @development-tools bzip2 gcc-c++ \ dnf clean all && \ rm -rf /var/cache/yum -# Get rbenv and ruby-build in order to install the particular version of Ruby -# that Devdocs needs -RUN git clone git://github.com/sstephenson/rbenv.git /root/.rbenv -RUN git clone git://github.com/sstephenson/ruby-build.git /root/.rbenv/plugins/ruby-build -ENV PATH /root/.rbenv/shims:/root/.rbenv/bin:/root/.rbenv/plugins/ruby-build/bin:$PATH - -RUN git clone https://gitlab.gnome.org/GNOME/gobject-introspection.git --depth=1 /opt/gi -WORKDIR /opt/gi -RUN meson _build -Ddoctool=true -RUN ninja -C _build -RUN ninja -C _build install -ENV G_IR_DOC_TOOL /usr/local/bin/g-ir-doc-tool - COPY lib/docs/scrapers/gnome/girs/GtkosxApplication-1.0.gir /usr/share/gir-1.0/ COPY . /opt/devdocs/ WORKDIR /opt/devdocs -RUN rbenv install -RUN gem install bundler -RUN bundle install +RUN bundle install --deployment + RUN bundle exec thor gir:generate_all /usr/share/gir-1.0 -RUN bundle exec thor gir:generate_all /usr/lib64/mutter-4 +RUN bundle exec thor gir:generate_all /usr/lib64/mutter-5 # Some of the gnome-shell GIRs need extra include paths RUN bundle exec thor gir:generate /usr/share/gnome-shell/Gvc-1.0.gir -RUN bundle exec thor gir:generate /usr/share/gnome-shell/Shell-0.1.gir --include /usr/lib64/mutter -RUN bundle exec thor gir:generate /usr/share/gnome-shell/St-1.0.gir --include /usr/lib64/mutter +RUN bundle exec thor gir:generate /usr/share/gnome-shell/Shell-0.1.gir --include /usr/lib64/mutter-5 +RUN bundle exec thor gir:generate /usr/share/gnome-shell/St-1.0.gir --include /usr/lib64/mutter-5 RUN for docset in appindicator301 appstreamglib10 atk10 atspi20 cairo10 \ - cally10 cally4 camel12 champlain012 cheese30 clutter10 clutter4 \ - cluttergdk10 cluttergst30 clutterx1110 clutterx114 cogl10 cogl20 cogl4 \ - coglpango10 coglpango20 coglpango4 css dbusmenu04 ebook12 \ + cally10 cally5 camel12 champlain012 cheese30 clutter10 clutter5 \ + cluttergdk10 cluttergst30 clutterx1110 clutterx115 cogl10 cogl20 cogl5 \ + coglpango10 coglpango20 coglpango5 css dbusmenu04 ebook12 \ ebookcontacts12 edataserver12 edataserverui12 evincedocument30 \ evinceview30 folks06 folksdummy06 folkseds06 folkstelepathy06 gcab10 \ gck1 gcr3 gcrui3 gdata00 gdesktopenums30 gdk20 gdk30 gdkpixbuf20 \ @@ -65,7 +51,7 @@ RUN for docset in appindicator301 appstreamglib10 atk10 atspi20 cairo10 \ gstrtsp10 gstsdp10 gsttag10 gstvideo10 gtk20 gtk30 gtkchamplain012 \ gtkclutter10 gtkosxapplication10 gtksource30 gudev10 gupnp10 \ gupnpdlna20 gupnpdlnagst20 gvc10 gweather30 gxps01 ibus10 javascript \ - javascriptcore40 json10 keybinder30 meta4 nm10 notify07 pango10 \ + javascriptcore40 json10 keybinder30 meta5 nm10 notify07 pango10 \ pangocairo10 pangoft210 pangoxft10 peas10 peasgtk10 polkit10 \ polkitagent10 poppler018 rest07 restextras07 rsvg20 secret1 shell01 \ soup24 soupgnome24 st10 telepathyglib012 tracker20 trackercontrol20 \ @@ -77,126 +63,13 @@ RUN for docset in appindicator301 appstreamglib10 atk10 atspi20 cairo10 \ # dbus10, dbusglib10, fontconfig20, freetype220, gdkpixdata20, gl10, libxml220, # win3210, xfixes40, xft20, xlib20, xrandr13 -# Clean up Docker image to make it smaller -RUN dnf remove -y ModemManager-glib NetworkManager{,-wifi} \ - NetworkManager-libnm{,-devel} abattis-cantarell-fonts \ - accountsservice{,-libs} adobe-mappings-cmap{,-deprecated} \ - adobe-mappings-pdf adwaita-{cursor,gtk2,icon}-theme alsa-lib annobin apr \ - apr-util{,-bdb,-openssl} at-spi2-atk{,-devel} at-spi2-core{,-devel} \ - atk{,-devel} autoconf automake avahi-{glib,libs} binutils bison bluez \ - bolt boost-{atomic,chrono,date-time,regex,system,thread} bubblewrap \ - bzip2{,-devel} cairo{,-devel} cairo-gobject{,-devel} cdparanoia-libs \ - check{,-devel} checksec cheese-libs{,-devel} chrpath clutter{,-devel} \ - clutter-gst3{,-devel} clutter-gtk{,-devel} \ - cmake{,-data,-filesystem,-rpm-macros} cogl{,-devel} color-filesystem \ - colord{,-gtk,-libs} compat-openssl10 cpp ctags cups-libs cups-pk-helper \ - dbus-{devel,x11} dbus-glib{,-devel} dconf dejavu-fonts-common \ - dejavu-sans-fonts desktop-file-utils diffstat djvulibre-libs \ - dnf-plugins-core docbook-{dtds,utils} docbook-style-{dsssl,xsl} \ - dosfstools doxygen dwz dyninst e2fsprogs{,-libs} efi-srpm-macros \ - efivar-libs elinks emacs-filesystem enca enchant{,2,2-devel} \ - evince-{devel,djvu,libs} evolution-data-server{,-devel,-langpacks} \ - exempi exiv2{,-libs} expat-devel fedora-logos file findutils \ - fipscheck{,-lib} flac-libs flatpak flex folks{,-devel,-tools} \ - fontconfig{,-devel} fontpackages-filesystem fpc-srpm-macros \ - freetype{,-devel} fribidi{,-devel} fuse{,-common,-libs} gc gcc{,-c++} \ - gcr{,-devel} gdbm{,-devel} gdk-pixbuf2{,-devel,-modules} geoclue2{,-libs} \ - geocode-glib{,-devel} gettext{,-libs} ghc-srpm-macros giflib git \ - git-core{,-doc} gjs glib-networking glibc-{devel,headers} glx-utils \ - gmp-{c++,devel} gnat-srpm-macros gnome-bluetooth{,-libs} \ - gnome-control-center{,-filesystem} gnome-desktop3 gnome-keyring{,-pam} \ - gnome-online-accounts{,-devel} gnome-remote-desktop \ - gnome-session{,-wayland-session,-xsession} gnome-settings-daemon \ - gnome-shell gnome-themes-extra gnutls-{c++,dane,devel} go-srpm-macros \ - gobject-introspection-devel gom{,-devel} \ - google-{droid-sans,noto-emoji-color}-fonts gpm-libs graphite2{,-devel} \ - grilo{,-devel} groff-base gsettings-desktop-schemas{,-devel} gsm \ - gsound{,-devel} gspell{,-devel} gssdp{,-devel} gstreamer1{,-devel} \ - gstreamer1-plugins-base{,-devel} gtk-doc gtk-update-icon-cache \ - gtk2{,-devel} gtk3{,-devel} gtksourceview3{,-devel} guile \ - gupnp{,-av,-devel} gupnp-dlna{,-devel} harfbuzz{,-devel,-icu} \ - hicolor-icon-theme hunspell{,-en,-en-GB,-en-US} hwdata hyphen \ - ibus{,-devel,-gtk2,-gtk3,-libs,-setup} iio-sensor-proxy isl iso-codes \ - jansson jasper-libs jbig2dec-libs jbigkit-libs json-glib{,-devel} \ - jsoncpp kbd{,-legacy,-misc} kernel{,-debug}-devel kernel-headers \ - keybinder3{,-devel} keyutils-libs-devel krb5-devel lcms2 less libICE libSM \ - libX11{,-common,-devel,-xcb} libXau{,-devel} libXcomposite{,-devel} \ - libXcursor{,-devel} libXdamage{,-devel} libXdmcp libXext{,-devel} \ - libXfixes{,-devel} libXfont2 libXft{,-devel} libXi{,-devel} \ - libXinerama{,-devel} libXmu libXrandr{,-devel} libXrender{,-devel} libXt \ - libXtst libXv libXxf86misc libXxf86vm{,-devel} \ - libappindicator-gtk3{,-devel} libappstream-glib{,-devel} \ - libarchive-devel libasyncns libatasmart libatomic_ops \ - libcanberra{,-devel,-gtk2,-gtk3} libchamplain{,-devel,-gtk} \ - libcom_err-devel libcroco libcue libcurl-devel libdatrie \ - libdbusmenu{,-devel,-gtk3} libdrm{,-devel} libdwarf libedit \ - libepoxy{,-devel} libevdev libexif libfontenc libgcab1{,-devel} \ - libgdata{,-devel} libgee{,-devel} libgexiv2 \ - libglvnd{,-core-devel,-devel,-egl,-gles,-glx,-opengl} libgnomekbd \ - libgomp libgrss libgs libgsf libgtop2 libgudev-devel libgusb \ - libgweather{,-devel} libgxps{,-devel} libical{,-devel} libicu-devel libidn \ - libijs libindicator-gtk3 libinput{,-devel} libiptcdata libjpeg-turbo \ - libkadm5 libldb libmcpp libmediaart libmodman libmpc libndp libnl3 libnma \ - libnotify{,-devel} liboauth{,-devel} libogg libosinfo libpaper \ - libpciaccess libpeas{,-devel,-gtk} libpng{,-devel} libproxy \ - libquvi{,-scripts} librsvg2{,-devel} libsecret{,-devel} libserf \ - libsmbclient libsndfile libsoup{,-devel} libspectre libss libstdc++-devel \ - libstemmer libtalloc libtasn1-{devel,tools} libtdb libtevent libthai \ - libtheora libtiff{,-devel} libtomcrypt libtommath libtool{,-ltdl} \ - libunwind libverto-devel libvisual libvncserver libvorbis libwacom{,-data} \ - libwayland-{client,cursor,egl,server} libwbclient libwebp libxcb{,-devel} \ - libxcrypt-devel libxkbcommon{,-devel,-x11} libxkbfile libxklavier \ - libxml2-devel libxshmfence libxslt libyaml-devel libzapojit{,-devel} \ - llvm-libs lmdb-libs lua{,-expat,-json,-lpeg,-socket} lzo-minilzo m4 make \ - mcpp mdadm mesa-{dri-drivers,filesystem,khr-devel,libglapi} \ - mesa-libEGL{,-devel} mesa-libGL{,-devel} mesa-libgbm{,-devel} meson \ - mobile-broadband-provider-info mokutil mozilla-filesystem mozjs{52,60} \ - mtdev mtools multilib-rpm-config mutter ncurses-{c++-libs,devel} \ - nettle-devel nim-srpm-macros ninja-build nm-connection-editor npm \ - nspr{,-devel} nss{,-devel} nss-softokn{,-devel} \ - nss-softokn-freebl{,-devel} nss-sysinit nss-util{,-devel} \ - ntfs-3g{,-system-compression} ntfsprogs ocaml-srpm-macros \ - openblas-srpm-macros openjade openjpeg2 opensp openssh{,-clients} opus \ - orc{,-compiler,-devel} osinfo-db{,-tools} ostree-libs \ - p11-kit-{devel,server} pango{,-devel} parted patch patchutils \ - perl-{Carp,Data-Dumper,Digest,Digest-MD5,Encode,Errno,Error,Exporter} \ - perl-File-{Path,Temp} \ - perl-{Getopt-Long,Git,HTTP-Tiny,IO,MIME-Base64,Mozilla-CA,Net-SSLeay,PathTools} \ - perl-IO-Socket-{IP,SSL} perl-Pod-{Escapes,Perldoc,Simple,Usage} \ - perl-{SGMLSpm,Scalar-List-Utils,Socket,Storable,Thread-Queue,Time-Local,URI} \ - perl-Term{-ANSIColor,-Cap,ReadKey} perl-Text-{ParseWords,Tabs+Wrap} \ - perl-{Unicode-Normalize,constant,interpreter,libnet,libs,parent,podlators} \ - perl-{,srpm-}macros perl-threads{,-shared} pinentry{,-gtk} \ - pipewire{,-libs} pixman{,-devel} polkit{,-devel,-docs,-libs,-pkla-compat} \ - poppler{,-data,-devel} poppler-glib{,-devel} procps-ng \ - pulseaudio{,-module-bluetooth} pulseaudio-libs{,-glib2} \ - pygobject2{,-codegen,-devel,-doc} pygtk2{,-codegen,-devel,-doc} \ - python-{,s}rpm-macros python-unversioned-command \ - python2{,-devel,-libs,-pip,-rpm-macros,-setuptools,-xpyb} \ - python2-cairo{,-devel} python3-gobject{,-base} \ - python3-{asn1crypto,beaker,cairo,cffi,crypto,cryptography,dateutil,devel} \ - python3-{distro,dnf-plugins-core,idna,mako,markdown,markupsafe,paste,ply} \ - python3-{pyOpenSSL,pycparser,pyparsing,rpm-generators,rpm-macros,tempita} \ - qt5-srpm-macros readline-devel redhat-rpm-config rest{,-devel} rhash \ - rtkit rust-srpm-macros rygel samba-client-libs samba-common{,-libs} sbc \ - sg3_utils-libs sgml-common shared-mime-info smp_utils{,-libs} \ - sound-theme-freedesktop source-highlight soxr speexdsp sqlite{,-devel} \ - startup-notification subunit{,-devel} subversion switcheroo-control \ - systemd-{bootchart,devel} systemtap{,-client,-devel,-runtime,-sdt-devel} \ - taglib telepathy-filesystem telepathy-glib{,-devel,-vala} texlive-lib \ - totem-pl-parser tracker{,-devel,-miners} trousers{,-lib} udisks{,-devel} \ - unzip \ - urw-base35-{bookman,c059,d050000l,gothic,p052,standard-symbols-ps,z003}-fonts \ - urw-base35-fonts{,-common} urw-base35-nimbus-{mono-ps,roman,sans}-fonts \ - utf8proc vala vim-filesystem vino vte{,-devel,-profile} vte291{,-devel} \ - wayland-{,protocols-}devel webkit2gtk3{,-devel,-plugin-process-gtk2} \ - webkit2gtk3-jsc{,-devel} webrtc-audio-processing which woff2 \ - wpa_supplicant xapian-core-libs xcb-util xdg-dbus-proxy \ - xdg-desktop-portal{,-gtk} xfsprogs xkeyboard-config xml-common \ - xorg-x11-{drv-libinput,font-utils,proto-devel,xauth,xinit,xkb-utils} \ - xorg-x11-server-{Xorg,Xwayland,common,utils} xz-devel zenity zip && \ - dnf clean all && \ +FROM fedora-minimal:31 +COPY --from=build /opt/devdocs /opt/devdocs +RUN microdnf install -y ruby rubygem-bundler nodejs && \ + microdnf clean all && \ rm -rf /var/cache/yum +WORKDIR /opt/devdocs + EXPOSE 9292 CMD bundle exec rackup -o 0.0.0.0 diff --git a/Gemfile b/Gemfile index 93c3d495bf..dda3695f5a 100644 --- a/Gemfile +++ b/Gemfile @@ -1,5 +1,5 @@ source 'https://rubygems.org' -ruby '2.6.0' +ruby '2.6.5' gem 'rake' gem 'thor' diff --git a/Gemfile.lock b/Gemfile.lock index 3e44cd238a..72c3b5bbaa 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -53,7 +53,7 @@ GEM net-ssh (>= 5.0.0, < 6.0.0) net-ssh (5.1.0) newrelic_rpm (5.7.0.350) - nokogiri (1.10.1) + nokogiri (1.10.4) mini_portile2 (~> 2.4.0) options (2.3.2) progress (3.5.0) @@ -164,7 +164,7 @@ DEPENDENCIES yajl-ruby RUBY VERSION - ruby 2.6.0p0 + ruby 2.6.5 BUNDLED WITH 1.17.2 From ac8c81096f02620a0a8785b401c201b27165f309 Mon Sep 17 00:00:00 2001 From: Philip Chimento Date: Sun, 10 Nov 2019 22:33:31 -0800 Subject: [PATCH 09/12] Remove css and javascript from Dockerfile We don't want to scrape these ourselves (and also it stopped working anyway for some reason); we'll download the pre-scraped docsets for these from devdocs. --- Dockerfile | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/Dockerfile b/Dockerfile index a86ac197b6..98049ae9a7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -40,23 +40,22 @@ RUN bundle exec thor gir:generate /usr/share/gnome-shell/St-1.0.gir --include /u RUN for docset in appindicator301 appstreamglib10 atk10 atspi20 cairo10 \ cally10 cally5 camel12 champlain012 cheese30 clutter10 clutter5 \ cluttergdk10 cluttergst30 clutterx1110 clutterx115 cogl10 cogl20 cogl5 \ - coglpango10 coglpango20 coglpango5 css dbusmenu04 ebook12 \ - ebookcontacts12 edataserver12 edataserverui12 evincedocument30 \ - evinceview30 folks06 folksdummy06 folkseds06 folkstelepathy06 gcab10 \ - gck1 gcr3 gcrui3 gdata00 gdesktopenums30 gdk20 gdk30 gdkpixbuf20 \ - gdkx1120 gdkx1130 gee08 geocodeglib10 gio20 girepository20 glib20 \ - gmodule20 goa10 gobject20 gom10 grl03 grlnet03 grlpls03 gsound10 \ - gspell1 gssdp10 gst10 gstallocators10 gstapp10 gstaudio10 gstbase10 \ - gstcheck10 gstcontroller10 gstgl10 gstnet10 gstpbutils10 gstrtp10 \ - gstrtsp10 gstsdp10 gsttag10 gstvideo10 gtk20 gtk30 gtkchamplain012 \ - gtkclutter10 gtkosxapplication10 gtksource30 gudev10 gupnp10 \ - gupnpdlna20 gupnpdlnagst20 gvc10 gweather30 gxps01 ibus10 javascript \ - javascriptcore40 json10 keybinder30 meta5 nm10 notify07 pango10 \ - pangocairo10 pangoft210 pangoxft10 peas10 peasgtk10 polkit10 \ - polkitagent10 poppler018 rest07 restextras07 rsvg20 secret1 shell01 \ - soup24 soupgnome24 st10 telepathyglib012 tracker20 trackercontrol20 \ - trackerminer20 upowerglib10 vte00 vte291 webkit240 \ - webkit2webextension40 zpj00; \ + coglpango10 coglpango20 coglpango5 dbusmenu04 ebook12 ebookcontacts12 \ + edataserver12 edataserverui12 evincedocument30 evinceview30 folks06 \ + folksdummy06 folkseds06 folkstelepathy06 gcab10 gck1 gcr3 gcrui3 \ + gdata00 gdesktopenums30 gdk20 gdk30 gdkpixbuf20 gdkx1120 gdkx1130 \ + gee08 geocodeglib10 gio20 girepository20 glib20 gmodule20 goa10 \ + gobject20 gom10 grl03 grlnet03 grlpls03 gsound10 gspell1 gssdp10 gst10 \ + gstallocators10 gstapp10 gstaudio10 gstbase10 gstcheck10 \ + gstcontroller10 gstgl10 gstnet10 gstpbutils10 gstrtp10 gstrtsp10 \ + gstsdp10 gsttag10 gstvideo10 gtk20 gtk30 gtkchamplain012 gtkclutter10 \ + gtkosxapplication10 gtksource30 gudev10 gupnp10 gupnpdlna20 \ + gupnpdlnagst20 gvc10 gweather30 gxps01 ibus10 javascriptcore40 json10 \ + keybinder30 meta5 nm10 notify07 pango10 pangocairo10 pangoft210 \ + pangoxft10 peas10 peasgtk10 polkit10 polkitagent10 poppler018 rest07 \ + restextras07 rsvg20 secret1 shell01 soup24 soupgnome24 st10 \ + telepathyglib012 tracker20 trackercontrol20 trackerminer20 \ + upowerglib10 vte00 vte291 webkit240 webkit2webextension40 zpj00; \ do echo $docset; bundle exec thor docs:generate $docset --force; done # Intentionally omitted: From bc2ffafc1585aca4da89c879a664423e06d3cfc6 Mon Sep 17 00:00:00 2001 From: Philip Chimento Date: Sun, 10 Nov 2019 22:34:25 -0800 Subject: [PATCH 10/12] Change runtime base image to ruby-alpine This should be even smaller than fedora-minimal, and also corresponds to what devdocs already has in its Dockerfile-alpine. We change the Ruby version to 2.6.5 to match what we build with in the Fedora 31 image, and change the download step to download only the css and javascript docsets. --- Dockerfile | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 98049ae9a7..79d34556dc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -62,13 +62,28 @@ RUN for docset in appindicator301 appstreamglib10 atk10 atspi20 cairo10 \ # dbus10, dbusglib10, fontconfig20, freetype220, gdkpixdata20, gl10, libxml220, # win3210, xfixes40, xft20, xlib20, xrandr13 -FROM fedora-minimal:31 -COPY --from=build /opt/devdocs /opt/devdocs -RUN microdnf install -y ruby rubygem-bundler nodejs && \ - microdnf clean all && \ - rm -rf /var/cache/yum +# Keep this part in sync with Dockerfile-alpine +# Changes: +# - Ruby 2.6.0 -> 2.6.5 +# - Copy from the build-stage image instead of the current dir +# - Download only the css and javascript docsets instead of everything -WORKDIR /opt/devdocs +FROM ruby:2.6.5-alpine + +ENV LANG=C.UTF-8 + +WORKDIR /devdocs + +COPY --from=build /opt/devdocs /devdocs + +RUN apk --update add nodejs build-base libstdc++ gzip git zlib-dev && \ + gem install bundler && \ + bundle install --system --without test && \ + thor docs:download css javascript && \ + thor assets:compile && \ + apk del gzip build-base git zlib-dev && \ + rm -rf /var/cache/apk/* /tmp ~/.gem /root/.bundle/cache \ + /usr/local/bundle/cache /usr/lib/node_modules EXPOSE 9292 -CMD bundle exec rackup -o 0.0.0.0 +CMD rackup -o 0.0.0.0 From 2d79fc41bb31a399deda2489c402224df1495ca5 Mon Sep 17 00:00:00 2001 From: Andy Holmes Date: Mon, 11 Nov 2019 00:02:36 -0800 Subject: [PATCH 11/12] Add mutter-3 and mutter-4 libs for older GNOME Shell compatibility These are older mutter GIRs we can't install with dnf --- Dockerfile | 10 +- .../scrapers/gnome/girs/mutter-3/Cally-3.gir | 688 + .../gnome/girs/mutter-3/Clutter-3.gir | 74885 ++++++++++++ .../gnome/girs/mutter-3/ClutterX11-3.gir | 849 + .../scrapers/gnome/girs/mutter-3/Cogl-3.gir | 8540 ++ .../gnome/girs/mutter-3/CoglPango-3.gir | 333 + .../scrapers/gnome/girs/mutter-3/Meta-3.gir | 10945 ++ .../scrapers/gnome/girs/mutter-4/Cally-4.gir | 930 + .../gnome/girs/mutter-4/Clutter-4.gir | 94560 ++++++++++++++++ .../gnome/girs/mutter-4/ClutterX11-4.gir | 621 + .../scrapers/gnome/girs/mutter-4/Cogl-4.gir | 19254 ++++ .../gnome/girs/mutter-4/CoglPango-4.gir | 444 + .../scrapers/gnome/girs/mutter-4/Meta-4.gir | 13992 +++ 13 files changed, 226050 insertions(+), 1 deletion(-) create mode 100644 lib/docs/scrapers/gnome/girs/mutter-3/Cally-3.gir create mode 100644 lib/docs/scrapers/gnome/girs/mutter-3/Clutter-3.gir create mode 100644 lib/docs/scrapers/gnome/girs/mutter-3/ClutterX11-3.gir create mode 100644 lib/docs/scrapers/gnome/girs/mutter-3/Cogl-3.gir create mode 100644 lib/docs/scrapers/gnome/girs/mutter-3/CoglPango-3.gir create mode 100644 lib/docs/scrapers/gnome/girs/mutter-3/Meta-3.gir create mode 100644 lib/docs/scrapers/gnome/girs/mutter-4/Cally-4.gir create mode 100644 lib/docs/scrapers/gnome/girs/mutter-4/Clutter-4.gir create mode 100644 lib/docs/scrapers/gnome/girs/mutter-4/ClutterX11-4.gir create mode 100644 lib/docs/scrapers/gnome/girs/mutter-4/Cogl-4.gir create mode 100644 lib/docs/scrapers/gnome/girs/mutter-4/CoglPango-4.gir create mode 100644 lib/docs/scrapers/gnome/girs/mutter-4/Meta-4.gir diff --git a/Dockerfile b/Dockerfile index 79d34556dc..ec36ad69eb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,12 +24,18 @@ RUN dnf install -y 'dnf-command(builddep)' @development-tools bzip2 gcc-c++ && \ dnf clean all && \ rm -rf /var/cache/yum +# These are extra GIRs we can't install with dnf COPY lib/docs/scrapers/gnome/girs/GtkosxApplication-1.0.gir /usr/share/gir-1.0/ +COPY lib/docs/scrapers/gnome/girs/mutter-3 /usr/lib64/mutter-3 +COPY lib/docs/scrapers/gnome/girs/mutter-4 /usr/lib64/mutter-4 + COPY . /opt/devdocs/ WORKDIR /opt/devdocs RUN bundle install --deployment RUN bundle exec thor gir:generate_all /usr/share/gir-1.0 +RUN bundle exec thor gir:generate_all /usr/lib64/mutter-3 +RUN bundle exec thor gir:generate_all /usr/lib64/mutter-4 RUN bundle exec thor gir:generate_all /usr/lib64/mutter-5 # Some of the gnome-shell GIRs need extra include paths @@ -55,7 +61,9 @@ RUN for docset in appindicator301 appstreamglib10 atk10 atspi20 cairo10 \ pangoxft10 peas10 peasgtk10 polkit10 polkitagent10 poppler018 rest07 \ restextras07 rsvg20 secret1 shell01 soup24 soupgnome24 st10 \ telepathyglib012 tracker20 trackercontrol20 trackerminer20 \ - upowerglib10 vte00 vte291 webkit240 webkit2webextension40 zpj00; \ + upowerglib10 vte00 vte291 webkit240 webkit2webextension40 zpj00 \ + cally3 clutter3 clutterx113 cogl3 coglpango3 meta3 \ + cally4 clutter4 clutterx114 cogl4 coglpango4 meta4; \ do echo $docset; bundle exec thor docs:generate $docset --force; done # Intentionally omitted: diff --git a/lib/docs/scrapers/gnome/girs/mutter-3/Cally-3.gir b/lib/docs/scrapers/gnome/girs/mutter-3/Cally-3.gir new file mode 100644 index 0000000000..d1014fa58d --- /dev/null +++ b/lib/docs/scrapers/gnome/girs/mutter-3/Cally-3.gir @@ -0,0 +1,688 @@ + + + + + + + + + Action function, to be used on #AtkAction implementations as +an individual action. Unlike #CallyActionFunc, this function +uses the @user_data argument passed to cally_actor_add_action_full(). + + + + + + a #CallyActor + + + + user data passed to the function + + + + + + Action function, to be used on #AtkAction implementations as a individual +action + + + + + + a #CallyActor + + + + + + The <structname>CallyActor</structname> structure contains only private +data and should be accessed using the provided API + + + + Creates a new #CallyActor for the given @actor + + the newly created #AtkObject + + + + + a #ClutterActor + + + + + + Adds a new action to be accessed with the #AtkAction interface. + + added action id, or -1 if failure + + + + + a #CallyActor + + + + the action name + + + + the action description + + + + the action keybinding + + + + the callback of the action, to be executed with do_action + + + + + + Adds a new action to be accessed with the #AtkAction interface. + + added action id, or -1 if failure + + + + + a #CallyActor + + + + the action name + + + + the action description + + + + the action keybinding + + + + the callback of the action + + + + data to be passed to @callback + + + + function to be called when removing the action + + + + + + Removes a action, using the @action_id returned by cally_actor_add_action() + + %TRUE if the operation was succesful, %FALSE otherwise + + + + + a #CallyActor + + + + the action id + + + + + + Removes an action, using the @action_name used when the action was added +with cally_actor_add_action() + + %TRUE if the operation was succesful, %FALSE otherwise + + + + + a #CallyActor + + + + the name of the action to remove + + + + + + + + + + + + + The <structname>CallyActorClass</structname> structure contains +only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The <structname>CallyClone</structname> structure contains only private +data and should be accessed using the provided API + + + + Creates a new #CallyClone for the given @actor. @actor must be a +#ClutterClone. + + the newly created #AtkObject + + + + + a #ClutterActor + + + + + + + + + + + + + The <structname>CallyCloneClass</structname> structure contains only +private data + + + + + + + + + + + + + The <structname>CallyGroup</structname> structure contains only +private data and should be accessed using the provided API + + + + Creates a #CallyGroup for @actor + + the newly created #CallyGroup + + + + + a #ClutterGroup + + + + + + + + + + + + + The <structname>CallyGroupClass</structname> structure contains only +private data + + + + + + + + + + + + + The <structname>CallyRectangle</structname> structure contains only private +data and should be accessed using the provided API + + + + Creates a new #CallyRectangle for the given @actor. @actor must be +a #ClutterRectangle. + + the newly created #AtkObject + + + + + a #ClutterActor + + + + + + + + + + + + + The <structname>CallyRectangleClass</structname> structure contains +only private data + + + + + + + + + + + + + The <structname>CallyRoot</structname> structure contains only private +data and should be accessed using the provided API + + Creates a new #CallyRoot object. + + the newly created #AtkObject + + + + + + + + + + + + The <structname>CallyRootClass</structname> structure contains only +private data + + + + + + + + + + + + + The <structname>CallyStage</structname> structure contains only +private data and should be accessed using the provided API + + + + + Creates a new #CallyStage for the given @actor. @actor should be a +#ClutterStage. + + the newly created #AtkObject + + + + + a #ClutterActor + + + + + + + + + + + + + The <structname>CallyStageClass</structname> structure contains only +private data + + + + + + + + + + + + + The <structname>CallyText</structname> structure contains only private +data and should be accessed using the provided API + + + + + + Creates a new #CallyText for the given @actor. @actor must be a +#ClutterText. + + the newly created #AtkObject + + + + + a #ClutterActor + + + + + + + + + + + + + The <structname>CallyTextClass</structname> structure contains only +private data + + + + + + + + + + + + + The <structname>CallyTexture</structname> structure contains only +private data and should be accessed using the provided API + + + + Creates a new #CallyTexture for the given @actor. @actor must be +a #ClutterTexture. + + the newly created #AtkObject + + + + + a #ClutterActor + + + + + + + + + + + + + The <structname>CallyTextureClass</structname> structure contains +only private data + + + + + + + + + + + + + The <structname>CallyUtil</structname> structure contains only +private data and should be accessed using the provided API + + + + + + + + + The <structname>CallyUtilClass</structname> structure contains only +private data + + + + + + + + + + + + + Initializes the accessibility support. + + %TRUE if accessibility support has been correctly +initialized. + + + + + Returns if the accessibility support using cally is enabled. + + %TRUE if accessibility support has been correctly +initialized. + + + + + diff --git a/lib/docs/scrapers/gnome/girs/mutter-3/Clutter-3.gir b/lib/docs/scrapers/gnome/girs/mutter-3/Clutter-3.gir new file mode 100644 index 0000000000..4a9338955f --- /dev/null +++ b/lib/docs/scrapers/gnome/girs/mutter-3/Clutter-3.gir @@ -0,0 +1,74885 @@ + + + + + + + + + + + + + + + A type representing a 4x4 matrix. + +It is identicaly to #CoglMatrix. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterAction structure contains only private data and +should be accessed using the provided API. + + + + + + The ClutterActionClass structure contains only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Base class for actors. + + + + + + Creates a new #ClutterActor. + +A newly created actor has a floating reference, which will be sunk +when it is added to another actor. + + the newly created #ClutterActor + + + + + Assigns the size of a #ClutterActor from the given @box. + +This function should only be called on the children of an actor when +overriding the #ClutterActorClass.allocate() virtual function. + +This function will adjust the stored allocation to take into account +the alignment flags set in the #ClutterActor:x-align and +#ClutterActor:y-align properties, as well as the margin values set in +the #ClutterActor:margin-top, #ClutterActor:margin-right, +#ClutterActor:margin-bottom, and #ClutterActor:margin-left properties. + +This function will respect the easing state of the #ClutterActor and +interpolate between the current allocation and the new one if the +easing state duration is a positive value. + +Actors can know from their allocation box whether they have moved +with respect to their parent actor. The @flags parameter describes +additional information about the allocation, for instance whether +the parent has moved with respect to the stage, for example because +a grandparent's origin has moved. + + + + + + A #ClutterActor + + + + new allocation of the actor, in parent-relative coordinates + + + + flags that control the allocation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Destroys an actor. When an actor is destroyed, it will break any +references it holds to other objects. If the actor is inside a +container, the actor will be removed. + +When you destroy a container, its children will be destroyed as well. + +Note: you cannot destroy the #ClutterStage returned by +clutter_stage_get_default(). + + + + + + a #ClutterActor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns the accessible object that describes the actor to an +assistive technology. + +If no class-specific #AtkObject implementation is available for the +actor instance in question, it will inherit an #AtkObject +implementation from the first ancestor class for which such an +implementation is defined. + +The documentation of the <ulink +url="http://developer.gnome.org/doc/API/2.0/atk/index.html">ATK</ulink> +library contains more information about accessible objects and +their uses. + + the #AtkObject associated with @actor + + + + + a #ClutterActor + + + + + + + + + + + + + + + + + + + Computes the requested minimum and natural heights for an actor, +or if they are already computed, returns the cached values. + +An actor may not get its request - depending on the layout +manager that's in effect. + +A request should not incorporate the actor's scale or anchor point; +those transformations do not affect layout, only rendering. + + + + + + A #ClutterActor + + + + available width to assume in computing desired height, + or a negative value to indicate that no width is defined + + + + return location for minimum height, + or %NULL + + + + return location for natural + height, or %NULL + + + + + + Computes the requested minimum and natural widths for an actor, +optionally depending on the specified height, or if they are +already computed, returns the cached values. + +An actor may not get its request - depending on the layout +manager that's in effect. + +A request should not incorporate the actor's scale or anchor point; +those transformations do not affect layout, only rendering. + + + + + + A #ClutterActor + + + + available height when computing the preferred width, + or a negative value to indicate that no height is defined + + + + return location for minimum width, + or %NULL + + + + return location for the natural + width, or %NULL + + + + + + Asks the actor's implementation whether it may contain overlapping +primitives. + +For example; Clutter may use this to determine whether the painting +should be redirected to an offscreen buffer to correctly implement +the opacity property. + +Custom actors can override the default response by implementing the +#ClutterActorClass.has_overlaps() virtual function. See +clutter_actor_set_offscreen_redirect() for more information. + + %TRUE if the actor may have overlapping primitives, and + %FALSE otherwise + + + + + A #ClutterActor + + + + + + Flags an actor to be hidden. A hidden actor will not be +rendered on the stage. + +Actors are visible by default. + +If this function is called on an actor without a parent, the +#ClutterActor:show-on-set-parent property will be set to %FALSE +as a side-effect. + + + + + + A #ClutterActor + + + + + + Calls clutter_actor_hide() on all child actors (if any). + Using clutter_actor_hide() on the actor will + prevent its children from being painted as well. + + + + + + a #ClutterActor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sets the %CLUTTER_ACTOR_MAPPED flag on the actor and possibly maps +and realizes its children if they are visible. Does nothing if the +actor is not visible. + +Calling this function is strongly disencouraged: the default +implementation of #ClutterActorClass.map() will map all the children +of an actor when mapping its parent. + +When overriding map, it is mandatory to chain up to the parent +implementation. + + + + + + A #ClutterActor + + + + + + + + + + + + + + + + + + + Renders the actor to display. + +This function should not be called directly by applications. +Call clutter_actor_queue_redraw() to queue paints, instead. + +This function is context-aware, and will either cause a +regular paint or a pick paint. + +This function will emit the #ClutterActor::paint signal or +the #ClutterActor::pick signal, depending on the context. + +This function does not paint the actor if the actor is set to 0, +unless it is performing a pick paint. + + + + + + A #ClutterActor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Indicates that the actor's size request or other layout-affecting +properties may have changed. This function is used inside #ClutterActor +subclass implementations, not by applications directly. + +Queueing a new layout automatically queues a redraw as well. + + + + + + A #ClutterActor + + + + + + Realization informs the actor that it is attached to a stage. It +can use this to allocate resources if it wanted to delay allocation +until it would be rendered. However it is perfectly acceptable for +an actor to create resources before being realized because Clutter +only ever has a single rendering context so that actor is free to +be moved from one stage to another. + +This function does nothing if the actor is already realized. + +Because a realized actor must have realized parent actors, calling +clutter_actor_realize() will also realize all parents of the actor. + +This function does not realize child actors, except in the special +case that realizing the stage, when the stage is visible, will +suddenly map (and thus realize) the children of the stage. + Actors are automatically realized, and nothing + requires explicit realization. + + + + + + A #ClutterActor + + + + + + + + + + + + + + + + + + + Flags an actor to be displayed. An actor that isn't shown will not +be rendered on the stage. + +Actors are visible by default. + +If this function is called on an actor without a parent, the +#ClutterActor:show-on-set-parent will be set to %TRUE as a side +effect. + + + + + + A #ClutterActor + + + + + + Calls clutter_actor_show() on all children of an actor (if any). + Actors are visible by default + + + + + + a #ClutterActor + + + + + + + + + + + + + + + + + + + Unsets the %CLUTTER_ACTOR_MAPPED flag on the actor and possibly +unmaps its children if they were mapped. + +Calling this function is not encouraged: the default #ClutterActor +implementation of #ClutterActorClass.unmap() will also unmap any +eventual children by default when their parent is unmapped. + +When overriding #ClutterActorClass.unmap(), it is mandatory to +chain up to the parent implementation. + +It is important to note that the implementation of the +#ClutterActorClass.unmap() virtual function may be called after +the #ClutterActorClass.destroy() or the #GObjectClass.dispose() +implementation, but it is guaranteed to be called before the +#GObjectClass.finalize() implementation. + + + + + + A #ClutterActor + + + + + + Unrealization informs the actor that it may be being destroyed or +moved to another stage. The actor may want to destroy any +underlying graphics resources at this point. However it is +perfectly acceptable for it to retain the resources until the actor +is destroyed because Clutter only ever uses a single rendering +context and all of the graphics resources are valid on any stage. + +Because mapped actors must be realized, actors may not be +unrealized if they are mapped. This function hides the actor to be +sure it isn't mapped, an application-visible side effect that you +may not be expecting. + +This function should not be called by application code. + +This function should not really be in the public API, because +there isn't a good reason to call it. ClutterActor will already +unrealize things for you when it's important to do so. + +If you were using clutter_actor_unrealize() in a dispose +implementation, then don't, just chain up to ClutterActor's +dispose. + +If you were using clutter_actor_unrealize() to implement +unrealizing children of your container, then don't, ClutterActor +will already take care of that. + Actors are automatically unrealized, and nothing + requires explicit realization. + + + + + + A #ClutterActor + + + + + + Adds @action to the list of actions applied to @self + +A #ClutterAction can only belong to one actor at a time + +The #ClutterActor will hold a reference on @action until either +clutter_actor_remove_action() or clutter_actor_clear_actions() +is called + + + + + + a #ClutterActor + + + + a #ClutterAction + + + + + + A convenience function for setting the name of a #ClutterAction +while adding it to the list of actions applied to @self + +This function is the logical equivalent of: + +|[<!-- language="C" --> + clutter_actor_meta_set_name (CLUTTER_ACTOR_META (action), name); + clutter_actor_add_action (self, action); +]| + + + + + + a #ClutterActor + + + + the name to set on the action + + + + a #ClutterAction + + + + + + Adds @child to the children of @self. + +This function will acquire a reference on @child that will only +be released when calling clutter_actor_remove_child(). + +This function will take into consideration the #ClutterActor:depth +of @child, and will keep the list of children sorted. + +This function will emit the #ClutterContainer::actor-added signal +on @self. + + + + + + a #ClutterActor + + + + a #ClutterActor + + + + + + Adds @constraint to the list of #ClutterConstraint<!-- -->s applied +to @self + +The #ClutterActor will hold a reference on the @constraint until +either clutter_actor_remove_constraint() or +clutter_actor_clear_constraints() is called. + + + + + + a #ClutterActor + + + + a #ClutterConstraint + + + + + + A convenience function for setting the name of a #ClutterConstraint +while adding it to the list of constraints applied to @self + +This function is the logical equivalent of: + +|[<!-- language="C" --> + clutter_actor_meta_set_name (CLUTTER_ACTOR_META (constraint), name); + clutter_actor_add_constraint (self, constraint); +]| + + + + + + a #ClutterActor + + + + the name to set on the constraint + + + + a #ClutterConstraint + + + + + + Adds @effect to the list of #ClutterEffect<!-- -->s applied to @self + +The #ClutterActor will hold a reference on the @effect until either +clutter_actor_remove_effect() or clutter_actor_clear_effects() is +called. + + + + + + a #ClutterActor + + + + a #ClutterEffect + + + + + + A convenience function for setting the name of a #ClutterEffect +while adding it to the list of effectss applied to @self + +This function is the logical equivalent of: + +|[<!-- language="C" --> + clutter_actor_meta_set_name (CLUTTER_ACTOR_META (effect), name); + clutter_actor_add_effect (self, effect); +]| + + + + + + a #ClutterActor + + + + the name to set on the effect + + + + a #ClutterEffect + + + + + + Adds a @transition to the #ClutterActor's list of animations. + +The @name string is a per-actor unique identifier of the @transition: only +one #ClutterTransition can be associated to the specified @name. + +The @transition will be started once added. + +This function will take a reference on the @transition. + +This function is usually called implicitly when modifying an animatable +property. + + + + + + a #ClutterActor + + + + the name of the transition to add + + + + the #ClutterTransition to add + + + + + + Assigns the size of a #ClutterActor from the given @box. + +This function should only be called on the children of an actor when +overriding the #ClutterActorClass.allocate() virtual function. + +This function will adjust the stored allocation to take into account +the alignment flags set in the #ClutterActor:x-align and +#ClutterActor:y-align properties, as well as the margin values set in +the #ClutterActor:margin-top, #ClutterActor:margin-right, +#ClutterActor:margin-bottom, and #ClutterActor:margin-left properties. + +This function will respect the easing state of the #ClutterActor and +interpolate between the current allocation and the new one if the +easing state duration is a positive value. + +Actors can know from their allocation box whether they have moved +with respect to their parent actor. The @flags parameter describes +additional information about the allocation, for instance whether +the parent has moved with respect to the stage, for example because +a grandparent's origin has moved. + + + + + + A #ClutterActor + + + + new allocation of the actor, in parent-relative coordinates + + + + flags that control the allocation + + + + + + Allocates @self by taking into consideration the available allocation +area; an alignment factor on either axis; and whether the actor should +fill the allocation on either axis. + +The @box should contain the available allocation width and height; +if the x1 and y1 members of #ClutterActorBox are not set to 0, the +allocation will be offset by their value. + +This function takes into consideration the geometry request specified by +the #ClutterActor:request-mode property, and the text direction. + +This function is useful for fluid layout managers using legacy alignment +flags. Newly written layout managers should use the #ClutterActor:x-align +and #ClutterActor:y-align properties, instead, and just call +clutter_actor_allocate() inside their #ClutterActorClass.allocate() +implementation. + + + + + + a #ClutterActor + + + + a #ClutterActorBox, containing the available width and height + + + + the horizontal alignment, between 0 and 1 + + + + the vertical alignment, between 0 and 1 + + + + whether the actor should fill horizontally + + + + whether the actor should fill vertically + + + + allocation flags to be passed to clutter_actor_allocate() + + + + + + Allocates @self taking into account the #ClutterActor's +preferred size, but limiting it to the maximum available width +and height provided. + +This function will do the right thing when dealing with the +actor's request mode. + +The implementation of this function is equivalent to: + +|[<!-- language="C" --> + if (request_mode == CLUTTER_REQUEST_HEIGHT_FOR_WIDTH) + { + clutter_actor_get_preferred_width (self, available_height, + &min_width, + &natural_width); + width = CLAMP (natural_width, min_width, available_width); + + clutter_actor_get_preferred_height (self, width, + &min_height, + &natural_height); + height = CLAMP (natural_height, min_height, available_height); + } + else if (request_mode == CLUTTER_REQUEST_WIDTH_FOR_HEIGHT) + { + clutter_actor_get_preferred_height (self, available_width, + &min_height, + &natural_height); + height = CLAMP (natural_height, min_height, available_height); + + clutter_actor_get_preferred_width (self, height, + &min_width, + &natural_width); + width = CLAMP (natural_width, min_width, available_width); + } + else if (request_mode == CLUTTER_REQUEST_CONTENT_SIZE) + { + clutter_content_get_preferred_size (content, &natural_width, &natural_height); + + width = CLAMP (natural_width, 0, available_width); + height = CLAMP (natural_height, 0, available_height); + } + + box.x1 = x; box.y1 = y; + box.x2 = box.x1 + available_width; + box.y2 = box.y1 + available_height; + clutter_actor_allocate (self, &box, flags); +]| + +This function can be used by fluid layout managers to allocate +an actor's preferred size without making it bigger than the area +available for the container. + + + + + + a #ClutterActor + + + + the actor's X coordinate + + + + the actor's Y coordinate + + + + the maximum available width, or -1 to use the + actor's natural width + + + + the maximum available height, or -1 to use the + actor's natural height + + + + flags controlling the allocation + + + + + + Allocates the natural size of @self. + +This function is a utility call for #ClutterActor implementations +that allocates the actor's preferred natural size. It can be used +by fixed layout managers (like #ClutterGroup or so called +'composite actors') inside the ClutterActor::allocate +implementation to give each child exactly how much space it +requires, regardless of the size of the parent. + +This function is not meant to be used by applications. It is also +not meant to be used outside the implementation of the +#ClutterActorClass.allocate virtual function. + + + + + + a #ClutterActor + + + + flags controlling the allocation + + + + + + Animates the given list of properties of @actor between the current +value for each property and a new final value. The animation has a +definite duration and a speed given by the @mode. + +For example, this: + +|[<!-- language="C" --> + clutter_actor_animate (rectangle, CLUTTER_LINEAR, 250, + "width", 100.0, + "height", 100.0, + NULL); +]| + +will make width and height properties of the #ClutterActor "rectangle" +grow linearly between the current value and 100 pixels, in 250 milliseconds. + +The animation @mode is a logical id, either from the #ClutterAnimationMode +enumeration of from clutter_alpha_register_func(). + +All the properties specified will be animated between the current value +and the final value. If a property should be set at the beginning of +the animation but not updated during the animation, it should be prefixed +by the "fixed::" string, for instance: + +|[<!-- language="C" --> + clutter_actor_animate (actor, CLUTTER_EASE_IN_SINE, 100, + "rotation-angle-z", 360.0, + "fixed::rotation-center-z", &center, + NULL); +]| + +Will animate the "rotation-angle-z" property between the current value +and 360 degrees, and set the "rotation-center-z" property to the fixed +value of the #ClutterVertex "center". + +This function will implicitly create a #ClutterAnimation object which +will be assigned to the @actor and will be returned to the developer +to control the animation or to know when the animation has been +completed. + +If a name argument starts with "signal::", "signal-after::", +"signal-swapped::" or "signal-swapped-after::" the two following arguments +are used as callback function and data for a signal handler installed on +the #ClutterAnimation object for the specified signal name, for instance: + +|[<!-- language="C" --> + static void + on_animation_completed (ClutterAnimation *animation, + ClutterActor *actor) + { + clutter_actor_hide (actor); + } + + clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC, 100, + "opacity", 0, + "signal::completed", on_animation_completed, actor, + NULL); +]| + +or, to automatically destroy an actor at the end of the animation: + +|[<!-- language="C" --> + clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC, 100, + "opacity", 0, + "signal-swapped-after::completed", + clutter_actor_destroy, + actor, + NULL); +]| + +The "signal::" modifier is the equivalent of using g_signal_connect(); +the "signal-after::" modifier is the equivalent of using +g_signal_connect_after() or g_signal_connect_data() with the +%G_CONNECT_AFTER; the "signal-swapped::" modifier is the equivalent +of using g_signal_connect_swapped() or g_signal_connect_data() with the +%G_CONNECT_SWAPPED flah; finally, the "signal-swapped-after::" modifier +is the equivalent of using g_signal_connect_data() with both the +%G_CONNECT_AFTER and %G_CONNECT_SWAPPED flags. The clutter_actor_animate() +function will not keep track of multiple connections to the same signal, +so it is your responsability to avoid them when calling +clutter_actor_animate() multiple times on the same actor. + +Calling this function on an actor that is already being animated +will cause the current animation to change with the new final values, +the new easing mode and the new duration - that is, this code: + +|[<!-- language="C" --> + clutter_actor_animate (actor, CLUTTER_LINEAR, 250, + "width", 100.0, + "height", 100.0, + NULL); + clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC, 500, + "x", 100.0, + "y", 100.0, + "width", 200.0, + NULL); +]| + +is the equivalent of: + +|[<!-- language="C" --> + clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC, 500, + "x", 100.0, + "y", 100.0, + "width", 200.0, + "height", 100.0, + NULL); +]| + +Unless the animation is looping, the #ClutterAnimation created by +clutter_actor_animate() will become invalid as soon as it is +complete. + +Since the created #ClutterAnimation instance attached to @actor +is guaranteed to be valid throughout the #ClutterAnimation::completed +signal emission chain, you will not be able to create a new animation +using clutter_actor_animate() on the same @actor from within the +#ClutterAnimation::completed signal handler unless you use +g_signal_connect_after() to connect the callback function, for instance: + +|[<!-- language="C" --> + static void + on_animation_completed (ClutterAnimation *animation, + ClutterActor *actor) + { + clutter_actor_animate (actor, CLUTTER_EASE_OUT_CUBIC, 250, + "x", 500.0, + "y", 500.0, + NULL); + } + + ... + animation = clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC, 250, + "x", 100.0, + "y", 100.0, + NULL); + g_signal_connect (animation, "completed", + G_CALLBACK (on_animation_completed), + actor); + ... +]| + Use the implicit transition for animatable properties + in #ClutterActor instead. See clutter_actor_save_easing_state(), + clutter_actor_set_easing_mode(), clutter_actor_set_easing_duration(), + clutter_actor_set_easing_delay(), and clutter_actor_restore_easing_state(). + + a #ClutterAnimation object. The object is + owned by the #ClutterActor and should not be unreferenced with + g_object_unref() + + + + + a #ClutterActor + + + + an animation mode logical id + + + + duration of the animation, in milliseconds + + + + the name of a property + + + + a %NULL terminated list of property names and + property values + + + + + + Animates the given list of properties of @actor between the current +value for each property and a new final value. The animation has a +definite behaviour given by the passed @alpha. + +See clutter_actor_animate() for further details. + +This function is useful if you want to use an existing #ClutterAlpha +to animate @actor. + Use the implicit transition for animatable properties + in #ClutterActor instead. See clutter_actor_save_easing_state(), + clutter_actor_set_easing_mode(), clutter_actor_set_easing_duration(), + clutter_actor_set_easing_delay(), and clutter_actor_restore_easing_state(). + + a #ClutterAnimation object. The object is owned by the + #ClutterActor and should not be unreferenced with g_object_unref() + + + + + a #ClutterActor + + + + a #ClutterAlpha + + + + the name of a property + + + + a %NULL terminated list of property names and + property values + + + + + + Animates the given list of properties of @actor between the current +value for each property and a new final value. The animation has a +definite behaviour given by the passed @alpha. + +See clutter_actor_animate() for further details. + +This function is useful if you want to use an existing #ClutterAlpha +to animate @actor. + +This is the vector-based variant of clutter_actor_animate_with_alpha(), +useful for language bindings. + +Unlike clutter_actor_animate_with_alpha(), this function will +not allow you to specify "signal::" names and callbacks. + Use the implicit transition for animatable properties + in #ClutterActor instead. See clutter_actor_save_easing_state(), + clutter_actor_set_easing_mode(), clutter_actor_set_easing_duration(), + clutter_actor_set_easing_delay(), and clutter_actor_restore_easing_state(). + + a #ClutterAnimation object. The object is owned by the + #ClutterActor and should not be unreferenced with g_object_unref() + + + + + a #ClutterActor + + + + a #ClutterAlpha + + + + number of property names and values + + + + a vector + containing the property names to set + + + + + + a vector containing the + property values to set + + + + + + + + Animates the given list of properties of @actor between the current +value for each property and a new final value. The animation has a +definite duration given by @timeline and a speed given by the @mode. + +See clutter_actor_animate() for further details. + +This function is useful if you want to use an existing timeline +to animate @actor. + Use the implicit transition for animatable properties + in #ClutterActor instead. See clutter_actor_save_easing_state(), + clutter_actor_set_easing_mode(), clutter_actor_set_easing_duration(), + clutter_actor_set_easing_delay(), and clutter_actor_restore_easing_state(). + + a #ClutterAnimation object. The object is + owned by the #ClutterActor and should not be unreferenced with + g_object_unref() + + + + + a #ClutterActor + + + + an animation mode logical id + + + + a #ClutterTimeline + + + + the name of a property + + + + a %NULL terminated list of property names and + property values + + + + + + Animates the given list of properties of @actor between the current +value for each property and a new final value. The animation has a +definite duration given by @timeline and a speed given by the @mode. + +See clutter_actor_animate() for further details. + +This function is useful if you want to use an existing timeline +to animate @actor. + +This is the vector-based variant of clutter_actor_animate_with_timeline(), +useful for language bindings. + +Unlike clutter_actor_animate_with_timeline(), this function +will not allow you to specify "signal::" names and callbacks. + Use the implicit transition for animatable properties + in #ClutterActor instead. See clutter_actor_save_easing_state(), + clutter_actor_set_easing_mode(), clutter_actor_set_easing_duration(), + clutter_actor_set_easing_delay(), and clutter_actor_restore_easing_state(). + + a #ClutterAnimation object. The object is + owned by the #ClutterActor and should not be unreferenced with + g_object_unref() + + + + + a #ClutterActor + + + + an animation mode logical id + + + + a #ClutterTimeline + + + + number of property names and values + + + + a vector + containing the property names to set + + + + + + a vector containing the + property values to set + + + + + + + + Animates the given list of properties of @actor between the current +value for each property and a new final value. The animation has a +definite duration and a speed given by the @mode. + +This is the vector-based variant of clutter_actor_animate(), useful +for language bindings. + +Unlike clutter_actor_animate(), this function will not +allow you to specify "signal::" names and callbacks. + Use the implicit transition for animatable properties + in #ClutterActor instead. See clutter_actor_save_easing_state(), + clutter_actor_set_easing_mode(), clutter_actor_set_easing_duration(), + clutter_actor_set_easing_delay(), and clutter_actor_restore_easing_state(). + + a #ClutterAnimation object. The object is + owned by the #ClutterActor and should not be unreferenced with + g_object_unref() + + + + + a #ClutterActor + + + + an animation mode logical id + + + + duration of the animation, in milliseconds + + + + number of property names and values + + + + a vector + containing the property names to set + + + + + + a vector containing the + property values to set + + + + + + + + Transforms @point in coordinates relative to the actor into +ancestor-relative coordinates using the relevant transform +stack (i.e. scale, rotation, etc). + +If @ancestor is %NULL the ancestor will be the #ClutterStage. In +this case, the coordinates returned will be the coordinates on +the stage before the projection is applied. This is different from +the behaviour of clutter_actor_apply_transform_to_point(). + + + + + + A #ClutterActor + + + + A #ClutterActor ancestor, or %NULL to use the + default #ClutterStage + + + + A point as #ClutterVertex + + + + The translated #ClutterVertex + + + + + + Transforms @point in coordinates relative to the actor +into screen-relative coordinates with the current actor +transformation (i.e. scale, rotation, etc) + + + + + + A #ClutterActor + + + + A point as #ClutterVertex + + + + The translated #ClutterVertex + + + + + + Binds a #GListModel to a #ClutterActor. + +If the #ClutterActor was already bound to a #GListModel, the previous +binding is destroyed. + +The existing children of #ClutterActor are destroyed when setting a +model, and new children are created and added, representing the contents +of the @model. The #ClutterActor is updated whenever the @model changes. +If @model is %NULL, the #ClutterActor is left empty. + +When a #ClutterActor is bound to a model, adding and removing children +directly is undefined behaviour. + + + + + + a #ClutterActor + + + + a #GListModel + + + + a function that creates #ClutterActor instances + from the contents of the @model + + + + user data passed to @create_child_func + + + + function called when unsetting the @model + + + + + + Binds a #GListModel to a #ClutterActor. + +Unlike clutter_actor_bind_model(), this function automatically creates +a child #ClutterActor of type @child_type, and binds properties on the +items inside the @model to the corresponding properties on the child, +for instance: + +|[<!-- language="C" --> + clutter_actor_bind_model_with_properties (actor, model, + MY_TYPE_CHILD_VIEW, + "label", "text", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE, + "icon", "image", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE, + "selected", "selected", G_BINDING_BIDIRECTIONAL, + "active", "active", G_BINDING_BIDIRECTIONAL, + NULL); +]| + +is the equivalent of calling clutter_actor_bind_model() with a +#ClutterActorCreateChildFunc of: + +|[<!-- language="C" --> + ClutterActor *res = g_object_new (MY_TYPE_CHILD_VIEW, NULL); + + g_object_bind_property (item, "label", res, "text", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE); + g_object_bind_property (item, "icon", res, "image", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE); + g_object_bind_property (item, "selected", res, "selected", G_BINDING_BIDIRECTIONAL); + g_object_bind_property (item, "active", res, "active", G_BINDING_BIDIRECTIONAL); + + return res; +]| + +If the #ClutterActor was already bound to a #GListModel, the previous +binding is destroyed. + +When a #ClutterActor is bound to a model, adding and removing children +directly is undefined behaviour. + +See also: clutter_actor_bind_model() + + + + + + a #ClutterActor + + + + a #GListModel + + + + the type of #ClutterActor to use when creating + children mapping to items inside the @model + + + + the first property of @model to bind + + + + tuples of property names on the @model, on the child, and the + #GBindingFlags used to bind them, terminated by %NULL + + + + + + Clears the list of actions applied to @self + + + + + + a #ClutterActor + + + + + + Clears the list of constraints applied to @self + + + + + + a #ClutterActor + + + + + + Clears the list of effects applied to @self + + + + + + a #ClutterActor + + + + + + Determines if @descendant is contained inside @self (either as an +immediate child, or as a deeper descendant). If @self and +@descendant point to the same actor then it will also return %TRUE. + + whether @descendent is contained within @self + + + + + A #ClutterActor + + + + A #ClutterActor, possibly contained in @self + + + + + + Run the next stage of the paint sequence. This function should only +be called within the implementation of the ‘run’ virtual of a +#ClutterEffect. It will cause the run method of the next effect to +be applied, or it will paint the actual actor if the current effect +is the last effect in the chain. + + + + + + A #ClutterActor + + + + + + Creates a #PangoContext for the given actor. The #PangoContext +is already configured using the appropriate font map, resolution +and font options. + +See also clutter_actor_get_pango_context(). + + the newly created #PangoContext. + Use g_object_unref() on the returned value to deallocate its + resources + + + + + a #ClutterActor + + + + + + Creates a new #PangoLayout from the same #PangoContext used +by the #ClutterActor. The #PangoLayout is already configured +with the font map, resolution and font options, and the +given @text. + +If you want to keep around a #PangoLayout created by this +function you will have to connect to the #ClutterBackend::font-changed +and #ClutterBackend::resolution-changed signals, and call +pango_layout_context_changed() in response to them. + + the newly created #PangoLayout. + Use g_object_unref() when done + + + + + a #ClutterActor + + + + the text to set on the #PangoLayout, or %NULL + + + + + + Destroys an actor. When an actor is destroyed, it will break any +references it holds to other objects. If the actor is inside a +container, the actor will be removed. + +When you destroy a container, its children will be destroyed as well. + +Note: you cannot destroy the #ClutterStage returned by +clutter_stage_get_default(). + + + + + + a #ClutterActor + + + + + + Destroys all children of @self. + +This function releases the reference added by inserting a child +actor in the list of children of @self, and ensures that the +#ClutterActor::destroy signal is emitted on each child of the +actor. + +By default, #ClutterActor will emit the #ClutterActor::destroy signal +when its reference count drops to 0; the default handler of the +#ClutterActor::destroy signal will destroy all the children of an +actor. This function ensures that all children are destroyed, instead +of just removed from @self, unlike clutter_actor_remove_all_children() +which will merely release the reference and remove each child. + +Unless you acquired an additional reference on each child of @self +prior to calling clutter_actor_remove_all_children() and want to reuse +the actors, you should use clutter_actor_destroy_all_children() in +order to make sure that children are destroyed and signal handlers +are disconnected even in cases where circular references prevent this +from automatically happening through reference counting alone. + + + + + + a #ClutterActor + + + + + + Detaches the #ClutterAnimation used by @actor, if clutter_actor_animate() +has been called on @actor. + +Once the animation has been detached, it loses a reference. If it was +the only reference then the #ClutterAnimation becomes invalid. + +The #ClutterAnimation::completed signal will not be emitted. + Use the implicit transition for animatable properties + in #ClutterActor instead, and clutter_actor_remove_transition() to + remove the transition. + + + + + + a #ClutterActor + + + + + + This function is used to emit an event on the main stage. +You should rarely need to use this function, except for +synthetising events. + + the return value from the signal emission: %TRUE + if the actor handled the event, or %FALSE if the event was + not handled + + + + + a #ClutterActor + + + + a #ClutterEvent + + + + %TRUE if event in in capture phase, %FALSE otherwise. + + + + + + Calculates the transformed screen coordinates of the four corners of +the actor; the returned vertices relate to the #ClutterActorBox +coordinates as follows: + + - v[0] contains (x1, y1) + - v[1] contains (x2, y1) + - v[2] contains (x1, y2) + - v[3] contains (x2, y2) + + + + + + A #ClutterActor + + + + Pointer to a location of an array + of 4 #ClutterVertex where to store the result. + + + + + + + + Returns the accessible object that describes the actor to an +assistive technology. + +If no class-specific #AtkObject implementation is available for the +actor instance in question, it will inherit an #AtkObject +implementation from the first ancestor class for which such an +implementation is defined. + +The documentation of the <ulink +url="http://developer.gnome.org/doc/API/2.0/atk/index.html">ATK</ulink> +library contains more information about accessible objects and +their uses. + + the #AtkObject associated with @actor + + + + + a #ClutterActor + + + + + + Retrieves the #ClutterAction with the given name in the list +of actions applied to @self + + a #ClutterAction for the given + name, or %NULL. The returned #ClutterAction is owned by the + actor and it should not be unreferenced directly + + + + + a #ClutterActor + + + + the name of the action to retrieve + + + + + + Retrieves the list of actions applied to @self + + a copy + of the list of #ClutterAction<!-- -->s. The contents of the list are + owned by the #ClutterActor. Use g_list_free() to free the resources + allocated by the returned #GList + + + + + + + a #ClutterActor + + + + + + Gets the layout box an actor has been assigned. The allocation can +only be assumed valid inside a paint() method; anywhere else, it +may be out-of-date. + +An allocation does not incorporate the actor's scale or anchor point; +those transformations do not affect layout, only rendering. + +Do not call any of the clutter_actor_get_allocation_*() family +of functions inside the implementation of the get_preferred_width() +or get_preferred_height() virtual functions. + + + + + + A #ClutterActor + + + + the function fills this in with the actor's allocation + + + + + + Gets the layout box an actor has been assigned. The allocation can +only be assumed valid inside a paint() method; anywhere else, it +may be out-of-date. + +An allocation does not incorporate the actor's scale or anchor point; +those transformations do not affect layout, only rendering. + +The returned rectangle is in pixels. + Use clutter_actor_get_allocation_box() instead. + + + + + + A #ClutterActor + + + + allocation geometry in pixels + + + + + + Calculates the transformed coordinates of the four corners of the +actor in the plane of @ancestor. The returned vertices relate to +the #ClutterActorBox coordinates as follows: + + - @verts[0] contains (x1, y1) + - @verts[1] contains (x2, y1) + - @verts[2] contains (x1, y2) + - @verts[3] contains (x2, y2) + +If @ancestor is %NULL the ancestor will be the #ClutterStage. In +this case, the coordinates returned will be the coordinates on +the stage before the projection is applied. This is different from +the behaviour of clutter_actor_get_abs_allocation_vertices(). + + + + + + A #ClutterActor + + + + A #ClutterActor to calculate the vertices + against, or %NULL to use the #ClutterStage + + + + return + location for an array of 4 #ClutterVertex in which to store the result + + + + + + + + Gets the current anchor point of the @actor in pixels. + Use #ClutterActor:pivot-point instead + + + + + + a #ClutterActor + + + + return location for the X coordinate of the anchor point + + + + return location for the Y coordinate of the anchor point + + + + + + Retrieves the anchor position expressed as a #ClutterGravity. If +the anchor point was specified using pixels or units this will +return %CLUTTER_GRAVITY_NONE. + Use #ClutterActor:pivot-point instead. + + the #ClutterGravity used by the anchor point + + + + + a #ClutterActor + + + + + + Retrieves the #ClutterAnimation used by @actor, if clutter_actor_animate() +has been called on @actor. + Use the implicit transition for animatable properties + in #ClutterActor instead, and clutter_actor_get_transition() to retrieve + the transition. + + a #ClutterAnimation, or %NULL + + + + + a #ClutterActor + + + + + + Retrieves the color set using clutter_actor_set_background_color(). + + + + + + a #ClutterActor + + + + return location for a #ClutterColor + + + + + + Retrieves the actor at the given @index_ inside the list of +children of @self. + + a pointer to a #ClutterActor, or %NULL + + + + + a #ClutterActor + + + + the position in the list of children + + + + + + Retrieves the child transformation matrix set using +clutter_actor_set_child_transform(); if none is currently set, +the @transform matrix will be initialized to the identity matrix. + + + + + + a #ClutterActor + + + + a #ClutterMatrix + + + + + + Retrieves the list of children of @self. + + A newly + allocated #GList of #ClutterActor<!-- -->s. Use g_list_free() when + done. + + + + + + + a #ClutterActor + + + + + + Gets the clip area for @self, if any is set. + + + + + + a #ClutterActor + + + + return location for the X offset of + the clip rectangle, or %NULL + + + + return location for the Y offset of + the clip rectangle, or %NULL + + + + return location for the width of + the clip rectangle, or %NULL + + + + return location for the height of + the clip rectangle, or %NULL + + + + + + Retrieves the value set using clutter_actor_set_clip_to_allocation() + + %TRUE if the #ClutterActor is clipped to its allocation + + + + + a #ClutterActor + + + + + + Retrieves the #ClutterConstraint with the given name in the list +of constraints applied to @self + + a #ClutterConstraint for the given + name, or %NULL. The returned #ClutterConstraint is owned by the + actor and it should not be unreferenced directly + + + + + a #ClutterActor + + + + the name of the constraint to retrieve + + + + + + Retrieves the list of constraints applied to @self + + a copy + of the list of #ClutterConstraint<!-- -->s. The contents of the list are + owned by the #ClutterActor. Use g_list_free() to free the resources + allocated by the returned #GList + + + + + + + a #ClutterActor + + + + + + Retrieves the contents of @self. + + a pointer to the #ClutterContent instance, + or %NULL if none was set + + + + + a #ClutterActor + + + + + + Retrieves the bounding box for the #ClutterContent of @self. + +The bounding box is relative to the actor's allocation. + +If no #ClutterContent is set for @self, or if @self has not been +allocated yet, then the result is undefined. + +The content box is guaranteed to be, at most, as big as the allocation +of the #ClutterActor. + +If the #ClutterContent used by the actor has a preferred size, then +it is possible to modify the content box by using the +#ClutterActor:content-gravity property. + + + + + + a #ClutterActor + + + + the return location for the bounding + box for the #ClutterContent + + + + + + Retrieves the content gravity as set using +clutter_actor_set_content_gravity(). + + the content gravity + + + + + a #ClutterActor + + + + + + Retrieves the repeat policy for a #ClutterActor set by +clutter_actor_set_content_repeat(). + + the content repeat policy + + + + + a #ClutterActor + + + + + + Retrieves the values set using clutter_actor_set_content_scaling_filters(). + + + + + + a #ClutterActor + + + + return location for the minification + filter, or %NULL + + + + return location for the magnification + filter, or %NULL + + + + + + Retrieves the default paint volume for @self. + +This function provides the same #ClutterPaintVolume that would be +computed by the default implementation inside #ClutterActor of the +#ClutterActorClass.get_paint_volume() virtual function. + +This function should only be used by #ClutterActor subclasses that +cannot chain up to the parent implementation when computing their +paint volume. + + a pointer to the default + #ClutterPaintVolume, relative to the #ClutterActor, or %NULL if + the actor could not compute a valid paint volume. The returned value + is not guaranteed to be stable across multiple frames, so if you + want to retain it, you will need to copy it using + clutter_paint_volume_copy(). + + + + + a #ClutterActor + + + + + + Retrieves the depth of @self. + Use clutter_actor_get_z_position() instead. + + the depth of the actor + + + + + a #ClutterActor + + + + + + Retrieves the delay that should be applied when tweening animatable +properties. + + a delay, in milliseconds + + + + + a #ClutterActor + + + + + + Retrieves the duration of the tweening for animatable +properties of @self for the current easing state. + + the duration of the tweening, in milliseconds + + + + + a #ClutterActor + + + + + + Retrieves the easing mode for the tweening of animatable properties +of @self for the current easing state. + + an easing mode + + + + + a #ClutterActor + + + + + + Retrieves the #ClutterEffect with the given name in the list +of effects applied to @self + + a #ClutterEffect for the given + name, or %NULL. The returned #ClutterEffect is owned by the + actor and it should not be unreferenced directly + + + + + a #ClutterActor + + + + the name of the effect to retrieve + + + + + + Retrieves the #ClutterEffect<!-- -->s applied on @self, if any + + a list + of #ClutterEffect<!-- -->s, or %NULL. The elements of the returned + list are owned by Clutter and they should not be freed. You should + free the returned list using g_list_free() when done + + + + + + + a #ClutterActor + + + + + + Retrieves the first child of @self. + +The returned pointer is only valid until the scene graph changes; it +is not safe to modify the list of children of @self while iterating +it. + + a pointer to a #ClutterActor, or %NULL + + + + + a #ClutterActor + + + + + + Checks whether an actor has a fixed position set (and will thus be +unaffected by any layout manager). + + %TRUE if the fixed position is set on the actor + + + + + A #ClutterActor + + + + + + Retrieves the flags set on @self + + a bitwise or of #ClutterActorFlags or 0 + + + + + a #ClutterActor + + + + + + Gets the size and position of an actor relative to its parent +actor. This is the same as calling clutter_actor_get_position() and +clutter_actor_get_size(). It tries to "do what you mean" and get the +requested size and position if the actor's allocation is invalid. + Use clutter_actor_get_position() and + clutter_actor_get_size(), or clutter_actor_get_allocation_geometry() + instead. + + + + + + A #ClutterActor + + + + A location to store actors #ClutterGeometry + + + + + + Retrieves the unique id for @self. + The id is not used any longer, and this function + always returns 0. + + Globally unique value for this object instance. + + + + + A #ClutterActor + + + + + + Retrieves the height of a #ClutterActor. + +If the actor has a valid allocation, this function will return the +height of the allocated area given to the actor. + +If the actor does not have a valid allocation, this function will +return the actor's natural height, that is the preferred height of +the actor. + +If you care whether you get the preferred height or the height that +has been assigned to the actor, you should probably call a different +function like clutter_actor_get_allocation_box() to retrieve the +allocated size or clutter_actor_get_preferred_height() to retrieve the +preferred height. + +If an actor has a fixed height, for instance a height that has been +assigned using clutter_actor_set_height(), the height returned will +be the same value. + + the height of the actor, in pixels + + + + + A #ClutterActor + + + + + + Retrieves the last child of @self. + +The returned pointer is only valid until the scene graph changes; it +is not safe to modify the list of children of @self while iterating +it. + + a pointer to a #ClutterActor, or %NULL + + + + + a #ClutterActor + + + + + + Retrieves the #ClutterLayoutManager used by @self. + + a pointer to the #ClutterLayoutManager, + or %NULL + + + + + a #ClutterActor + + + + + + Retrieves all the components of the margin of a #ClutterActor. + + + + + + a #ClutterActor + + + + return location for a #ClutterMargin + + + + + + Retrieves the bottom margin of a #ClutterActor. + + the bottom margin + + + + + a #ClutterActor + + + + + + Retrieves the left margin of a #ClutterActor. + + the left margin + + + + + a #ClutterActor + + + + + + Retrieves the right margin of a #ClutterActor. + + the right margin + + + + + a #ClutterActor + + + + + + Retrieves the top margin of a #ClutterActor. + + the top margin + + + + + a #ClutterActor + + + + + + Retrieves the number of children of @self. + + the number of children of an actor + + + + + a #ClutterActor + + + + + + Retrieves the name of @self. + + the name of the actor, or %NULL. The returned string is + owned by the actor and should not be modified or freed. + + + + + A #ClutterActor + + + + + + Retrieves the sibling of @self that comes after it in the list +of children of @self's parent. + +The returned pointer is only valid until the scene graph changes; it +is not safe to modify the list of children of @self while iterating +it. + + a pointer to a #ClutterActor, or %NULL + + + + + a #ClutterActor + + + + + + Retrieves whether to redirect the actor to an offscreen buffer, as +set by clutter_actor_set_offscreen_redirect(). + + the value of the offscreen-redirect property of the actor + + + + + a #ClutterActor + + + + + + Retrieves the opacity value of an actor, as set by +clutter_actor_set_opacity(). + +For retrieving the absolute opacity of the actor inside a paint +virtual function, see clutter_actor_get_paint_opacity(). + + the opacity of the actor + + + + + a #ClutterActor + + + + + + See clutter_actor_set_opacity_override() + + the override value for the actor's opacity, or -1 if no override + is set. + + + + + a #ClutterActor + + + + + + Retrieves the paint volume of the passed #ClutterActor, and +transforms it into a 2D bounding box in stage coordinates. + +This function is useful to determine the on screen area occupied by +the actor. The box is only an approximation and may often be +considerably larger due to the optimizations used to calculate the +box. The box is never smaller though, so it can reliably be used +for culling. + +There are times when a 2D paint box can't be determined, e.g. +because the actor isn't yet parented under a stage or because +the actor is unable to determine a paint volume. + + %TRUE if a 2D paint box could be determined, else +%FALSE. + + + + + a #ClutterActor + + + + return location for a #ClutterActorBox + + + + + + Retrieves the absolute opacity of the actor, as it appears on the stage. + +This function traverses the hierarchy chain and composites the opacity of +the actor with that of its parents. + +This function is intended for subclasses to use in the paint virtual +function, to paint themselves with the correct opacity. + + The actor opacity value. + + + + + A #ClutterActor + + + + + + Retrieves the 'paint' visibility of an actor recursively checking for non +visible parents. + +This is by definition the same as %CLUTTER_ACTOR_IS_MAPPED. + + %TRUE if the actor is visibile and will be painted. + + + + + A #ClutterActor + + + + + + Retrieves the paint volume of the passed #ClutterActor, or %NULL +when a paint volume can't be determined. + +The paint volume is defined as the 3D space occupied by an actor +when being painted. + +This function will call the #ClutterActorClass.get_paint_volume() +virtual function of the #ClutterActor class. Sub-classes of #ClutterActor +should not usually care about overriding the default implementation, +unless they are, for instance: painting outside their allocation, or +actors with a depth factor (not in terms of #ClutterActor:depth but real +3D depth). + +Note: 2D actors overriding #ClutterActorClass.get_paint_volume() +should ensure that their volume has a depth of 0. (This will be true +as long as you don't call clutter_paint_volume_set_depth().) + + a pointer to a #ClutterPaintVolume, + or %NULL if no volume could be determined. The returned pointer + is not guaranteed to be valid across multiple frames; if you want + to keep it, you will need to copy it using clutter_paint_volume_copy(). + + + + + a #ClutterActor + + + + + + Retrieves the #PangoContext for @self. The actor's #PangoContext +is already configured using the appropriate font map, resolution +and font options. + +Unlike clutter_actor_create_pango_context(), this context is owend +by the #ClutterActor and it will be updated each time the options +stored by the #ClutterBackend change. + +You can use the returned #PangoContext to create a #PangoLayout +and render text using cogl_pango_render_layout() to reuse the +glyphs cache also used by Clutter. + + the #PangoContext for a #ClutterActor. + The returned #PangoContext is owned by the actor and should not be + unreferenced by the application code + + + + + a #ClutterActor + + + + + + Retrieves the parent of @self. + + The #ClutterActor parent, or %NULL + if no parent is set + + + + + A #ClutterActor + + + + + + Retrieves the coordinates of the #ClutterActor:pivot-point. + + + + + + a #ClutterActor + + + + return location for the normalized X + coordinate of the pivot point, or %NULL + + + + return location for the normalized Y + coordinate of the pivot point, or %NULL + + + + + + Retrieves the Z component of the #ClutterActor:pivot-point. + + + + + + a #ClutterActor + + + + + + This function tries to "do what you mean" and tell you where the +actor is, prior to any transformations. Retrieves the fixed +position of an actor in pixels, if one has been set; otherwise, if +the allocation is valid, returns the actor's allocated position; +otherwise, returns 0,0. + +The returned position is in pixels. + + + + + + a #ClutterActor + + + + return location for the X coordinate, or %NULL + + + + return location for the Y coordinate, or %NULL + + + + + + Computes the requested minimum and natural heights for an actor, +or if they are already computed, returns the cached values. + +An actor may not get its request - depending on the layout +manager that's in effect. + +A request should not incorporate the actor's scale or anchor point; +those transformations do not affect layout, only rendering. + + + + + + A #ClutterActor + + + + available width to assume in computing desired height, + or a negative value to indicate that no width is defined + + + + return location for minimum height, + or %NULL + + + + return location for natural + height, or %NULL + + + + + + Computes the preferred minimum and natural size of an actor, taking into +account the actor's geometry management (either height-for-width +or width-for-height). + +The width and height used to compute the preferred height and preferred +width are the actor's natural ones. + +If you need to control the height for the preferred width, or the width for +the preferred height, you should use clutter_actor_get_preferred_width() +and clutter_actor_get_preferred_height(), and check the actor's preferred +geometry management using the #ClutterActor:request-mode property. + + + + + + a #ClutterActor + + + + return location for the minimum + width, or %NULL + + + + return location for the minimum + height, or %NULL + + + + return location for the natural + width, or %NULL + + + + return location for the natural + height, or %NULL + + + + + + Computes the requested minimum and natural widths for an actor, +optionally depending on the specified height, or if they are +already computed, returns the cached values. + +An actor may not get its request - depending on the layout +manager that's in effect. + +A request should not incorporate the actor's scale or anchor point; +those transformations do not affect layout, only rendering. + + + + + + A #ClutterActor + + + + available height when computing the preferred width, + or a negative value to indicate that no height is defined + + + + return location for minimum width, + or %NULL + + + + return location for the natural + width, or %NULL + + + + + + Retrieves the sibling of @self that comes before it in the list +of children of @self's parent. + +The returned pointer is only valid until the scene graph changes; it +is not safe to modify the list of children of @self while iterating +it. + + a pointer to a #ClutterActor, or %NULL + + + + + a #ClutterActor + + + + + + Checks whether @actor is marked as reactive. + + %TRUE if the actor is reactive + + + + + a #ClutterActor + + + + + + Retrieves the geometry request mode of @self + + the request mode for the actor + + + + + a #ClutterActor + + + + + + Retrieves the angle and center of rotation on the given axis, +set using clutter_actor_set_rotation(). + Use clutter_actor_get_rotation_angle() and + clutter_actor_get_pivot_point() instead. + + the angle of rotation + + + + + a #ClutterActor + + + + the axis of rotation + + + + return value for the X coordinate of the center of rotation + + + + return value for the Y coordinate of the center of rotation + + + + return value for the Z coordinate of the center of rotation + + + + + + Retrieves the angle of rotation set by clutter_actor_set_rotation_angle(). + + the angle of rotation, in degrees + + + + + a #ClutterActor + + + + the axis of the rotation + + + + + + Retrieves an actors scale factors. + + + + + + A #ClutterActor + + + + Location to store horizonal + scale factor, or %NULL. + + + + Location to store vertical + scale factor, or %NULL. + + + + + + Retrieves the scale center coordinate in pixels relative to the top +left corner of the actor. If the scale center was specified using a +#ClutterGravity this will calculate the pixel offset using the +current size of the actor. + Use clutter_actor_get_pivot_point() instead. + + + + + + A #ClutterActor + + + + Location to store the X position + of the scale center, or %NULL. + + + + Location to store the Y position + of the scale center, or %NULL. + + + + + + Retrieves the scale center as a compass direction. If the scale +center was specified in pixels or units this will return +%CLUTTER_GRAVITY_NONE. + Use clutter_actor_get_pivot_point() instead. + + the scale gravity + + + + + A #ClutterActor + + + + + + Retrieves the scaling factor along the Z axis, as set using +clutter_actor_set_scale_z(). + + the scaling factor along the Z axis + + + + + A #ClutterActor + + + + + + Queries the currently set #ClutterShader on @self. + Use clutter_actor_get_effect() instead. + + The currently set #ClutterShader + or %NULL if no shader is set. + + + + + a #ClutterActor + + + + + + This function tries to "do what you mean" and return +the size an actor will have. If the actor has a valid +allocation, the allocation will be returned; otherwise, +the actors natural size request will be returned. + +If you care whether you get the request vs. the allocation, you +should probably call a different function like +clutter_actor_get_allocation_box() or +clutter_actor_get_preferred_width(). + + + + + + A #ClutterActor + + + + return location for the width, or %NULL. + + + + return location for the height, or %NULL. + + + + + + Retrieves the #ClutterStage where @actor is contained. + + the stage + containing the actor, or %NULL + + + + + a #ClutterActor + + + + + + Retrieves the value set using clutter_actor_set_text_direction() + +If no text direction has been previously set, the default text +direction, as returned by clutter_get_default_text_direction(), will +be returned instead + + the #ClutterTextDirection for the actor + + + + + a #ClutterActor + + + + + + Retrieves the current transformation matrix of a #ClutterActor. + + + + + + a #ClutterActor + + + + a #ClutterMatrix + + + + + + Retrieves the transformations applied to @self relative to its +parent. + Use clutter_actor_get_transform() instead + + + + + + a #ClutterActor + + + + the return location for a #ClutterMatrix + + + + + + Retrieves the 3D paint volume of an actor like +clutter_actor_get_paint_volume() does (Please refer to the +documentation of clutter_actor_get_paint_volume() for more +details.) and it additionally transforms the paint volume into the +coordinate space of @relative_to_ancestor. (Or the stage if %NULL +is passed for @relative_to_ancestor) + +This can be used by containers that base their paint volume on +the volume of their children. Such containers can query the +transformed paint volume of all of its children and union them +together using clutter_paint_volume_union(). + + a pointer to a #ClutterPaintVolume, + or %NULL if no volume could be determined. The returned pointer is + not guaranteed to be valid across multiple frames; if you wish to + keep it, you will have to copy it using clutter_paint_volume_copy(). + + + + + a #ClutterActor + + + + A #ClutterActor that is an ancestor of @self + (or %NULL for the stage) + + + + + + Gets the absolute position of an actor, in pixels relative to the stage. + + + + + + A #ClutterActor + + + + return location for the X coordinate, or %NULL + + + + return location for the Y coordinate, or %NULL + + + + + + Gets the absolute size of an actor in pixels, taking into account the +scaling factors. + +If the actor has a valid allocation, the allocated size will be used. +If the actor has not a valid allocation then the preferred size will +be transformed and returned. + +If you want the transformed allocation, see +clutter_actor_get_abs_allocation_vertices() instead. + +When the actor (or one of its ancestors) is rotated around the +X or Y axis, it no longer appears as on the stage as a rectangle, but +as a generic quadrangle; in that case this function returns the size +of the smallest rectangle that encapsulates the entire quad. Please +note that in this case no assumptions can be made about the relative +position of this envelope to the absolute position of the actor, as +returned by clutter_actor_get_transformed_position(); if you need this +information, you need to use clutter_actor_get_abs_allocation_vertices() +to get the coords of the actual quadrangle. + + + + + + A #ClutterActor + + + + return location for the width, or %NULL + + + + return location for the height, or %NULL + + + + + + Retrieves the #ClutterTransition of a #ClutterActor by using the +transition @name. + +Transitions created for animatable properties use the name of the +property itself, for instance the code below: + +|[<!-- language="C" --> + clutter_actor_set_easing_duration (actor, 1000); + clutter_actor_set_rotation (actor, CLUTTER_Y_AXIS, 360.0, x, y, z); + + transition = clutter_actor_get_transition (actor, "rotation-angle-y"); + g_signal_connect (transition, "stopped", + G_CALLBACK (on_transition_stopped), + actor); +]| + +will call the `on_transition_stopped` callback when the transition +is finished. + +If you just want to get notifications of the completion of a transition, +you should use the #ClutterActor::transition-stopped signal, using the +transition name as the signal detail. + + a #ClutterTransition, or %NULL is none + was found to match the passed name; the returned instance is owned + by Clutter and it should not be freed + + + + + a #ClutterActor + + + + the name of the transition + + + + + + Retrieves the translation set using clutter_actor_set_translation(). + + + + + + a #ClutterActor + + + + return location for the X component + of the translation, or %NULL + + + + return location for the Y component + of the translation, or %NULL + + + + return location for the Z component + of the translation, or %NULL + + + + + + Retrieves the width of a #ClutterActor. + +If the actor has a valid allocation, this function will return the +width of the allocated area given to the actor. + +If the actor does not have a valid allocation, this function will +return the actor's natural width, that is the preferred width of +the actor. + +If you care whether you get the preferred width or the width that +has been assigned to the actor, you should probably call a different +function like clutter_actor_get_allocation_box() to retrieve the +allocated size or clutter_actor_get_preferred_width() to retrieve the +preferred width. + +If an actor has a fixed width, for instance a width that has been +assigned using clutter_actor_set_width(), the width returned will +be the same value. + + the width of the actor, in pixels + + + + + A #ClutterActor + + + + + + Retrieves the X coordinate of a #ClutterActor. + +This function tries to "do what you mean", by returning the +correct value depending on the actor's state. + +If the actor has a valid allocation, this function will return +the X coordinate of the origin of the allocation box. + +If the actor has any fixed coordinate set using clutter_actor_set_x(), +clutter_actor_set_position() or clutter_actor_set_geometry(), this +function will return that coordinate. + +If both the allocation and a fixed position are missing, this function +will return 0. + + the X coordinate, in pixels, ignoring any + transformation (i.e. scaling, rotation) + + + + + A #ClutterActor + + + + + + Retrieves the horizontal alignment policy set using +clutter_actor_set_x_align(). + + the horizontal alignment policy. + + + + + a #ClutterActor + + + + + + Retrieves the value set with clutter_actor_set_x_expand(). + +See also: clutter_actor_needs_expand() + + %TRUE if the actor has been set to expand + + + + + a #ClutterActor + + + + + + Retrieves the Y coordinate of a #ClutterActor. + +This function tries to "do what you mean", by returning the +correct value depending on the actor's state. + +If the actor has a valid allocation, this function will return +the Y coordinate of the origin of the allocation box. + +If the actor has any fixed coordinate set using clutter_actor_set_y(), +clutter_actor_set_position() or clutter_actor_set_geometry(), this +function will return that coordinate. + +If both the allocation and a fixed position are missing, this function +will return 0. + + the Y coordinate, in pixels, ignoring any + transformation (i.e. scaling, rotation) + + + + + A #ClutterActor + + + + + + Retrieves the vertical alignment policy set using +clutter_actor_set_y_align(). + + the vertical alignment policy. + + + + + a #ClutterActor + + + + + + Retrieves the value set with clutter_actor_set_y_expand(). + +See also: clutter_actor_needs_expand() + + %TRUE if the actor has been set to expand + + + + + a #ClutterActor + + + + + + Retrieves the actor's position on the Z axis. + + the position on the Z axis. + + + + + a #ClutterActor + + + + + + Retrieves the center for the rotation around the Z axis as a +compass direction. If the center was specified in pixels or units +this will return %CLUTTER_GRAVITY_NONE. + Use the #ClutterActor:pivot-point instead of + a #ClutterGravity + + the Z rotation center + + + + + A #ClutterActor + + + + + + Sets the key focus of the #ClutterStage including @self +to this #ClutterActor. + + + + + + a #ClutterActor + + + + + + Returns whether the actor has any actions applied. + + %TRUE if the actor has any actions, + %FALSE otherwise + + + + + A #ClutterActor + + + + + + Checks if the actor has an up-to-date allocation assigned to +it. This means that the actor should have an allocation: it's +visible and has a parent. It also means that there is no +outstanding relayout request in progress for the actor or its +children (There might be other outstanding layout requests in +progress that will cause the actor to get a new allocation +when the stage is laid out, however). + +If this function returns %FALSE, then the actor will normally +be allocated before it is next drawn on the screen. + + %TRUE if the actor has an up-to-date allocation + + + + + a #ClutterActor + + + + + + Determines whether the actor has a clip area set or not. + + %TRUE if the actor has a clip area set. + + + + + a #ClutterActor + + + + + + Returns whether the actor has any constraints applied. + + %TRUE if the actor has any constraints, + %FALSE otherwise + + + + + A #ClutterActor + + + + + + Returns whether the actor has any effects applied. + + %TRUE if the actor has any effects, + %FALSE otherwise + + + + + A #ClutterActor + + + + + + Checks whether @self is the #ClutterActor that has key focus + + %TRUE if the actor has key focus, and %FALSE otherwise + + + + + a #ClutterActor + + + + + + Returns whether a #ClutterActor has any mapped clones. + + %TRUE if the actor has mapped clones, and %FALSE otherwise + + + + + a #ClutterActor + + + + + + Asks the actor's implementation whether it may contain overlapping +primitives. + +For example; Clutter may use this to determine whether the painting +should be redirected to an offscreen buffer to correctly implement +the opacity property. + +Custom actors can override the default response by implementing the +#ClutterActorClass.has_overlaps() virtual function. See +clutter_actor_set_offscreen_redirect() for more information. + + %TRUE if the actor may have overlapping primitives, and + %FALSE otherwise + + + + + A #ClutterActor + + + + + + Checks whether an actor contains the pointer of a +#ClutterInputDevice + + %TRUE if the actor contains the pointer, and + %FALSE otherwise + + + + + a #ClutterActor + + + + + + Flags an actor to be hidden. A hidden actor will not be +rendered on the stage. + +Actors are visible by default. + +If this function is called on an actor without a parent, the +#ClutterActor:show-on-set-parent property will be set to %FALSE +as a side-effect. + + + + + + A #ClutterActor + + + + + + Calls clutter_actor_hide() on all child actors (if any). + Using clutter_actor_hide() on the actor will + prevent its children from being painted as well. + + + + + + a #ClutterActor + + + + + + Inserts @child into the list of children of @self, above another +child of @self or, if @sibling is %NULL, above all the children +of @self. + +This function will acquire a reference on @child that will only +be released when calling clutter_actor_remove_child(). + +This function will not take into consideration the #ClutterActor:depth +of @child. + +This function will emit the #ClutterContainer::actor-added signal +on @self. + + + + + + a #ClutterActor + + + + a #ClutterActor + + + + a child of @self, or %NULL + + + + + + Inserts @child into the list of children of @self, using the +given @index_. If @index_ is greater than the number of children +in @self, or is less than 0, then the new child is added at the end. + +This function will acquire a reference on @child that will only +be released when calling clutter_actor_remove_child(). + +This function will not take into consideration the #ClutterActor:depth +of @child. + +This function will emit the #ClutterContainer::actor-added signal +on @self. + + + + + + a #ClutterActor + + + + a #ClutterActor + + + + the index + + + + + + Inserts @child into the list of children of @self, below another +child of @self or, if @sibling is %NULL, below all the children +of @self. + +This function will acquire a reference on @child that will only +be released when calling clutter_actor_remove_child(). + +This function will not take into consideration the #ClutterActor:depth +of @child. + +This function will emit the #ClutterContainer::actor-added signal +on @self. + + + + + + a #ClutterActor + + + + a #ClutterActor + + + + a child of @self, or %NULL + + + + + + Checks whether @self is being currently painted by a #ClutterClone + +This function is useful only inside the ::paint virtual function +implementations or within handlers for the #ClutterActor::paint +signal + +This function should not be used by applications + + %TRUE if the #ClutterActor is currently being painted + by a #ClutterClone, and %FALSE otherwise + + + + + a #ClutterActor + + + + + + Checks whether a #ClutterActor has been set as mapped. + +See also %CLUTTER_ACTOR_IS_MAPPED and #ClutterActor:mapped + + %TRUE if the actor is mapped + + + + + a #ClutterActor + + + + + + Checks whether a #ClutterActor is realized. + +See also %CLUTTER_ACTOR_IS_REALIZED and #ClutterActor:realized. + + %TRUE if the actor is realized + + + + + a #ClutterActor + + + + + + Checks whether any rotation is applied to the actor. + + %TRUE if the actor is rotated. + + + + + a #ClutterActor + + + + + + Checks whether the actor is scaled in either dimension. + + %TRUE if the actor is scaled. + + + + + a #ClutterActor + + + + + + Checks whether an actor is marked as visible. + +See also %CLUTTER_ACTOR_IS_VISIBLE and #ClutterActor:visible. + + %TRUE if the actor visible + + + + + a #ClutterActor + + + + + + Puts @self below @above. + +Both actors must have the same parent, and the parent must implement +the #ClutterContainer interface. + +This function calls clutter_container_lower_child() internally. + Use clutter_actor_set_child_below_sibling() instead. + + + + + + A #ClutterActor + + + + A #ClutterActor to lower below + + + + + + Lowers @self to the bottom. + +This function calls clutter_actor_lower() internally. + Use clutter_actor_set_child_below_sibling() with + a %NULL sibling, instead. + + + + + + A #ClutterActor + + + + + + Sets the %CLUTTER_ACTOR_MAPPED flag on the actor and possibly maps +and realizes its children if they are visible. Does nothing if the +actor is not visible. + +Calling this function is strongly disencouraged: the default +implementation of #ClutterActorClass.map() will map all the children +of an actor when mapping its parent. + +When overriding map, it is mandatory to chain up to the parent +implementation. + + + + + + A #ClutterActor + + + + + + Sets an anchor point for the actor, and adjusts the actor postion so that +the relative position of the actor toward its parent remains the same. + Use #ClutterActor:pivot-point and +clutter_actor_set_translation() instead. + + + + + + a #ClutterActor + + + + X coordinate of the anchor point + + + + Y coordinate of the anchor point + + + + + + Sets an anchor point on the actor based on the given gravity, adjusting the +actor postion so that its relative position within its parent remains +unchanged. + +Since version 1.0 the anchor point will be stored as a gravity so +that if the actor changes size then the anchor point will move. For +example, if you set the anchor point to %CLUTTER_GRAVITY_SOUTH_EAST +and later double the size of the actor, the anchor point will move +to the bottom right. + Use #ClutterActor:pivot-point and +clutter_actor_set_translation() instead. + + + + + + a #ClutterActor + + + + #ClutterGravity. + + + + + + Moves an actor by the specified distance relative to its current +position in pixels. + +This function modifies the fixed position of an actor and thus removes +it from any layout management. Another way to move an actor is with an +anchor point, see clutter_actor_set_anchor_point(), or with an additional +translation, using clutter_actor_set_translation(). + + + + + + A #ClutterActor + + + + Distance to move Actor on X axis. + + + + Distance to move Actor on Y axis. + + + + + + Checks whether an actor, or any of its children, is set to expand +horizontally or vertically. + +This function should only be called by layout managers that can +assign extra space to their children. + +If you want to know whether the actor was explicitly set to expand, +use clutter_actor_get_x_expand() or clutter_actor_get_y_expand(). + + %TRUE if the actor should expand + + + + + a #ClutterActor + + + + the direction of expansion + + + + + + Renders the actor to display. + +This function should not be called directly by applications. +Call clutter_actor_queue_redraw() to queue paints, instead. + +This function is context-aware, and will either cause a +regular paint or a pick paint. + +This function will emit the #ClutterActor::paint signal or +the #ClutterActor::pick signal, depending on the context. + +This function does not paint the actor if the actor is set to 0, +unless it is performing a pick paint. + + + + + + A #ClutterActor + + + + + + Disables the effects of clutter_actor_push_internal(). + All children of an actor are accessible through + the #ClutterActor API. This function is only useful for legacy + containers overriding the default implementation of the + #ClutterContainer interface. + + + + + + a #ClutterActor + + + + + + Should be used by actors implementing the #ClutterContainer and with +internal children added through clutter_actor_set_parent(), for instance: + +|[<!-- language="C" --> + static void + my_actor_init (MyActor *self) + { + self->priv = my_actor_get_instance_private (self); + + clutter_actor_push_internal (CLUTTER_ACTOR (self)); + + // calling clutter_actor_set_parent() now will result in + // the internal flag being set on a child of MyActor + + // internal child - a background texture + self->priv->background_tex = clutter_texture_new (); + clutter_actor_set_parent (self->priv->background_tex, + CLUTTER_ACTOR (self)); + + // internal child - a label + self->priv->label = clutter_text_new (); + clutter_actor_set_parent (self->priv->label, + CLUTTER_ACTOR (self)); + + clutter_actor_pop_internal (CLUTTER_ACTOR (self)); + + // calling clutter_actor_set_parent() now will not result in + // the internal flag being set on a child of MyActor + } +]| + +This function will be used by Clutter to toggle an "internal child" +flag whenever clutter_actor_set_parent() is called; internal children +are handled differently by Clutter, specifically when destroying their +parent. + +Call clutter_actor_pop_internal() when you finished adding internal +children. + +Nested calls to clutter_actor_push_internal() are allowed, but each +one must by followed by a clutter_actor_pop_internal() call. + All children of an actor are accessible through + the #ClutterActor API, and #ClutterActor implements the + #ClutterContainer interface, so this function is only useful + for legacy containers overriding the default implementation. + + + + + + a #ClutterActor + + + + + + Queues up a redraw of an actor and any children. The redraw occurs +once the main loop becomes idle (after the current batch of events +has been processed, roughly). + +Applications rarely need to call this, as redraws are handled +automatically by modification functions. + +This function will not do anything if @self is not visible, or +if the actor is inside an invisible part of the scenegraph. + +Also be aware that painting is a NOP for actors with an opacity of +0 + +When you are implementing a custom actor you must queue a redraw +whenever some private state changes that will affect painting or +picking of your actor. + + + + + + A #ClutterActor + + + + + + Queues a redraw on @self limited to a specific, actor-relative +rectangular area. + +If @clip is %NULL this function is equivalent to +clutter_actor_queue_redraw(). + + + + + + a #ClutterActor + + + + a rectangular clip region, or %NULL + + + + + + Indicates that the actor's size request or other layout-affecting +properties may have changed. This function is used inside #ClutterActor +subclass implementations, not by applications directly. + +Queueing a new layout automatically queues a redraw as well. + + + + + + A #ClutterActor + + + + + + Puts @self above @below. + +Both actors must have the same parent, and the parent must implement +the #ClutterContainer interface + +This function calls clutter_container_raise_child() internally. + Use clutter_actor_set_child_above_sibling() instead. + + + + + + A #ClutterActor + + + + A #ClutterActor to raise above. + + + + + + Raises @self to the top. + +This function calls clutter_actor_raise() internally. + Use clutter_actor_set_child_above_sibling() with + a %NULL sibling, instead. + + + + + + A #ClutterActor + + + + + + Realization informs the actor that it is attached to a stage. It +can use this to allocate resources if it wanted to delay allocation +until it would be rendered. However it is perfectly acceptable for +an actor to create resources before being realized because Clutter +only ever has a single rendering context so that actor is free to +be moved from one stage to another. + +This function does nothing if the actor is already realized. + +Because a realized actor must have realized parent actors, calling +clutter_actor_realize() will also realize all parents of the actor. + +This function does not realize child actors, except in the special +case that realizing the stage, when the stage is visible, will +suddenly map (and thus realize) the children of the stage. + Actors are automatically realized, and nothing + requires explicit realization. + + + + + + A #ClutterActor + + + + + + Removes @action from the list of actions applied to @self + +The reference held by @self on the #ClutterAction will be released + + + + + + a #ClutterActor + + + + a #ClutterAction + + + + + + Removes the #ClutterAction with the given name from the list +of actions applied to @self + + + + + + a #ClutterActor + + + + the name of the action to remove + + + + + + Removes all children of @self. + +This function releases the reference added by inserting a child actor +in the list of children of @self. + +If the reference count of a child drops to zero, the child will be +destroyed. If you want to ensure the destruction of all the children +of @self, use clutter_actor_destroy_all_children(). + + + + + + a #ClutterActor + + + + + + Removes all transitions associated to @self. + + + + + + a #ClutterActor + + + + + + Removes @child from the children of @self. + +This function will release the reference added by +clutter_actor_add_child(), so if you want to keep using @child +you will have to acquire a referenced on it before calling this +function. + +This function will emit the #ClutterContainer::actor-removed +signal on @self. + + + + + + a #ClutterActor + + + + a #ClutterActor + + + + + + Removes clip area from @self. + + + + + + A #ClutterActor + + + + + + Removes @constraint from the list of constraints applied to @self + +The reference held by @self on the #ClutterConstraint will be released + + + + + + a #ClutterActor + + + + a #ClutterConstraint + + + + + + Removes the #ClutterConstraint with the given name from the list +of constraints applied to @self + + + + + + a #ClutterActor + + + + the name of the constraint to remove + + + + + + Removes @effect from the list of effects applied to @self + +The reference held by @self on the #ClutterEffect will be released + + + + + + a #ClutterActor + + + + a #ClutterEffect + + + + + + Removes the #ClutterEffect with the given name from the list +of effects applied to @self + + + + + + a #ClutterActor + + + + the name of the effect to remove + + + + + + Removes the transition stored inside a #ClutterActor using @name +identifier. + +If the transition is currently in progress, it will be stopped. + +This function releases the reference acquired when the transition +was added to the #ClutterActor. + + + + + + a #ClutterActor + + + + the name of the transition to remove + + + + + + Resets the parent actor of @self. + +This function is logically equivalent to calling clutter_actor_unparent() +and clutter_actor_set_parent(), but more efficiently implemented, as it +ensures the child is not finalized when unparented, and emits the +#ClutterActor::parent-set signal only once. + +In reality, calling this function is less useful than it sounds, as some +application code may rely on changes in the intermediate state between +removal and addition of the actor from its old parent to the @new_parent. +Thus, it is strongly encouraged to avoid using this function in application +code. + Use clutter_actor_remove_child() and + clutter_actor_add_child() instead; remember to take a reference on + the actor being removed before calling clutter_actor_remove_child() + to avoid the reference count dropping to zero and the actor being + destroyed. + + + + + + a #ClutterActor + + + + the new #ClutterActor parent + + + + + + Replaces @old_child with @new_child in the list of children of @self. + + + + + + a #ClutterActor + + + + the child of @self to replace + + + + the #ClutterActor to replace @old_child + + + + + + Restores the easing state as it was prior to a call to +clutter_actor_save_easing_state(). + + + + + + a #ClutterActor + + + + + + Saves the current easing state for animatable properties, and creates +a new state with the default values for easing mode and duration. + +New transitions created after calling this function will inherit the +duration, easing mode, and delay of the new easing state; this also +applies to transitions modified in flight. + + + + + + a #ClutterActor + + + + + + Stores the allocation of @self as defined by @box. + +This function can only be called from within the implementation of +the #ClutterActorClass.allocate() virtual function. + +The allocation should have been adjusted to take into account constraints, +alignment, and margin properties. If you are implementing a #ClutterActor +subclass that provides its own layout management policy for its children +instead of using a #ClutterLayoutManager delegate, you should not call +this function on the children of @self; instead, you should call +clutter_actor_allocate(), which will adjust the allocation box for +you. + +This function should only be used by subclasses of #ClutterActor +that wish to store their allocation but cannot chain up to the +parent's implementation; the default implementation of the +#ClutterActorClass.allocate() virtual function will call this +function. + +It is important to note that, while chaining up was the recommended +behaviour for #ClutterActor subclasses prior to the introduction of +this function, it is recommended to call clutter_actor_set_allocation() +instead. + +If the #ClutterActor is using a #ClutterLayoutManager delegate object +to handle the allocation of its children, this function will call +the clutter_layout_manager_allocate() function only if the +%CLUTTER_DELEGATE_LAYOUT flag is set on @flags, otherwise it is +expected that the subclass will call clutter_layout_manager_allocate() +by itself. For instance, the following code: + +|[<!-- language="C" --> +static void +my_actor_allocate (ClutterActor *actor, + const ClutterActorBox *allocation, + ClutterAllocationFlags flags) +{ + ClutterActorBox new_alloc; + ClutterAllocationFlags new_flags; + + adjust_allocation (allocation, &new_alloc); + + new_flags = flags | CLUTTER_DELEGATE_LAYOUT; + + // this will use the layout manager set on the actor + clutter_actor_set_allocation (actor, &new_alloc, new_flags); +} +]| + +is equivalent to this: + +|[<!-- language="C" --> +static void +my_actor_allocate (ClutterActor *actor, + const ClutterActorBox *allocation, + ClutterAllocationFlags flags) +{ + ClutterLayoutManager *layout; + ClutterActorBox new_alloc; + + adjust_allocation (allocation, &new_alloc); + + clutter_actor_set_allocation (actor, &new_alloc, flags); + + layout = clutter_actor_get_layout_manager (actor); + clutter_layout_manager_allocate (layout, + CLUTTER_CONTAINER (actor), + &new_alloc, + flags); +} +]| + + + + + + a #ClutterActor + + + + a #ClutterActorBox + + + + allocation flags + + + + + + Sets an anchor point for @self. The anchor point is a point in the +coordinate space of an actor to which the actor position within its +parent is relative; the default is (0, 0), i.e. the top-left corner +of the actor. + Use #ClutterActor:pivot-point instead. + + + + + + a #ClutterActor + + + + X coordinate of the anchor point + + + + Y coordinate of the anchor point + + + + + + Sets an anchor point on the actor, based on the given gravity (this is a +convenience function wrapping clutter_actor_set_anchor_point()). + +Since version 1.0 the anchor point will be stored as a gravity so +that if the actor changes size then the anchor point will move. For +example, if you set the anchor point to %CLUTTER_GRAVITY_SOUTH_EAST +and later double the size of the actor, the anchor point will move +to the bottom right. + Use #ClutterActor:pivot-point and +clutter_actor_set_translation() instead. E.g. For %CLUTTER_GRAVITY_CENTER set +pivot_point to (0.5,0.5) and the translation to (width/2,height/2). + + + + + + a #ClutterActor + + + + #ClutterGravity. + + + + + + Sets the background color of a #ClutterActor. + +The background color will be used to cover the whole allocation of the +actor. The default background color of an actor is transparent. + +To check whether an actor has a background color, you can use the +#ClutterActor:background-color-set actor property. + +The #ClutterActor:background-color property is animatable. + + + + + + a #ClutterActor + + + + a #ClutterColor, or %NULL to unset a previously + set color + + + + + + Sets @child to be above @sibling in the list of children of @self. + +If @sibling is %NULL, @child will be the new last child of @self. + +This function is logically equivalent to removing @child and using +clutter_actor_insert_child_above(), but it will not emit signals +or change state on @child. + + + + + + a #ClutterActor + + + + a #ClutterActor child of @self + + + + a #ClutterActor child of @self, or %NULL + + + + + + Changes the index of @child in the list of children of @self. + +This function is logically equivalent to removing @child and +calling clutter_actor_insert_child_at_index(), but it will not +emit signals or change state on @child. + + + + + + a #ClutterActor + + + + a #ClutterActor child of @self + + + + the new index for @child + + + + + + Sets @child to be below @sibling in the list of children of @self. + +If @sibling is %NULL, @child will be the new first child of @self. + +This function is logically equivalent to removing @self and using +clutter_actor_insert_child_below(), but it will not emit signals +or change state on @child. + + + + + + a #ClutterActor + + + + a #ClutterActor child of @self + + + + a #ClutterActor child of @self, or %NULL + + + + + + Sets the transformation matrix to be applied to all the children +of @self prior to their own transformations. The default child +transformation is the identity matrix. + +If @transform is %NULL, the child transform will be unset. + +The #ClutterActor:child-transform property is animatable. + + + + + + a #ClutterActor + + + + a #ClutterMatrix, or %NULL + + + + + + Sets clip area for @self. The clip area is always computed from the +upper left corner of the actor, even if the anchor point is set +otherwise. + + + + + + A #ClutterActor + + + + X offset of the clip rectangle + + + + Y offset of the clip rectangle + + + + Width of the clip rectangle + + + + Height of the clip rectangle + + + + + + Sets whether @self should be clipped to the same size as its +allocation + + + + + + a #ClutterActor + + + + %TRUE to apply a clip tracking the allocation + + + + + + Sets the contents of a #ClutterActor. + + + + + + a #ClutterActor + + + + a #ClutterContent, or %NULL + + + + + + Sets the gravity of the #ClutterContent used by @self. + +See the description of the #ClutterActor:content-gravity property for +more information. + +The #ClutterActor:content-gravity property is animatable. + + + + + + a #ClutterActor + + + + the #ClutterContentGravity + + + + + + Sets the policy for repeating the #ClutterActor:content of a +#ClutterActor. The behaviour is deferred to the #ClutterContent +implementation. + + + + + + a #ClutterActor + + + + the repeat policy + + + + + + Sets the minification and magnification filter to be applied when +scaling the #ClutterActor:content of a #ClutterActor. + +The #ClutterActor:minification-filter will be used when reducing +the size of the content; the #ClutterActor:magnification-filter +will be used when increasing the size of the content. + + + + + + a #ClutterActor + + + + the minification filter for the content + + + + the magnification filter for the content + + + + + + Sets the Z coordinate of @self to @depth. + +The unit used by @depth is dependant on the perspective setup. See +also clutter_stage_set_perspective(). + Use clutter_actor_set_z_position() instead. + + + + + + a #ClutterActor + + + + Z co-ord + + + + + + Sets the delay that should be applied before tweening animatable +properties. + + + + + + a #ClutterActor + + + + the delay before the start of the tweening, in milliseconds + + + + + + Sets the duration of the tweening for animatable properties +of @self for the current easing state. + + + + + + a #ClutterActor + + + + the duration of the easing, or %NULL + + + + + + Sets the easing mode for the tweening of animatable properties +of @self. + + + + + + a #ClutterActor + + + + an easing mode, excluding %CLUTTER_CUSTOM_MODE + + + + + + Sets whether an actor has a fixed position set (and will thus be +unaffected by any layout manager). + + + + + + A #ClutterActor + + + + whether to use fixed position + + + + + + Sets @flags on @self + +This function will emit notifications for the changed properties + + + + + + a #ClutterActor + + + + the flags to set + + + + + + Sets the actor's fixed position and forces its minimum and natural +size, in pixels. This means the untransformed actor will have the +given geometry. This is the same as calling clutter_actor_set_position() +and clutter_actor_set_size(). + Use clutter_actor_set_position() and + clutter_actor_set_size() instead. + + + + + + A #ClutterActor + + + + A #ClutterGeometry + + + + + + Forces a height on an actor, causing the actor's preferred width +and height (if any) to be ignored. + +If @height is -1 the actor will use its preferred height instead of +overriding it, i.e. you can "unset" the height with -1. + +This function sets both the minimum and natural size of the actor. + + + + + + A #ClutterActor + + + + Requested new height for the actor, in pixels, or -1 + + + + + + Sets the #ClutterLayoutManager delegate object that will be used to +lay out the children of @self. + +The #ClutterActor will take a reference on the passed @manager which +will be released either when the layout manager is removed, or when +the actor is destroyed. + + + + + + a #ClutterActor + + + + a #ClutterLayoutManager, or %NULL to unset it + + + + + + Sets all the components of the margin of a #ClutterActor. + + + + + + a #ClutterActor + + + + a #ClutterMargin + + + + + + Sets the margin from the bottom of a #ClutterActor. + +The #ClutterActor:margin-bottom property is animatable. + + + + + + a #ClutterActor + + + + the bottom margin + + + + + + Sets the margin from the left of a #ClutterActor. + +The #ClutterActor:margin-left property is animatable. + + + + + + a #ClutterActor + + + + the left margin + + + + + + Sets the margin from the right of a #ClutterActor. + +The #ClutterActor:margin-right property is animatable. + + + + + + a #ClutterActor + + + + the right margin + + + + + + Sets the margin from the top of a #ClutterActor. + +The #ClutterActor:margin-top property is animatable. + + + + + + a #ClutterActor + + + + the top margin + + + + + + Sets the given name to @self. The name can be used to identify +a #ClutterActor. + + + + + + A #ClutterActor + + + + Textual tag to apply to actor + + + + + + Defines the circumstances where the actor should be redirected into +an offscreen image. The offscreen image is used to flatten the +actor into a single image while painting for two main reasons. +Firstly, when the actor is painted a second time without any of its +contents changing it can simply repaint the cached image without +descending further down the actor hierarchy. Secondly, it will make +the opacity look correct even if there are overlapping primitives +in the actor. + +Caching the actor could in some cases be a performance win and in +some cases be a performance lose so it is important to determine +which value is right for an actor before modifying this value. For +example, there is never any reason to flatten an actor that is just +a single texture (such as a #ClutterTexture) because it is +effectively already cached in an image so the offscreen would be +redundant. Also if the actor contains primitives that are far apart +with a large transparent area in the middle (such as a large +CluterGroup with a small actor in the top left and a small actor in +the bottom right) then the cached image will contain the entire +image of the large area and the paint will waste time blending all +of the transparent pixels in the middle. + +The default method of implementing opacity on a container simply +forwards on the opacity to all of the children. If the children are +overlapping then it will appear as if they are two separate glassy +objects and there will be a break in the color where they +overlap. By redirecting to an offscreen buffer it will be as if the +two opaque objects are combined into one and then made transparent +which is usually what is expected. + +The image below demonstrates the difference between redirecting and +not. The image shows two Clutter groups, each containing a red and +a green rectangle which overlap. The opacity on the group is set to +128 (which is 50%). When the offscreen redirect is not used, the +red rectangle can be seen through the blue rectangle as if the two +rectangles were separately transparent. When the redirect is used +the group as a whole is transparent instead so the red rectangle is +not visible where they overlap. + +<figure id="offscreen-redirect"> + <title>Sample of using an offscreen redirect for transparency</title> + <graphic fileref="offscreen-redirect.png" format="PNG"/> +</figure> + +The default value for this property is 0, so we effectively will +never redirect an actor offscreen by default. This means that there +are times that transparent actors may look glassy as described +above. The reason this is the default is because there is a +performance trade off between quality and performance here. In many +cases the default form of glassy opacity looks good enough, but if +it's not you will need to set the +%CLUTTER_OFFSCREEN_REDIRECT_AUTOMATIC_FOR_OPACITY flag to enable +redirection for opacity. + +Custom actors that don't contain any overlapping primitives are +recommended to override the has_overlaps() virtual to return %FALSE +for maximum efficiency. + + + + + + A #ClutterActor + + + + New offscreen redirect flags for the actor. + + + + + + Sets the actor's opacity, with zero being completely transparent and +255 (0xff) being fully opaque. + +The #ClutterActor:opacity property is animatable. + + + + + + A #ClutterActor + + + + New opacity value for the actor. + + + + + + Allows overriding the calculated paint opacity (as returned by +clutter_actor_get_paint_opacity()). This is used internally by +ClutterClone and ClutterOffscreenEffect, and should be used by +actors that need to mimick those. + +In almost all cases this should not used by applications. + + + + + + a #ClutterActor + + + + the override opacity value, or -1 to reset + + + + + + Sets the parent of @self to @parent. + +This function will result in @parent acquiring a reference on @self, +eventually by sinking its floating reference first. The reference +will be released by clutter_actor_unparent(). + +This function should only be called by legacy #ClutterActor<!-- -->s +implementing the #ClutterContainer interface. + Use clutter_actor_add_child() instead. + + + + + + A #ClutterActor + + + + A new #ClutterActor parent + + + + + + Sets the position of the #ClutterActor:pivot-point around which the +scaling and rotation transformations occur. + +The pivot point's coordinates are in normalized space, with the (0, 0) +point being the top left corner of the actor, and the (1, 1) point being +the bottom right corner. + + + + + + a #ClutterActor + + + + the normalized X coordinate of the pivot point + + + + the normalized Y coordinate of the pivot point + + + + + + Sets the component on the Z axis of the #ClutterActor:pivot-point around +which the scaling and rotation transformations occur. + +The @pivot_z value is expressed as a distance along the Z axis. + + + + + + a #ClutterActor + + + + the Z coordinate of the actor's pivot point + + + + + + Sets the actor's fixed position in pixels relative to any parent +actor. + +If a layout manager is in use, this position will override the +layout manager and force a fixed position. + + + + + + A #ClutterActor + + + + New left position of actor in pixels. + + + + New top position of actor in pixels. + + + + + + Sets @actor as reactive. Reactive actors will receive events. + + + + + + a #ClutterActor + + + + whether the actor should be reactive to events + + + + + + Sets the geometry request mode of @self. + +The @mode determines the order for invoking +clutter_actor_get_preferred_width() and +clutter_actor_get_preferred_height() + + + + + + a #ClutterActor + + + + the request mode + + + + + + Sets the rotation angle of @self around the given axis. + +The rotation center coordinates used depend on the value of @axis: + + - %CLUTTER_X_AXIS requires @y and @z + - %CLUTTER_Y_AXIS requires @x and @z + - %CLUTTER_Z_AXIS requires @x and @y + +The rotation coordinates are relative to the anchor point of the +actor, set using clutter_actor_set_anchor_point(). If no anchor +point is set, the upper left corner is assumed as the origin. + Use clutter_actor_set_rotation_angle() and + clutter_actor_set_pivot_point() instead. + + + + + + a #ClutterActor + + + + the axis of rotation + + + + the angle of rotation + + + + X coordinate of the rotation center + + + + Y coordinate of the rotation center + + + + Z coordinate of the rotation center + + + + + + Sets the @angle of rotation of a #ClutterActor on the given @axis. + +This function is a convenience for setting the rotation properties +#ClutterActor:rotation-angle-x, #ClutterActor:rotation-angle-y, +and #ClutterActor:rotation-angle-z. + +The center of rotation is established by the #ClutterActor:pivot-point +property. + + + + + + a #ClutterActor + + + + the axis to set the angle one + + + + the angle of rotation, in degrees + + + + + + Scales an actor with the given factors. + +The scale transformation is relative the the #ClutterActor:pivot-point. + +The #ClutterActor:scale-x and #ClutterActor:scale-y properties are +animatable. + + + + + + A #ClutterActor + + + + double factor to scale actor by horizontally. + + + + double factor to scale actor by vertically. + + + + + + Scales an actor with the given factors around the given center +point. The center point is specified in pixels relative to the +anchor point (usually the top left corner of the actor). + +The #ClutterActor:scale-x and #ClutterActor:scale-y properties +are animatable. + Use clutter_actor_set_pivot_point() to control + the scale center + + + + + + A #ClutterActor + + + + double factor to scale actor by horizontally. + + + + double factor to scale actor by vertically. + + + + X coordinate of the center of the scaling + + + + Y coordinate of the center of the scaling + + + + + + Scales an actor with the given factors around the given +center point. The center point is specified as one of the compass +directions in #ClutterGravity. For example, setting it to north +will cause the top of the actor to remain unchanged and the rest of +the actor to expand left, right and downwards. + +The #ClutterActor:scale-x and #ClutterActor:scale-y properties are +animatable. + Use clutter_actor_set_pivot_point() to set the + scale center using normalized coordinates instead. + + + + + + A #ClutterActor + + + + double factor to scale actor by horizontally. + + + + double factor to scale actor by vertically. + + + + the location of the scale center expressed as a compass + direction. + + + + + + Scales an actor on the Z axis by the given @scale_z factor. + +The scale transformation is relative the the #ClutterActor:pivot-point. + +The #ClutterActor:scale-z property is animatable. + + + + + + a #ClutterActor + + + + the scaling factor along the Z axis + + + + + + Sets the #ClutterShader to be used when rendering @self. + +If @shader is %NULL this function will unset any currently set shader +for the actor. + +Any #ClutterEffect applied to @self will take the precedence +over the #ClutterShader set using this function. + Use #ClutterShaderEffect and + clutter_actor_add_effect() instead. + + %TRUE if the shader was successfully applied + or removed + + + + + a #ClutterActor + + + + a #ClutterShader or %NULL to unset the shader. + + + + + + Sets the value for a named parameter of the shader applied +to @actor. + Use clutter_shader_effect_set_uniform_value() instead + + + + + + a #ClutterActor + + + + the name of the parameter + + + + the value of the parameter + + + + + + Sets the value for a named float parameter of the shader applied +to @actor. + Use clutter_shader_effect_set_uniform() instead + + + + + + a #ClutterActor + + + + the name of the parameter + + + + the value of the parameter + + + + + + Sets the value for a named int parameter of the shader applied to +@actor. + Use clutter_shader_effect_set_uniform() instead + + + + + + a #ClutterActor + + + + the name of the parameter + + + + the value of the parameter + + + + + + Sets the actor's size request in pixels. This overrides any +"normal" size request the actor would have. For example +a text actor might normally request the size of the text; +this function would force a specific size instead. + +If @width and/or @height are -1 the actor will use its +"normal" size request instead of overriding it, i.e. +you can "unset" the size with -1. + +This function sets or unsets both the minimum and natural size. + + + + + + A #ClutterActor + + + + New width of actor in pixels, or -1 + + + + New height of actor in pixels, or -1 + + + + + + Sets the #ClutterTextDirection for an actor + +The passed text direction must not be %CLUTTER_TEXT_DIRECTION_DEFAULT + +If @self implements #ClutterContainer then this function will recurse +inside all the children of @self (including the internal ones). + +Composite actors not implementing #ClutterContainer, or actors requiring +special handling when the text direction changes, should connect to +the #GObject::notify signal for the #ClutterActor:text-direction property + + + + + + a #ClutterActor + + + + the text direction for @self + + + + + + Overrides the transformations of a #ClutterActor with a custom +matrix, which will be applied relative to the origin of the +actor's allocation and to the actor's pivot point. + +The #ClutterActor:transform property is animatable. + + + + + + a #ClutterActor + + + + a #ClutterMatrix, or %NULL to + unset a custom transformation + + + + + + Sets an additional translation transformation on a #ClutterActor, +relative to the #ClutterActor:pivot-point. + + + + + + a #ClutterActor + + + + the translation along the X axis + + + + the translation along the Y axis + + + + the translation along the Z axis + + + + + + Forces a width on an actor, causing the actor's preferred width +and height (if any) to be ignored. + +If @width is -1 the actor will use its preferred width request +instead of overriding it, i.e. you can "unset" the width with -1. + +This function sets both the minimum and natural size of the actor. + + + + + + A #ClutterActor + + + + Requested new width for the actor, in pixels, or -1 + + + + + + Sets the actor's X coordinate, relative to its parent, in pixels. + +Overrides any layout manager and forces a fixed position for +the actor. + +The #ClutterActor:x property is animatable. + + + + + + a #ClutterActor + + + + the actor's position on the X axis + + + + + + Sets the horizontal alignment policy of a #ClutterActor, in case the +actor received extra horizontal space. + +See also the #ClutterActor:x-align property. + + + + + + a #ClutterActor + + + + the horizontal alignment policy + + + + + + Sets whether a #ClutterActor should expand horizontally; this means +that layout manager should allocate extra space for the actor, if +possible. + +Setting an actor to expand will also make all its parent expand, so +that it's possible to build an actor tree and only set this flag on +its leaves and not on every single actor. + + + + + + a #ClutterActor + + + + whether the actor should expand horizontally + + + + + + Sets the actor's Y coordinate, relative to its parent, in pixels.# + +Overrides any layout manager and forces a fixed position for +the actor. + +The #ClutterActor:y property is animatable. + + + + + + a #ClutterActor + + + + the actor's position on the Y axis + + + + + + Sets the vertical alignment policy of a #ClutterActor, in case the +actor received extra vertical space. + +See also the #ClutterActor:y-align property. + + + + + + a #ClutterActor + + + + the vertical alignment policy + + + + + + Sets whether a #ClutterActor should expand horizontally; this means +that layout manager should allocate extra space for the actor, if +possible. + +Setting an actor to expand will also make all its parent expand, so +that it's possible to build an actor tree and only set this flag on +its leaves and not on every single actor. + + + + + + a #ClutterActor + + + + whether the actor should expand vertically + + + + + + Sets the actor's position on the Z axis. + +See #ClutterActor:z-position. + + + + + + a #ClutterActor + + + + the position on the Z axis + + + + + + Sets the rotation angle of @self around the Z axis using the center +point specified as a compass point. For example to rotate such that +the center of the actor remains static you can use +%CLUTTER_GRAVITY_CENTER. If the actor changes size the center point +will move accordingly. + Use clutter_actor_set_rotation_angle() and + clutter_actor_set_pivot_point() instead. + + + + + + a #ClutterActor + + + + the angle of rotation + + + + the center point of the rotation + + + + + + Should be called inside the implementation of the +#ClutterActor::pick virtual function in order to check whether +the actor should paint itself in pick mode or not. + +This function should never be called directly by applications. + + %TRUE if the actor should paint its silhouette, + %FALSE otherwise + + + + + A #ClutterActor + + + + + + Flags an actor to be displayed. An actor that isn't shown will not +be rendered on the stage. + +Actors are visible by default. + +If this function is called on an actor without a parent, the +#ClutterActor:show-on-set-parent will be set to %TRUE as a side +effect. + + + + + + A #ClutterActor + + + + + + Calls clutter_actor_show() on all children of an actor (if any). + Actors are visible by default + + + + + + a #ClutterActor + + + + + + This function translates screen coordinates (@x, @y) to +coordinates relative to the actor. For example, it can be used to translate +screen events from global screen coordinates into actor-local coordinates. + +The conversion can fail, notably if the transform stack results in the +actor being projected on the screen as a mere line. + +The conversion should not be expected to be pixel-perfect due to the +nature of the operation. In general the error grows when the skewing +of the actor rectangle on screen increases. + +This function can be computationally intensive. + +This function only works when the allocation is up-to-date, i.e. inside of +the #ClutterActorClass.paint() implementation + + %TRUE if conversion was successful. + + + + + A #ClutterActor + + + + x screen coordinate of the point to unproject + + + + y screen coordinate of the point to unproject + + + + return location for the unprojected x coordinance + + + + return location for the unprojected y coordinance + + + + + + Unsets the %CLUTTER_ACTOR_MAPPED flag on the actor and possibly +unmaps its children if they were mapped. + +Calling this function is not encouraged: the default #ClutterActor +implementation of #ClutterActorClass.unmap() will also unmap any +eventual children by default when their parent is unmapped. + +When overriding #ClutterActorClass.unmap(), it is mandatory to +chain up to the parent implementation. + +It is important to note that the implementation of the +#ClutterActorClass.unmap() virtual function may be called after +the #ClutterActorClass.destroy() or the #GObjectClass.dispose() +implementation, but it is guaranteed to be called before the +#GObjectClass.finalize() implementation. + + + + + + A #ClutterActor + + + + + + Removes the parent of @self. + +This will cause the parent of @self to release the reference +acquired when calling clutter_actor_set_parent(), so if you +want to keep @self you will have to acquire a reference of +your own, through g_object_ref(). + +This function should only be called by legacy #ClutterActor<!-- -->s +implementing the #ClutterContainer interface. + Use clutter_actor_remove_child() instead. + + + + + + a #ClutterActor + + + + + + Unrealization informs the actor that it may be being destroyed or +moved to another stage. The actor may want to destroy any +underlying graphics resources at this point. However it is +perfectly acceptable for it to retain the resources until the actor +is destroyed because Clutter only ever uses a single rendering +context and all of the graphics resources are valid on any stage. + +Because mapped actors must be realized, actors may not be +unrealized if they are mapped. This function hides the actor to be +sure it isn't mapped, an application-visible side effect that you +may not be expecting. + +This function should not be called by application code. + +This function should not really be in the public API, because +there isn't a good reason to call it. ClutterActor will already +unrealize things for you when it's important to do so. + +If you were using clutter_actor_unrealize() in a dispose +implementation, then don't, just chain up to ClutterActor's +dispose. + +If you were using clutter_actor_unrealize() to implement +unrealizing children of your container, then don't, ClutterActor +will already take care of that. + Actors are automatically unrealized, and nothing + requires explicit realization. + + + + + + A #ClutterActor + + + + + + Unsets @flags on @self + +This function will emit notifications for the changed properties + + + + + + a #ClutterActor + + + + the flags to unset + + + + + + Adds a #ClutterAction to the actor + + + + The allocation for the actor, in pixels + +This is property is read-only, but you might monitor it to know when an +actor moves or resizes + + + + The anchor point expressed as a #ClutterGravity + +It is highly recommended not to use #ClutterActor:anchor-x, +#ClutterActor:anchor-y, and #ClutterActor:anchor-gravity in newly +written code; the anchor point adds an additional translation that +will affect the actor's relative position with regards to its +parent, as well as the position of its children. This change needs +to always be taken into account when positioning the actor. It is +recommended to use the #ClutterActor:pivot-point property instead, +as it will affect only the transformations. + Use #ClutterActor:pivot-point instead + + + + The X coordinate of an actor's anchor point, relative to +the actor coordinate space, in pixels. + +It is highly recommended not to use #ClutterActor:anchor-x, +#ClutterActor:anchor-y, and #ClutterActor:anchor-gravity in newly +written code; the anchor point adds an additional translation that +will affect the actor's relative position with regards to its +parent, as well as the position of its children. This change needs +to always be taken into account when positioning the actor. It is +recommended to use the #ClutterActor:pivot-point property instead, +as it will affect only the transformations. + Use #ClutterActor:pivot-point instead + + + + The Y coordinate of an actor's anchor point, relative to +the actor coordinate space, in pixels + +It is highly recommended not to use #ClutterActor:anchor-x, +#ClutterActor:anchor-y, and #ClutterActor:anchor-gravity in newly +written code; the anchor point adds an additional translation that +will affect the actor's relative position with regards to its +parent, as well as the position of its children. This change needs +to always be taken into account when positioning the actor. It is +recommended to use the #ClutterActor:pivot-point property instead, +as it will affect only the transformations. + Use #ClutterActor:pivot-point instead + + + + Paints a solid fill of the actor's allocation using the specified +color. + +The #ClutterActor:background-color property is animatable. + + + + Whether the #ClutterActor:background-color property has been set. + + + + Applies a transformation matrix on each child of an actor. + +Setting this property with a #ClutterMatrix will set the +#ClutterActor:child-transform-set property to %TRUE as a side effect; +setting this property with %NULL will set the +#ClutterActor:child-transform-set property to %FALSE. + +The #ClutterActor:child-transform property is animatable. + + + + Whether the #ClutterActor:child-transform property is set. + + + + The visible region of the actor, in actor-relative coordinates + Use #ClutterActor:clip-rect instead. + + + + The visible region of the actor, in actor-relative coordinates, +expressed as a #ClutterRect. + +Setting this property to %NULL will unset the existing clip. + +Setting this property will change the #ClutterActor:has-clip +property as a side effect. + + + + Whether the clip region should track the allocated area +of the actor. + +This property is ignored if a clip area has been explicitly +set using clutter_actor_set_clip(). + + + + Adds a #ClutterConstraint to the actor + + + + The #ClutterContent implementation that controls the content +of the actor. + + + + The bounding box for the #ClutterContent used by the actor. + +The value of this property is controlled by the #ClutterActor:allocation +and #ClutterActor:content-gravity properties of #ClutterActor. + +The bounding box for the content is guaranteed to never exceed the +allocation's of the actor. + + + + The alignment that should be honoured by the #ClutterContent +set with the #ClutterActor:content property. + +Changing the value of this property will change the bounding box of +the content; you can use the #ClutterActor:content-box property to +get the position and size of the content within the actor's +allocation. + +This property is meaningful only for #ClutterContent implementations +that have a preferred size, and if the preferred size is smaller than +the actor's allocation. + +The #ClutterActor:content-gravity property is animatable. + + + + The repeat policy for the actor's #ClutterActor:content. + + + + The position of the actor on the Z axis. + +The #ClutterActor:depth property is relative to the parent's +modelview matrix. + +Setting this property will call #ClutterContainerIface.sort_depth_order() +which is usually a no-op, and it's most likely not what you want. + +The #ClutterActor:depth property is animatable. + Use #ClutterActor:z-position instead. + + + + Adds #ClutterEffect to the list of effects be applied on a #ClutterActor + + + + The actor's first child. + + + + This flag controls whether the #ClutterActor:fixed-x and +#ClutterActor:fixed-y properties are used + + + + The fixed X position of the actor in pixels. + +Writing this property sets #ClutterActor:fixed-position-set +property as well, as a side effect + + + + The fixed Y position of the actor in pixels. + +Writing this property sets the #ClutterActor:fixed-position-set +property as well, as a side effect + + + + Whether the actor has the #ClutterActor:clip property set or not + + + + Whether the actor contains the pointer of a #ClutterInputDevice +or not. + + + + Height of the actor (in pixels). If written, forces the minimum and +natural size request of the actor to the given height. If read, returns +the allocated height if available, otherwise the height request. + +The #ClutterActor:height property is animatable. + + + + The actor's last child. + + + + A delegate object for controlling the layout of the children of +an actor. + + + + + + + Whether the actor is mapped (will be painted when the stage +to which it belongs is mapped) + + + + The margin (in pixels) from the bottom of the actor. + +This property adds a margin to the actor's preferred size; the margin +will be automatically taken into account when allocating the actor. + +The #ClutterActor:margin-bottom property is animatable. + + + + The margin (in pixels) from the left of the actor. + +This property adds a margin to the actor's preferred size; the margin +will be automatically taken into account when allocating the actor. + +The #ClutterActor:margin-left property is animatable. + + + + The margin (in pixels) from the right of the actor. + +This property adds a margin to the actor's preferred size; the margin +will be automatically taken into account when allocating the actor. + +The #ClutterActor:margin-right property is animatable. + + + + The margin (in pixels) from the top of the actor. + +This property adds a margin to the actor's preferred size; the margin +will be automatically taken into account when allocating the actor. + +The #ClutterActor:margin-top property is animatable. + + + + A forced minimum height request for the actor, in pixels + +Writing this property sets the #ClutterActor:min-height-set property +as well, as a side effect. This property overrides the usual height +request of the actor. + + + + This flag controls whether the #ClutterActor:min-height property +is used + + + + A forced minimum width request for the actor, in pixels + +Writing this property sets the #ClutterActor:min-width-set property +as well, as a side effect. + +This property overrides the usual width request of the actor. + + + + This flag controls whether the #ClutterActor:min-width property +is used + + + + + + + The name of the actor + + + + A forced natural height request for the actor, in pixels + +Writing this property sets the #ClutterActor:natural-height-set +property as well, as a side effect. This property overrides the +usual height request of the actor + + + + This flag controls whether the #ClutterActor:natural-height property +is used + + + + A forced natural width request for the actor, in pixels + +Writing this property sets the #ClutterActor:natural-width-set +property as well, as a side effect. This property overrides the +usual width request of the actor + + + + This flag controls whether the #ClutterActor:natural-width property +is used + + + + Determines the conditions in which the actor will be redirected +to an offscreen framebuffer while being painted. For example this +can be used to cache an actor in a framebuffer or for improved +handling of transparent actors. See +clutter_actor_set_offscreen_redirect() for details. + + + + Opacity of an actor, between 0 (fully transparent) and +255 (fully opaque) + +The #ClutterActor:opacity property is animatable. + + + + The point around which the scaling and rotation transformations occur. + +The pivot point is expressed in normalized coordinates space, with (0, 0) +being the top left corner of the actor and (1, 1) the bottom right corner +of the actor. + +The default pivot point is located at (0, 0). + +The #ClutterActor:pivot-point property is animatable. + + + + The Z component of the #ClutterActor:pivot-point, expressed as a value +along the Z axis. + +The #ClutterActor:pivot-point-z property is animatable. + + + + The position of the origin of the actor. + +This property is a shorthand for setting and getting the +#ClutterActor:x and #ClutterActor:y properties at the same +time. + +The #ClutterActor:position property is animatable. + + + + Whether the actor is reactive to events or not + +Only reactive actors will emit event-related signals + + + + Whether the actor has been realized + + + + Request mode for the #ClutterActor. The request mode determines the +type of geometry management used by the actor, either height for width +(the default) or width for height. + +For actors implementing height for width, the parent container should get +the preferred width first, and then the preferred height for that width. + +For actors implementing width for height, the parent container should get +the preferred height first, and then the preferred width for that height. + +For instance: + +|[<!-- language="C" --> + ClutterRequestMode mode; + gfloat natural_width, min_width; + gfloat natural_height, min_height; + + mode = clutter_actor_get_request_mode (child); + if (mode == CLUTTER_REQUEST_HEIGHT_FOR_WIDTH) + { + clutter_actor_get_preferred_width (child, -1, + &min_width, + &natural_width); + clutter_actor_get_preferred_height (child, natural_width, + &min_height, + &natural_height); + } + else if (mode == CLUTTER_REQUEST_WIDTH_FOR_HEIGHT) + { + clutter_actor_get_preferred_height (child, -1, + &min_height, + &natural_height); + clutter_actor_get_preferred_width (child, natural_height, + &min_width, + &natural_width); + } + else if (mode == CLUTTER_REQUEST_CONTENT_SIZE) + { + ClutterContent *content = clutter_actor_get_content (child); + + min_width, min_height = 0; + natural_width = natural_height = 0; + + if (content != NULL) + clutter_content_get_preferred_size (content, &natural_width, &natural_height); + } +]| + +will retrieve the minimum and natural width and height depending on the +preferred request mode of the #ClutterActor "child". + +The clutter_actor_get_preferred_size() function will implement this +check for you. + + + + The rotation angle on the X axis. + +The #ClutterActor:rotation-angle-x property is animatable. + + + + The rotation angle on the Y axis + +The #ClutterActor:rotation-angle-y property is animatable. + + + + The rotation angle on the Z axis + +The #ClutterActor:rotation-angle-z property is animatable. + + + + The rotation center on the X axis. + Use #ClutterActor:pivot-point instead + + + + The rotation center on the Y axis. + Use #ClutterActor:pivot-point instead + + + + The rotation center on the Z axis. + Use #ClutterActor:pivot-point instead + + + + The rotation center on the Z axis expressed as a #ClutterGravity. + Use #ClutterActor:pivot-point instead + + + + The horizontal center point for scaling + Use #ClutterActor:pivot-point instead + + + + The vertical center point for scaling + Use #ClutterActor:pivot-point instead + + + + The center point for scaling expressed as a #ClutterGravity + Use #ClutterActor:pivot-point instead + + + + The horizontal scale of the actor. + +The #ClutterActor:scale-x property is animatable. + + + + The vertical scale of the actor. + +The #ClutterActor:scale-y property is animatable. + + + + The scale factor of the actor along the Z axis. + +The #ClutterActor:scale-y property is animatable. + + + + If %TRUE, the actor is automatically shown when parented. + +Calling clutter_actor_hide() on an actor which has not been +parented will set this property to %FALSE as a side effect. + + + + The size of the actor. + +This property is a shorthand for setting and getting the +#ClutterActor:width and #ClutterActor:height at the same time. + +The #ClutterActor:size property is animatable. + + + + The direction of the text inside a #ClutterActor. + + + + Overrides the transformations of a #ClutterActor with a custom +matrix. + +The matrix specified by the #ClutterActor:transform property is +applied to the actor and its children relative to the actor's +#ClutterActor:allocation and #ClutterActor:pivot-point. + +Application code should rarely need to use this function directly. + +Setting this property with a #ClutterMatrix will set the +#ClutterActor:transform-set property to %TRUE as a side effect; +setting this property with %NULL will set the +#ClutterActor:transform-set property to %FALSE. + +The #ClutterActor:transform property is animatable. + + + + Whether the #ClutterActor:transform property is set. + + + + An additional translation applied along the X axis, relative +to the actor's #ClutterActor:pivot-point. + +The #ClutterActor:translation-x property is animatable. + + + + An additional translation applied along the Y axis, relative +to the actor's #ClutterActor:pivot-point. + +The #ClutterActor:translation-y property is animatable. + + + + An additional translation applied along the Z axis, relative +to the actor's #ClutterActor:pivot-point. + +The #ClutterActor:translation-z property is animatable. + + + + Whether the actor is set to be visible or not + +See also #ClutterActor:mapped + + + + Width of the actor (in pixels). If written, forces the minimum and +natural size request of the actor to the given width. If read, returns +the allocated width if available, otherwise the width request. + +The #ClutterActor:width property is animatable. + + + + X coordinate of the actor in pixels. If written, forces a fixed +position for the actor. If read, returns the fixed position if any, +otherwise the allocation if available, otherwise 0. + +The #ClutterActor:x property is animatable. + + + + The alignment of an actor on the X axis, if the actor has been given +extra space for its allocation. See also the #ClutterActor:x-expand +property. + + + + Whether a layout manager should assign more space to the actor on +the X axis. + + + + Y coordinate of the actor in pixels. If written, forces a fixed +position for the actor. If read, returns the fixed position if +any, otherwise the allocation if available, otherwise 0. + +The #ClutterActor:y property is animatable. + + + + The alignment of an actor on the Y axis, if the actor has been given +extra space for its allocation. + + + + Whether a layout manager should assign more space to the actor on +the Y axis. + + + + The actor's position on the Z axis, relative to the parent's +transformations. + +Positive values will bring the actor's position nearer to the user, +whereas negative values will bring the actor's position farther from +the user. + +The #ClutterActor:z-position does not affect the paint or allocation +order. + +The #ClutterActor:z-position property is animatable. + + + + + + + #ClutterActorFlags + + + + + + + + + + The ::allocation-changed signal is emitted when the +#ClutterActor:allocation property changes. Usually, application +code should just use the notifications for the :allocation property +but if you want to track the allocation flags as well, for instance +to know whether the absolute origin of @actor changed, then you might +want use this signal instead. + + + + + + a #ClutterActorBox with the new allocation + + + + #ClutterAllocationFlags for the allocation + + + + + + The ::button-press-event signal is emitted each time a mouse button +is pressed on @actor. + + %TRUE if the event has been handled by the actor, + or %FALSE to continue the emission. + + + + + a #ClutterButtonEvent + + + + + + The ::button-release-event signal is emitted each time a mouse button +is released on @actor. + + %TRUE if the event has been handled by the actor, + or %FALSE to continue the emission. + + + + + a #ClutterButtonEvent + + + + + + The ::captured-event signal is emitted when an event is captured +by Clutter. This signal will be emitted starting from the top-level +container (the #ClutterStage) to the actor which received the event +going down the hierarchy. This signal can be used to intercept every +event before the specialized events (like +ClutterActor::button-press-event or ::key-released-event) are +emitted. + + %TRUE if the event has been handled by the actor, + or %FALSE to continue the emission. + + + + + a #ClutterEvent + + + + + + The ::destroy signal notifies that all references held on the +actor which emitted it should be released. + +The ::destroy signal should be used by all holders of a reference +on @actor. + +This signal might result in the finalization of the #ClutterActor +if all references are released. + +Composite actors and actors implementing the #ClutterContainer +interface should override the default implementation of the +class handler of this signal and call clutter_actor_destroy() on +their children. When overriding the default class handler, it is +required to chain up to the parent's implementation. + + + + + + The ::enter-event signal is emitted when the pointer enters the @actor + + %TRUE if the event has been handled by the actor, + or %FALSE to continue the emission. + + + + + a #ClutterCrossingEvent + + + + + + The ::event signal is emitted each time an event is received +by the @actor. This signal will be emitted on every actor, +following the hierarchy chain, until it reaches the top-level +container (the #ClutterStage). + + %TRUE if the event has been handled by the actor, + or %FALSE to continue the emission. + + + + + a #ClutterEvent + + + + + + The ::hide signal is emitted when an actor is no longer rendered +on the stage. + + + + + + The ::key-focus-in signal is emitted when @actor receives key focus. + + + + + + The ::key-focus-out signal is emitted when @actor loses key focus. + + + + + + The ::key-press-event signal is emitted each time a keyboard button +is pressed while @actor has key focus (see clutter_stage_set_key_focus()). + + %TRUE if the event has been handled by the actor, + or %FALSE to continue the emission. + + + + + a #ClutterKeyEvent + + + + + + The ::key-release-event signal is emitted each time a keyboard button +is released while @actor has key focus (see +clutter_stage_set_key_focus()). + + %TRUE if the event has been handled by the actor, + or %FALSE to continue the emission. + + + + + a #ClutterKeyEvent + + + + + + The ::leave-event signal is emitted when the pointer leaves the @actor. + + %TRUE if the event has been handled by the actor, + or %FALSE to continue the emission. + + + + + a #ClutterCrossingEvent + + + + + + The ::motion-event signal is emitted each time the mouse pointer is +moved over @actor. + + %TRUE if the event has been handled by the actor, + or %FALSE to continue the emission. + + + + + a #ClutterMotionEvent + + + + + + The ::paint signal is emitted each time an actor is being painted. + +Subclasses of #ClutterActor should override the #ClutterActorClass.paint +virtual function paint themselves in that function. + +It is strongly discouraged to connect a signal handler to +the #ClutterActor::paint signal; if you want to change the paint +sequence of an existing #ClutterActor instance, either create a new +#ClutterActor class and override the #ClutterActorClass.paint virtual +function, or use a #ClutterEffect. The #ClutterActor::paint signal +will be removed in a future version of Clutter. + Override the #ClutterActorClass.paint virtual + function, use a #ClutterContent implementation, or a #ClutterEffect + instead of connecting to this signal. + + + + + + This signal is emitted when the parent of the actor changes. + + + + + + the previous parent of the actor, or %NULL + + + + + + The ::pick signal is emitted each time an actor is being painted +in "pick mode". The pick mode is used to identify the actor during +the event handling phase, or by clutter_stage_get_actor_at_pos(). +The actor should paint its shape using the passed @pick_color. + +Subclasses of #ClutterActor should override the class signal handler +and paint themselves in that function. + +It is possible to connect a handler to the ::pick signal in order +to set up some custom aspect of a paint in pick mode. + Override the #ClutterActorClass.pick virtual function + instead. + + + + + + the #ClutterColor to be used when picking + + + + + + The ::queue_redraw signal is emitted when clutter_actor_queue_redraw() +is called on @origin. + +The default implementation for #ClutterActor chains up to the +parent actor and queues a redraw on the parent, thus "bubbling" +the redraw queue up through the actor graph. The default +implementation for #ClutterStage queues a clutter_stage_ensure_redraw() +in a main loop idle handler. + +Note that the @origin actor may be the stage, or a container; it +does not have to be a leaf node in the actor graph. + +Toolkits embedding a #ClutterStage which require a redraw and +relayout cycle can stop the emission of this signal using the +GSignal API, redraw the UI and then call clutter_stage_ensure_redraw() +themselves, like: + +|[<!-- language="C" --> + static void + on_redraw_complete (gpointer data) + { + ClutterStage *stage = data; + + // execute the Clutter drawing pipeline + clutter_stage_ensure_redraw (stage); + } + + static void + on_stage_queue_redraw (ClutterStage *stage) + { + // this prevents the default handler to run + g_signal_stop_emission_by_name (stage, "queue-redraw"); + + // queue a redraw with the host toolkit and call + // a function when the redraw has been completed + queue_a_redraw (G_CALLBACK (on_redraw_complete), stage); + } +]| + +Note: This signal is emitted before the Clutter paint +pipeline is executed. If you want to know when the pipeline has +been completed you should use clutter_threads_add_repaint_func() +or clutter_threads_add_repaint_func_full(). + + + + + + the actor which initiated the redraw request + + + + + + The ::queue_layout signal is emitted when clutter_actor_queue_relayout() +is called on an actor. + +The default implementation for #ClutterActor chains up to the +parent actor and queues a relayout on the parent, thus "bubbling" +the relayout queue up through the actor graph. + +The main purpose of this signal is to allow relayout to be propagated +properly in the procense of #ClutterClone actors. Applications will +not normally need to connect to this signal. + + + + + + The ::realize signal is emitted each time an actor is being +realized. + The signal should not be used in newly + written code + + + + + + The ::scroll-event signal is emitted each time the mouse is +scrolled on @actor + + %TRUE if the event has been handled by the actor, + or %FALSE to continue the emission. + + + + + a #ClutterScrollEvent + + + + + + The ::show signal is emitted when an actor is visible and +rendered on the stage. + + + + + + The ::touch-event signal is emitted each time a touch +begin/end/update/cancel event. + + %CLUTTER_EVENT_STOP if the event has been handled by + the actor, or %CLUTTER_EVENT_PROPAGATE to continue the emission. + + + + + a #ClutterEvent + + + + + + The ::transition-stopped signal is emitted once a transition +is stopped; a transition is stopped once it reached its total +duration (including eventual repeats), it has been stopped +using clutter_timeline_stop(), or it has been removed from the +transitions applied on @actor, using clutter_actor_remove_transition(). + + + + + + the name of the transition + + + + whether the transition was finished, or stopped + + + + + + The ::transitions-completed signal is emitted once all transitions +involving @actor are complete. + + + + + + The ::unrealize signal is emitted each time an actor is being +unrealized. + The signal should not be used in newly + written code + + + + + + + Controls how a #ClutterActor should align itself inside the extra space +assigned to it during the allocation. + +Alignment only matters if the allocated space given to an actor is +bigger than its natural size; for example, when the #ClutterActor:x-expand +or the #ClutterActor:y-expand properties of #ClutterActor are set to %TRUE. + + Stretch to cover the whole allocated space + + + Snap to left or top side, leaving space + to the right or bottom. For horizontal layouts, in right-to-left + locales this should be reversed. + + + Center the actor inside the allocation + + + Snap to right or bottom side, leaving space + to the left or top. For horizontal layouts, in right-to-left locales + this should be reversed. + + + + Bounding box of an actor. The coordinates of the top left and right bottom +corners of an actor. The coordinates of the two points are expressed in +pixels with sub-pixel precision + + X coordinate of the top left corner + + + + Y coordinate of the top left corner + + + + X coordinate of the bottom right corner + + + + Y coordinate of the bottom right corner + + + + Allocates a new #ClutterActorBox using the passed coordinates +for the top left and bottom right points. + +This function is the logical equivalent of: + +|[ + clutter_actor_box_init (clutter_actor_box_alloc (), + x_1, y_1, + x_2, y_2); +]| + + the newly allocated #ClutterActorBox. + Use clutter_actor_box_free() to free the resources + + + + + X coordinate of the top left point + + + + Y coordinate of the top left point + + + + X coordinate of the bottom right point + + + + Y coordinate of the bottom right point + + + + + + Clamps the components of @box to the nearest integer + + + + + + the #ClutterActorBox to clamp + + + + + + Checks whether a point with @x, @y coordinates is contained +withing @box + + %TRUE if the point is contained by the #ClutterActorBox + + + + + a #ClutterActorBox + + + + X coordinate of the point + + + + Y coordinate of the point + + + + + + Copies @box + + a newly allocated copy of #ClutterActorBox. Use + clutter_actor_box_free() to free the allocated resources + + + + + a #ClutterActorBox + + + + + + Checks @box_a and @box_b for equality + + %TRUE if the passed #ClutterActorBox are equal + + + + + a #ClutterActorBox + + + + a #ClutterActorBox + + + + + + Frees a #ClutterActorBox allocated using clutter_actor_box_new() +or clutter_actor_box_copy() + + + + + + a #ClutterActorBox + + + + + + Calculates the bounding box represented by the four vertices; for details +of the vertex array see clutter_actor_get_abs_allocation_vertices(). + + + + + + a #ClutterActorBox + + + + array of four #ClutterVertex + + + + + + + + Retrieves the area of @box + + the area of a #ClutterActorBox, in pixels + + + + + a #ClutterActorBox + + + + + + Retrieves the height of the @box + + the height of the box + + + + + a #ClutterActorBox + + + + + + Retrieves the origin of @box + + + + + + a #ClutterActorBox + + + + return location for the X coordinate, or %NULL + + + + return location for the Y coordinate, or %NULL + + + + + + Retrieves the size of @box + + + + + + a #ClutterActorBox + + + + return location for the width, or %NULL + + + + return location for the height, or %NULL + + + + + + Retrieves the width of the @box + + the width of the box + + + + + a #ClutterActorBox + + + + + + Retrieves the X coordinate of the origin of @box + + the X coordinate of the origin + + + + + a #ClutterActorBox + + + + + + Retrieves the Y coordinate of the origin of @box + + the Y coordinate of the origin + + + + + a #ClutterActorBox + + + + + + Initializes @box with the given coordinates. + + the initialized #ClutterActorBox + + + + + a #ClutterActorBox + + + + X coordinate of the top left point + + + + Y coordinate of the top left point + + + + X coordinate of the bottom right point + + + + Y coordinate of the bottom right point + + + + + + Initializes @box with the given origin and size. + + + + + + a #ClutterActorBox + + + + X coordinate of the origin + + + + Y coordinate of the origin + + + + width of the box + + + + height of the box + + + + + + Interpolates between @initial and @final #ClutterActorBox<!-- -->es +using @progress + + + + + + the initial #ClutterActorBox + + + + the final #ClutterActorBox + + + + the interpolation progress + + + + return location for the interpolation + + + + + + Changes the origin of @box, maintaining the size of the #ClutterActorBox. + + + + + + a #ClutterActorBox + + + + the X coordinate of the new origin + + + + the Y coordinate of the new origin + + + + + + Sets the size of @box, maintaining the origin of the #ClutterActorBox. + + + + + + a #ClutterActorBox + + + + the new width + + + + the new height + + + + + + Unions the two boxes @a and @b and stores the result in @result. + + + + + + the first #ClutterActorBox + + + + the second #ClutterActorBox + + + + the #ClutterActorBox representing a union + of @a and @b + + + + + + Allocates a new #ClutterActorBox. + + the newly allocated #ClutterActorBox. + Use clutter_actor_box_free() to free its resources + + + + + + Base class for actors. + + + + + + + + + + + A #ClutterActor + + + + + + + + + + + + + a #ClutterActor + + + + + + + + + + + + + A #ClutterActor + + + + + + + + + + + + + a #ClutterActor + + + + + + + + + + + + + A #ClutterActor + + + + + + + + + + + + + A #ClutterActor + + + + + + + + + + + + + A #ClutterActor + + + + + + + + + + + + + A #ClutterActor + + + + + + + + + + + + + A #ClutterActor + + + + + + + + + + + + + + + + + + + + + + + + + + + + a #ClutterActor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A #ClutterActor + + + + available height when computing the preferred width, + or a negative value to indicate that no height is defined + + + + return location for minimum width, + or %NULL + + + + return location for the natural + width, or %NULL + + + + + + + + + + + + + A #ClutterActor + + + + available width to assume in computing desired height, + or a negative value to indicate that no width is defined + + + + return location for minimum height, + or %NULL + + + + return location for natural + height, or %NULL + + + + + + + + + + + + + A #ClutterActor + + + + new allocation of the actor, in parent-relative coordinates + + + + flags that control the allocation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A #ClutterActor + + + + + + + + + the #AtkObject associated with @actor + + + + + a #ClutterActor + + + + + + + + + + + + + + + + + + + + + + + + %TRUE if the actor may have overlapping primitives, and + %FALSE otherwise + + + + + A #ClutterActor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a #ClutterActor using the @item in the model. + +The usual way to implement this function is to create a #ClutterActor +instance and then bind the #GObject properties to the actor properties +of interest, using g_object_bind_property(). This way, when the @item +in the #GListModel changes, the #ClutterActor changes as well. + + The newly created child #ClutterActor + + + + + the item in the model + + + + Data passed to clutter_actor_bind_model() + + + + + + Flags used to signal the state of an actor. + + the actor will be painted (is visible, and inside + a toplevel, and all parents visible) + + + the resources associated to the actor have been + allocated + + + the actor 'reacts' to mouse events emmitting event + signals + + + the actor has been shown by the application program + + + the actor provides an explicit layout management + policy for its children; this flag will prevent Clutter from automatic + queueing of relayout and will defer all layouting to the actor itself + + + + An iterator structure that allows to efficiently iterate over a +section of the scene graph. + +The contents of the #ClutterActorIter structure +are private and should only be accessed using the provided API. + + + + + + + + + + + + + + + + + Safely destroys the #ClutterActor currently pointer to by the iterator +from its parent. + +This function can only be called after clutter_actor_iter_next() or +clutter_actor_iter_prev() returned %TRUE, and cannot be called more +than once for the same actor. + +This function will call clutter_actor_destroy() internally. + + + + + + a #ClutterActorIter + + + + + + Initializes a #ClutterActorIter, which can then be used to iterate +efficiently over a section of the scene graph, and associates it +with @root. + +Modifying the scene graph section that contains @root will invalidate +the iterator. + +|[<!-- language="C" --> + ClutterActorIter iter; + ClutterActor *child; + + clutter_actor_iter_init (&iter, container); + while (clutter_actor_iter_next (&iter, &child)) + { + // do something with child + } +]| + + + + + + a #ClutterActorIter + + + + a #ClutterActor + + + + + + Checks whether a #ClutterActorIter is still valid. + +An iterator is considered valid if it has been initialized, and +if the #ClutterActor that it refers to hasn't been modified after +the initialization. + + %TRUE if the iterator is valid, and %FALSE otherwise + + + + + a #ClutterActorIter + + + + + + Advances the @iter and retrieves the next child of the root #ClutterActor +that was used to initialize the #ClutterActorIterator. + +If the iterator can advance, this function returns %TRUE and sets the +@child argument. + +If the iterator cannot advance, this function returns %FALSE, and +the contents of @child are undefined. + + %TRUE if the iterator could advance, and %FALSE otherwise. + + + + + a #ClutterActorIter + + + + return location for a #ClutterActor + + + + + + Advances the @iter and retrieves the previous child of the root +#ClutterActor that was used to initialize the #ClutterActorIterator. + +If the iterator can advance, this function returns %TRUE and sets the +@child argument. + +If the iterator cannot advance, this function returns %FALSE, and +the contents of @child are undefined. + + %TRUE if the iterator could advance, and %FALSE otherwise. + + + + + a #ClutterActorIter + + + + return location for a #ClutterActor + + + + + + Safely removes the #ClutterActor currently pointer to by the iterator +from its parent. + +This function can only be called after clutter_actor_iter_next() or +clutter_actor_iter_prev() returned %TRUE, and cannot be called more +than once for the same actor. + +This function will call clutter_actor_remove_child() internally. + + + + + + a #ClutterActorIter + + + + + + + The #ClutterActorMeta structure contains only +private data and should be accessed using the provided API + + Virtual function, called when @meta is attached or detached +from a #ClutterActor. + + + + + + a #ClutterActorMeta + + + + the actor attached to @meta, or %NULL + + + + + + Retrieves a pointer to the #ClutterActor that owns @meta + + a pointer to a #ClutterActor or %NULL + + + + + a #ClutterActorMeta + + + + + + Retrieves whether @meta is enabled + + %TRUE if the #ClutterActorMeta instance is enabled + + + + + a #ClutterActorMeta + + + + + + Retrieves the name set using clutter_actor_meta_set_name() + + the name of the #ClutterActorMeta + instance, or %NULL if none was set. The returned string is owned + by the #ClutterActorMeta instance and it should not be modified + or freed + + + + + a #ClutterActorMeta + + + + + + Sets whether @meta should be enabled or not + + + + + + a #ClutterActorMeta + + + + whether @meta is enabled + + + + + + Sets the name of @meta + +The name can be used to identify the #ClutterActorMeta instance + + + + + + a #ClutterActorMeta + + + + the name of @meta + + + + + + The #ClutterActor attached to the #ClutterActorMeta instance + + + + Whether or not the #ClutterActorMeta is enabled + + + + The unique name to access the #ClutterActorMeta + + + + + + + + + + + The #ClutterActorMetaClass structure contains +only private data + + + + + + + + + + + a #ClutterActorMeta + + + + the actor attached to @meta, or %NULL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Specifies the axis on which #ClutterAlignConstraint should maintain +the alignment. + + Maintain the alignment on the X axis + + + Maintain the alignment on the Y axis + + + Maintain the alignment on both the X and Y axis + + + + #ClutterAlignConstraint is an opaque structure +whose members cannot be directly accesses + + Creates a new constraint, aligning a #ClutterActor's position with +regards of the size of the actor to @source, with the given +alignment @factor + + the newly created #ClutterAlignConstraint + + + + + the #ClutterActor to use as the source of the + alignment, or %NULL + + + + the axis to be used to compute the alignment + + + + the alignment factor, between 0.0 and 1.0 + + + + + + Retrieves the value set using clutter_align_constraint_set_align_axis() + + the alignment axis + + + + + a #ClutterAlignConstraint + + + + + + Retrieves the factor set using clutter_align_constraint_set_factor() + + the alignment factor + + + + + a #ClutterAlignConstraint + + + + + + Retrieves the source of the alignment + + the #ClutterActor used as the source + of the alignment + + + + + a #ClutterAlignConstraint + + + + + + Sets the axis to which the alignment refers to + + + + + + a #ClutterAlignConstraint + + + + the axis to which the alignment refers to + + + + + + Sets the alignment factor of the constraint + +The factor depends on the #ClutterAlignConstraint:align-axis property +and it is a value between 0.0 (meaning left, when +#ClutterAlignConstraint:align-axis is set to %CLUTTER_ALIGN_X_AXIS; or +meaning top, when #ClutterAlignConstraint:align-axis is set to +%CLUTTER_ALIGN_Y_AXIS) and 1.0 (meaning right, when +#ClutterAlignConstraint:align-axis is set to %CLUTTER_ALIGN_X_AXIS; or +meaning bottom, when #ClutterAlignConstraint:align-axis is set to +%CLUTTER_ALIGN_Y_AXIS). A value of 0.5 aligns in the middle in either +cases + + + + + + a #ClutterAlignConstraint + + + + the alignment factor, between 0.0 and 1.0 + + + + + + Sets the source of the alignment constraint + + + + + + a #ClutterAlignConstraint + + + + a #ClutterActor, or %NULL to unset the source + + + + + + The axis to be used to compute the alignment + + + + The alignment factor, as a normalized value between 0.0 and 1.0 + +The factor depends on the #ClutterAlignConstraint:align-axis property: +with an align-axis value of %CLUTTER_ALIGN_X_AXIS, 0.0 means left and +1.0 means right; with a value of %CLUTTER_ALIGN_Y_AXIS, 0.0 means top +and 1.0 means bottom. + + + + The #ClutterActor used as the source for the alignment. + +The #ClutterActor must not be a child or a grandchild of the actor +using the constraint. + + + + + + + Flags passed to the #ClutterActorClass.allocate() virtual function +and to the clutter_actor_allocate() function. + + No flag set + + + Whether the absolute origin of the + actor has changed; this implies that any ancestor of the actor has + been moved. + + + Whether the allocation should be delegated + to the #ClutterLayoutManager instance stored inside the + #ClutterActor:layout-manager property of #ClutterActor. This flag + should only be used if you are subclassing #ClutterActor and + overriding the #ClutterActorClass.allocate() virtual function, but + you wish to use the default implementation of the virtual function + inside #ClutterActor. Added in Clutter 1.10. + + + + #ClutterAlpha combines a #ClutterTimeline and a function. +The contents of the #ClutterAlpha structure are private and should +only be accessed using the provided API. + Use #ClutterTimeline instead + + + Creates a new #ClutterAlpha instance. You must set a function +to compute the alpha value using clutter_alpha_set_func() and +bind a #ClutterTimeline object to the #ClutterAlpha instance +using clutter_alpha_set_timeline(). + +You should use the newly created #ClutterAlpha instance inside +a #ClutterBehaviour object. + Use #ClutterTimeline instead + + the newly created empty #ClutterAlpha instance. + + + + + Creates a new #ClutterAlpha instance and sets the timeline +and animation mode. + +See also clutter_alpha_set_timeline() and clutter_alpha_set_mode(). + Use #ClutterTimeline instead + + the newly created #ClutterAlpha + + + + + #ClutterTimeline timeline + + + + animation mode + + + + + + Creates a new #ClutterAlpha instances and sets the timeline +and the alpha function. + +This function will not register @func as a global alpha function. + +See also clutter_alpha_set_timeline() and clutter_alpha_set_func(). + Use #ClutterTimeline instead + + the newly created #ClutterAlpha + + + + + a #ClutterTimeline + + + + a #ClutterAlphaFunc + + + + data to pass to the function, or %NULL + + + + function to call when removing the alpha function, or %NULL + + + + + + #GClosure variant of clutter_alpha_register_func(). + +Registers a global alpha function and returns its logical id +to be used by clutter_alpha_set_mode() or by #ClutterAnimation. + +The logical id is always greater than %CLUTTER_ANIMATION_LAST. + There is no direct replacement for this + function. Use clutter_timeline_set_progress_func() on each + specific #ClutterTimeline instance + + the logical id of the alpha function + + + + + a #GClosure + + + + + + Registers a global alpha function and returns its logical id +to be used by clutter_alpha_set_mode() or by #ClutterAnimation. + +The logical id is always greater than %CLUTTER_ANIMATION_LAST. + There is no direct replacement for this + function. Use clutter_timeline_set_progress_func() on each + specific #ClutterTimeline instance + + the logical id of the alpha function + + + + + a #ClutterAlphaFunc + + + + user data to pass to @func, or %NULL + + + + + + Query the current alpha value. + Use clutter_timeline_get_progress() + + The current alpha value for the alpha + + + + + A #ClutterAlpha + + + + + + Retrieves the #ClutterAnimationMode used by @alpha. + Use #ClutterTimeline instead + + the animation mode + + + + + a #ClutterAlpha + + + + + + Gets the #ClutterTimeline bound to @alpha. + Use #ClutterTimeline directlry + + a #ClutterTimeline instance + + + + + A #ClutterAlpha + + + + + + Sets the #GClosure used to compute the alpha value at each +frame of the #ClutterTimeline bound to @alpha. + Use clutter_timeline_set_progress_func() + + + + + + A #ClutterAlpha + + + + A #GClosure + + + + + + Sets the #ClutterAlphaFunc function used to compute +the alpha value at each frame of the #ClutterTimeline +bound to @alpha. + +This function will not register @func as a global alpha function. + Use clutter_timeline_set_progress_func() + + + + + + A #ClutterAlpha + + + + A #ClutterAlphaFunc + + + + user data to be passed to the alpha function, or %NULL + + + + notify function used when disposing the alpha function + + + + + + Sets the progress function of @alpha using the symbolic value +of @mode, as taken by the #ClutterAnimationMode enumeration or +using the value returned by clutter_alpha_register_func(). + Use #ClutterTimeline and + clutter_timeline_set_progress_mode() instead + + + + + + a #ClutterAlpha + + + + a #ClutterAnimationMode + + + + + + Binds @alpha to @timeline. + Use #ClutterTimeline directly + + + + + + A #ClutterAlpha + + + + A #ClutterTimeline + + + + + + The alpha value as computed by the alpha function. The linear +interval is 0.0 to 1.0, but the Alpha allows overshooting by +one unit in each direction, so the valid interval is -1.0 to 2.0. + Use #ClutterTimeline::new-frame and + clutter_timeline_get_progress() instead + + + + The progress function logical id - either a value from the +#ClutterAnimationMode enumeration or a value returned by +clutter_alpha_register_func(). + +If %CLUTTER_CUSTOM_MODE is used then the function set using +clutter_alpha_set_closure() or clutter_alpha_set_func() +will be used. + Use #ClutterTimeline:progress-mode + + + + A #ClutterTimeline instance used to drive the alpha function. + + + + + + + + + + + Base class for #ClutterAlpha + Use #ClutterTimeline instead + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A function returning a value depending on the position of +the #ClutterTimeline bound to @alpha. + Use #ClutterTimelineProgressFunc instead. + + a floating point value + + + + + a #ClutterAlpha + + + + user data passed to the function + + + + + + + + + + + + + + + + + #ClutterAnimatable is an opaque structure whose members cannot be directly +accessed + + Calls the animate_property() virtual function for @animatable. + +The @initial_value and @final_value #GValue<!-- -->s must contain +the same type; @value must have been initialized to the same +type of @initial_value and @final_value. + +All implementation of the #ClutterAnimatable interface must +implement this function. + Use clutter_animatable_interpolate_value() + instead + + %TRUE if the value has been validated and can + be applied to the #ClutterAnimatable, and %FALSE otherwise + + + + + a #ClutterAnimatable + + + + a #ClutterAnimation + + + + the name of the animated property + + + + the initial value of the animation interval + + + + the final value of the animation interval + + + + the progress factor + + + + return location for the animation value + + + + + + Finds the #GParamSpec for @property_name + + The #GParamSpec for the given property + or %NULL + + + + + a #ClutterAnimatable + + + + the name of the animatable property to find + + + + + + Retrieves the current state of @property_name and sets @value with it + + + + + + a #ClutterAnimatable + + + + the name of the animatable property to retrieve + + + + a #GValue initialized to the type of the property to retrieve + + + + + + Asks a #ClutterAnimatable implementation to interpolate a +a named property between the initial and final values of +a #ClutterInterval, using @progress as the interpolation +value, and store the result inside @value. + +This function should be used for every property animation +involving #ClutterAnimatable<!-- -->s. + +This function replaces clutter_animatable_animate_property(). + + %TRUE if the interpolation was successful, + and %FALSE otherwise + + + + + a #ClutterAnimatable + + + + the name of the property to interpolate + + + + a #ClutterInterval with the animation range + + + + the progress to use to interpolate between the + initial and final values of the @interval + + + + return location for an initialized #GValue + using the same type of the @interval + + + + + + Sets the current state of @property_name to @value + + + + + + a #ClutterAnimatable + + + + the name of the animatable property to set + + + + the value of the animatable property to set + + + + + + Calls the animate_property() virtual function for @animatable. + +The @initial_value and @final_value #GValue<!-- -->s must contain +the same type; @value must have been initialized to the same +type of @initial_value and @final_value. + +All implementation of the #ClutterAnimatable interface must +implement this function. + Use clutter_animatable_interpolate_value() + instead + + %TRUE if the value has been validated and can + be applied to the #ClutterAnimatable, and %FALSE otherwise + + + + + a #ClutterAnimatable + + + + a #ClutterAnimation + + + + the name of the animated property + + + + the initial value of the animation interval + + + + the final value of the animation interval + + + + the progress factor + + + + return location for the animation value + + + + + + Finds the #GParamSpec for @property_name + + The #GParamSpec for the given property + or %NULL + + + + + a #ClutterAnimatable + + + + the name of the animatable property to find + + + + + + Retrieves the current state of @property_name and sets @value with it + + + + + + a #ClutterAnimatable + + + + the name of the animatable property to retrieve + + + + a #GValue initialized to the type of the property to retrieve + + + + + + Asks a #ClutterAnimatable implementation to interpolate a +a named property between the initial and final values of +a #ClutterInterval, using @progress as the interpolation +value, and store the result inside @value. + +This function should be used for every property animation +involving #ClutterAnimatable<!-- -->s. + +This function replaces clutter_animatable_animate_property(). + + %TRUE if the interpolation was successful, + and %FALSE otherwise + + + + + a #ClutterAnimatable + + + + the name of the property to interpolate + + + + a #ClutterInterval with the animation range + + + + the progress to use to interpolate between the + initial and final values of the @interval + + + + return location for an initialized #GValue + using the same type of the @interval + + + + + + Sets the current state of @property_name to @value + + + + + + a #ClutterAnimatable + + + + the name of the animatable property to set + + + + the value of the animatable property to set + + + + + + + Base interface for #GObject<!-- -->s that can be animated by a +a #ClutterAnimation. + + + + + + + %TRUE if the value has been validated and can + be applied to the #ClutterAnimatable, and %FALSE otherwise + + + + + a #ClutterAnimatable + + + + a #ClutterAnimation + + + + the name of the animated property + + + + the initial value of the animation interval + + + + the final value of the animation interval + + + + the progress factor + + + + return location for the animation value + + + + + + + + + The #GParamSpec for the given property + or %NULL + + + + + a #ClutterAnimatable + + + + the name of the animatable property to find + + + + + + + + + + + + + a #ClutterAnimatable + + + + the name of the animatable property to retrieve + + + + a #GValue initialized to the type of the property to retrieve + + + + + + + + + + + + + a #ClutterAnimatable + + + + the name of the animatable property to set + + + + the value of the animatable property to set + + + + + + + + + %TRUE if the interpolation was successful, + and %FALSE otherwise + + + + + a #ClutterAnimatable + + + + the name of the property to interpolate + + + + a #ClutterInterval with the animation range + + + + the progress to use to interpolate between the + initial and final values of the @interval + + + + return location for an initialized #GValue + using the same type of the @interval + + + + + + + + The #ClutterAnimation structure contains only private data and should +be accessed using the provided functions. + Use the implicit animation on #ClutterActor + + + Creates a new #ClutterAnimation instance. You should set the +#GObject to be animated using clutter_animation_set_object(), +set the duration with clutter_animation_set_duration() and the +easing mode using clutter_animation_set_mode(). + +Use clutter_animation_bind() or clutter_animation_bind_interval() +to define the properties to be animated. The interval and the +animated properties can be updated at runtime. + +The clutter_actor_animate() and relative family of functions provide +an easy way to animate a #ClutterActor and automatically manage the +lifetime of a #ClutterAnimation instance, so you should consider using +those functions instead of manually creating an animation. + Use #ClutterPropertyTransition instead + + the newly created #ClutterAnimation. Use g_object_unref() + to release the associated resources + + + + + Emits the ::completed signal on @animation + +When using this function with a #ClutterAnimation created +by the clutter_actor_animate() family of functions, @animation +will be unreferenced and it will not be valid anymore, +unless g_object_ref() was called before calling this function +or unless a reference was taken inside a handler for the +#ClutterAnimation::completed signal + Use #ClutterPropertyTransition instead + + + + + + a #ClutterAnimation + + + + + + + + + + + + + + + + Adds a single property with name @property_name to the +animation @animation. For more information about animations, +see clutter_actor_animate(). + +This method returns the animation primarily to make chained +calls convenient in language bindings. + Use #ClutterPropertyTransition instead + + The animation itself. + + + + + a #ClutterAnimation + + + + the property to control + + + + The final value of the property + + + + + + Binds @interval to the @property_name of the #GObject +attached to @animation. The #ClutterAnimation will take +ownership of the passed #ClutterInterval. For more information +about animations, see clutter_actor_animate(). + +If you need to update the interval instance use +clutter_animation_update_interval() instead. + Use #ClutterPropertyTransition instead + + The animation itself. + + + + + a #ClutterAnimation + + + + the property to control + + + + a #ClutterInterval + + + + + + Emits the ::completed signal on @animation + +When using this function with a #ClutterAnimation created +by the clutter_actor_animate() family of functions, @animation +will be unreferenced and it will not be valid anymore, +unless g_object_ref() was called before calling this function +or unless a reference was taken inside a handler for the +#ClutterAnimation::completed signal + Use #ClutterPropertyTransition instead + + + + + + a #ClutterAnimation + + + + + + Retrieves the #ClutterAlpha used by @animation. + Use clutter_animation_get_timeline() and + clutter_timeline_get_progress_mode() instead. + + the alpha object used by the animation + + + + + a #ClutterAnimation + + + + + + Retrieves the duration of @animation, in milliseconds. + Use #ClutterPropertyTransition instead + + the duration of the animation + + + + + a #ClutterAnimation + + + + + + Retrieves the #ClutterInterval associated to @property_name +inside @animation. + Use #ClutterPropertyTransition instead + + a #ClutterInterval or %NULL if no + property with the same name was found. The returned interval is + owned by the #ClutterAnimation and should not be unreferenced + + + + + a #ClutterAnimation + + + + name of the property + + + + + + Retrieves whether @animation is looping. + Use #ClutterPropertyTransition instead + + %TRUE if the animation is looping + + + + + a #ClutterAnimation + + + + + + Retrieves the animation mode of @animation, as set by +clutter_animation_set_mode(). + Use #ClutterPropertyTransition instead + + the mode for the animation + + + + + a #ClutterAnimation + + + + + + Retrieves the #GObject attached to @animation. + Use #ClutterPropertyTransition instead + + a #GObject + + + + + a #ClutterAnimation + + + + + + Retrieves the #ClutterTimeline used by @animation + Use #ClutterPropertyTransition instead + + the timeline used by the animation + + + + + a #ClutterAnimation + + + + + + Checks whether @animation is controlling @property_name. + Use #ClutterPropertyTransition instead + + %TRUE if the property is animated by the + #ClutterAnimation, %FALSE otherwise + + + + + a #ClutterAnimation + + + + name of the property + + + + + + Sets @alpha as the #ClutterAlpha used by @animation. + +If @alpha is not %NULL, the #ClutterAnimation will take ownership +of the #ClutterAlpha instance. + Use clutter_animation_get_timeline() and + clutter_timeline_set_progress_mode() instead. + + + + + + a #ClutterAnimation + + + + a #ClutterAlpha, or %NULL to unset the current #ClutterAlpha + + + + + + Sets the duration of @animation in milliseconds. + +This function will set #ClutterAnimation:alpha and +#ClutterAnimation:timeline if needed. + Use #ClutterPropertyTransition instead + + + + + + a #ClutterAnimation + + + + the duration in milliseconds + + + + + + Sets whether @animation should loop over itself once finished. + +A looping #ClutterAnimation will not emit the #ClutterAnimation::completed +signal when finished. + +This function will set #ClutterAnimation:alpha and +#ClutterAnimation:timeline if needed. + Use #ClutterPropertyTransition instead + + + + + + a #ClutterAnimation + + + + %TRUE if the animation should loop + + + + + + Sets the animation @mode of @animation. The animation @mode is +a logical id, either coming from the #ClutterAnimationMode enumeration +or the return value of clutter_alpha_register_func(). + +This function will also set #ClutterAnimation:alpha if needed. + Use #ClutterPropertyTransition instead + + + + + + a #ClutterAnimation + + + + an animation mode logical id + + + + + + Attaches @animation to @object. The #ClutterAnimation will take a +reference on @object. + Use #ClutterPropertyTransition instead + + + + + + a #ClutterAnimation + + + + a #GObject + + + + + + Sets the #ClutterTimeline used by @animation. + +This function will take a reference on the passed @timeline. + Use #ClutterPropertyTransition instead + + + + + + a #ClutterAnimation + + + + a #ClutterTimeline, or %NULL to unset the + current #ClutterTimeline + + + + + + Removes @property_name from the list of animated properties. + Use #ClutterPropertyTransition instead + + + + + + a #ClutterAnimation + + + + name of the property + + + + + + Updates the @final value of the interval for @property_name + Use #ClutterPropertyTransition instead + + The animation itself. + + + + + a #ClutterAnimation + + + + name of the property + + + + The final value of the property + + + + + + Changes the @interval for @property_name. The #ClutterAnimation +will take ownership of the passed #ClutterInterval. + Use #ClutterPropertyTransition instead + + + + + + a #ClutterAnimation + + + + name of the property + + + + a #ClutterInterval + + + + + + The #ClutterAlpha used by the animation. + Use the #ClutterAnimation:timeline property and + the #ClutterTimeline:progress-mode property instead. + + + + The duration of the animation, expressed in milliseconds. + Use #ClutterPropertyTransition instead + + + + Whether the animation should loop. + Use #ClutterPropertyTransition instead + + + + The animation mode, either a value from #ClutterAnimationMode +or a value returned by clutter_alpha_register_func(). The +default value is %CLUTTER_LINEAR. + Use #ClutterPropertyTransition instead + + + + The #GObject to which the animation applies. + Use #ClutterPropertyTransition instead + + + + The #ClutterTimeline used by the animation. + Use #ClutterPropertyTransition instead + + + + + + + + + + The ::completed signal is emitted once the animation has +been completed. + +The @animation instance is guaranteed to be valid for the entire +duration of the signal emission chain. + Use #ClutterPropertyTransition instead + + + + + + The ::started signal is emitted once the animation has been +started + Use #ClutterPropertyTransition instead + + + + + + + The #ClutterAnimationClass structure contains only private data and +should be accessed using the provided functions. + Use the implicit animation on #ClutterActor + + + + + + + + + + + + + + + + + + + + + + + a #ClutterAnimation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The animation modes used by #ClutterAlpha and #ClutterAnimation. This +enumeration can be expanded in later versions of Clutter. + +<figure id="easing-modes"> + <title>Easing modes provided by Clutter</title> + <graphic fileref="easing-modes.png" format="PNG"/> +</figure> + +Every global alpha function registered using clutter_alpha_register_func() +or clutter_alpha_register_closure() will have a logical id greater than +%CLUTTER_ANIMATION_LAST. + + custom progress function + + + linear tweening + + + quadratic tweening + + + quadratic tweening, inverse of + %CLUTTER_EASE_IN_QUAD + + + quadratic tweening, combininig + %CLUTTER_EASE_IN_QUAD and %CLUTTER_EASE_OUT_QUAD + + + cubic tweening + + + cubic tweening, invers of + %CLUTTER_EASE_IN_CUBIC + + + cubic tweening, combining + %CLUTTER_EASE_IN_CUBIC and %CLUTTER_EASE_OUT_CUBIC + + + quartic tweening + + + quartic tweening, inverse of + %CLUTTER_EASE_IN_QUART + + + quartic tweening, combining + %CLUTTER_EASE_IN_QUART and %CLUTTER_EASE_OUT_QUART + + + quintic tweening + + + quintic tweening, inverse of + %CLUTTER_EASE_IN_QUINT + + + fifth power tweening, combining + %CLUTTER_EASE_IN_QUINT and %CLUTTER_EASE_OUT_QUINT + + + sinusoidal tweening + + + sinusoidal tweening, inverse of + %CLUTTER_EASE_IN_SINE + + + sine wave tweening, combining + %CLUTTER_EASE_IN_SINE and %CLUTTER_EASE_OUT_SINE + + + exponential tweening + + + exponential tweening, inverse of + %CLUTTER_EASE_IN_EXPO + + + exponential tweening, combining + %CLUTTER_EASE_IN_EXPO and %CLUTTER_EASE_OUT_EXPO + + + circular tweening + + + circular tweening, inverse of + %CLUTTER_EASE_IN_CIRC + + + circular tweening, combining + %CLUTTER_EASE_IN_CIRC and %CLUTTER_EASE_OUT_CIRC + + + elastic tweening, with offshoot on start + + + elastic tweening, with offshoot on end + + + elastic tweening with offshoot on both ends + + + overshooting cubic tweening, with + backtracking on start + + + overshooting cubic tweening, with + backtracking on end + + + overshooting cubic tweening, with + backtracking on both ends + + + exponentially decaying parabolic (bounce) + tweening, with bounce on start + + + exponentially decaying parabolic (bounce) + tweening, with bounce on end + + + exponentially decaying parabolic (bounce) + tweening, with bounce on both ends + + + parametrized step function; see clutter_timeline_set_step_progress() + for further details. (Since 1.12) + + + equivalent to %CLUTTER_STEPS with a number of steps + equal to 1, and a step mode of %CLUTTER_STEP_MODE_START. (Since 1.12) + + + equivalent to %CLUTTER_STEPS with a number of steps + equal to 1, and a step mode of %CLUTTER_STEP_MODE_END. (Since 1.12) + + + cubic bezier between (0, 0) and (1, 1) with two + control points; see clutter_timeline_set_cubic_bezier_progress(). (Since 1.12) + + + equivalent to %CLUTTER_CUBIC_BEZIER with control points + in (0.25, 0.1) and (0.25, 1.0). (Since 1.12) + + + equivalent to %CLUTTER_CUBIC_BEZIER with control points + in (0.42, 0) and (1.0, 1.0). (Since 1.12) + + + equivalent to %CLUTTER_CUBIC_BEZIER with control points + in (0, 0) and (0.58, 1.0). (Since 1.12) + + + equivalent to %CLUTTER_CUBIC_BEZIER with control points + in (0.42, 0) and (0.58, 1.0). (Since 1.12) + + + last animation mode, used as a guard for + registered global alpha functions + + + + + + The #ClutterAnimator structure contains only private data and +should be accessed using the provided API + + + Creates a new #ClutterAnimator instance + Use #ClutterKeyframeTransition instead + + a new #ClutterAnimator. + + + + + Compute the value for a managed property at a given progress. + +If the property is an ease-in property, the current value of the property +on the object will be used as the starting point for computation. + Use #ClutterKeyframeTransition instead + + %TRUE if the computation yields has a value, otherwise (when + an error occurs or the progress is before any of the keys) %FALSE is + returned and the #GValue is left untouched + + + + + a #ClutterAnimator + + + + a #GObject + + + + the name of the property on object to check + + + + a value between 0.0 and 1.0 + + + + an initialized value to store the computed result + + + + + + Retrieves the current duration of an animator + Use #ClutterKeyframeTransition instead + + the duration of the animation, in milliseconds + + + + + a #ClutterAnimator + + + + + + Returns a list of pointers to opaque structures with accessor functions +that describe the keys added to an animator. + Use #ClutterKeyframeTransition instead + + a + list of #ClutterAnimatorKey<!-- -->s; the contents of the list are owned + by the #ClutterAnimator, but you should free the returned list when done, + using g_list_free() + + + + + + + a #ClutterAnimator instance + + + + a #GObject to search for, or %NULL for all objects + + + + a specific property name to query for, + or %NULL for all properties + + + + a specific progress to search for, or a negative value for all + progresses + + + + + + Get the timeline hooked up for driving the #ClutterAnimator + Use #ClutterKeyframeTransition instead + + the #ClutterTimeline that drives the animator + + + + + a #ClutterAnimator + + + + + + Checks if a property value is to be eased into the animation. + Use #ClutterKeyframeTransition instead + + %TRUE if the property is eased in + + + + + a #ClutterAnimatorKey + + + + a #GObject + + + + the name of a property on object + + + + + + Get the interpolation used by animator for a property on a particular +object. + Use #ClutterKeyframeTransition instead + + a ClutterInterpolation value. + + + + + a #ClutterAnimatorKey + + + + a #GObject + + + + the name of a property on object + + + + + + Sets whether a property value is to be eased into the animation. + Use #ClutterKeyframeTransition instead + + + + + + a #ClutterAnimatorKey + + + + a #GObject + + + + the name of a property on object + + + + we are going to be easing in this property + + + + + + Set the interpolation method to use, %CLUTTER_INTERPOLATION_LINEAR causes +the values to linearly change between the values, and +%CLUTTER_INTERPOLATION_CUBIC causes the values to smoothly change between +the values. + Use #ClutterKeyframeTransition instead + + + + + + a #ClutterAnimatorKey + + + + a #GObject + + + + the name of a property on object + + + + the #ClutterInterpolation to use + + + + + + Removes all keys matching the conditions specificed in the arguments. + Use #ClutterKeyframeTransition instead + + + + + + a #ClutterAnimator + + + + a #GObject to search for, or %NULL for all + + + + a specific property name to query for, + or %NULL for all + + + + a specific progress to search for or a negative value + for all + + + + + + Adds multiple keys to a #ClutterAnimator, specifying the value a given +property should have at a given progress of the animation. The mode +specified is the mode used when going to this key from the previous key of +the @property_name + +If a given (object, property, progress) tuple already exist the mode and +value will be replaced with the new values. + Use #ClutterKeyframeTransition instead + + + + + + a #ClutterAnimator + + + + a #GObject + + + + the property to specify a key for + + + + the id of the alpha function to use + + + + at which stage of the animation this value applies; the + range is a normalized floating point value between 0 and 1 + + + + the value first_property_name should have for first_object + at first_progress, followed by more (object, property_name, mode, + progress, value) tuples, followed by %NULL + + + + + + Runs the timeline of the #ClutterAnimator with a duration in msecs +as specified. + Use #ClutterKeyframeTransition instead + + + + + + a #ClutterAnimator + + + + milliseconds a run of the animator should last. + + + + + + Sets a single key in the #ClutterAnimator for the @property_name of +@object at @progress. + +See also: clutter_animator_set() + Use #ClutterKeyframeTransition instead + + The animator instance + + + + + a #ClutterAnimator + + + + a #GObject + + + + the property to specify a key for + + + + the id of the alpha function to use + + + + the normalized range at which stage of the animation this + value applies + + + + the value property_name should have at progress. + + + + + + Sets an external timeline that will be used for driving the animation + Use #ClutterKeyframeTransition instead + + + + + + a #ClutterAnimator + + + + a #ClutterTimeline + + + + + + Start the ClutterAnimator, this is a thin wrapper that rewinds +and starts the animators current timeline. + Use #ClutterKeyframeTransition instead + + the #ClutterTimeline that drives + the animator. The returned timeline is owned by the #ClutterAnimator + and it should not be unreferenced + + + + + a #ClutterAnimator + + + + + + The duration of the #ClutterTimeline used by the #ClutterAnimator +to drive the animation + Use #ClutterKeyframeTransition instead + + + + The #ClutterTimeline used by the #ClutterAnimator to drive the +animation + Use #ClutterKeyframeTransition instead + + + + + + + + + + + The #ClutterAnimatorClass structure contains only private data + + + + + + + + + + + A key frame inside a #ClutterAnimator + + Retrieves the mode of a #ClutterAnimator key, for the first key of a +property for an object this represents the whether the animation is +open ended and or curved for the remainding keys for the property it +represents the easing mode. + Use #ClutterKeyframeTransition instead + + the mode of a #ClutterAnimatorKey + + + + + a #ClutterAnimatorKey + + + + + + Retrieves the object a key applies to. + Use #ClutterKeyframeTransition instead + + the object an animator_key exist for. + + + + + a #ClutterAnimatorKey + + + + + + Retrieves the progress of an clutter_animator_key + Use #ClutterKeyframeTransition instead + + the progress defined for a #ClutterAnimator key. + + + + + a #ClutterAnimatorKey + + + + + + Retrieves the name of the property a key applies to. + Use #ClutterKeyframeTransition instead + + the name of the property an animator_key exist for. + + + + + a #ClutterAnimatorKey + + + + + + Retrieves the #GType of the property a key applies to + +You can use this type to initialize the #GValue to pass to +clutter_animator_key_get_value() + Use #ClutterKeyframeTransition instead + + the #GType of the property + + + + + a #ClutterAnimatorKey + + + + + + Retrieves a copy of the value for a #ClutterAnimatorKey. + +The passed in #GValue needs to be already initialized for the value +type of the key or to a type that allow transformation from the value +type of the key. + +Use g_value_unset() when done. + Use #ClutterKeyframeTransition instead + + %TRUE if the passed #GValue was successfully set, and + %FALSE otherwise + + + + + a #ClutterAnimatorKey + + + + a #GValue initialized with the correct type for the animator key + + + + + + + + + Common members for a #ClutterEvent + + event type + + + + event time + + + + event flags + + + + + + + event source actor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The middle button of a pointer device. + + + + The primary button of a pointer device. + +This is typically the left mouse button in a right-handed +mouse configuration. + + + + The secondary button of a pointer device. + +This is typically the right mouse button in a right-handed +mouse configuration. + + + + + + + + + + + + + + + + #ClutterBackend is an opaque structure whose +members cannot be directly accessed. + + + + + + + + + + + + Retrieves the #CoglContext associated with the given clutter +@backend. A #CoglContext is required when using some of the +experimental 2.0 Cogl API. + +Since CoglContext is itself experimental API this API should +be considered experimental too. + +This API is not yet supported on OSX because OSX still +uses the stub Cogl winsys and the Clutter backend doesn't +explicitly create a CoglContext. + + The #CoglContext associated with @backend. + + + + + a #ClutterBackend + + + + + + Retrieves the distance used to verify a double click event + Use #ClutterSettings:double-click-distance instead + + a distance, in pixels. + + + + + a #ClutterBackend + + + + + + Gets the maximum time between two button press events, as set +by clutter_backend_set_double_click_time(). + Use #ClutterSettings:double-click-time instead + + a time in milliseconds + + + + + a #ClutterBackend + + + + + + Retrieves the default font name as set by +clutter_backend_set_font_name(). + Use #ClutterSettings:font-name instead + + the font name for the backend. The returned string is + owned by the #ClutterBackend and should never be modified or freed + + + + + a #ClutterBackend + + + + + + Retrieves the font options for @backend. + + the font options of the #ClutterBackend. + The returned #cairo_font_options_t is owned by the backend and should + not be modified or freed + + + + + a #ClutterBackend + + + + + + Returns the input method used by Clutter + + the input method + + + + + the #CLutterBackend + + + + + + Gets the resolution for font handling on the screen. + +The resolution is a scale factor between points specified in a +#PangoFontDescription and cairo units. The default value is 96.0, +meaning that a 10 point font will be 13 units +high (10 * 96. / 72. = 13.3). + +Clutter will set the resolution using the current backend when +initializing; the resolution is also stored in the +#ClutterSettings:font-dpi property. + + the current resolution, or -1 if no resolution + has been set. + + + + + a #ClutterBackend + + + + + + Sets the maximum distance used to verify a double click event. + Use #ClutterSettings:double-click-distance instead + + + + + + a #ClutterBackend + + + + a distance, in pixels + + + + + + Sets the maximum time between two button press events, used to +verify whether it's a double click event or not. + Use #ClutterSettings:double-click-time instead + + + + + + a #ClutterBackend + + + + milliseconds between two button press events + + + + + + Sets the default font to be used by Clutter. The @font_name string +must either be %NULL, which means that the font name from the +default #ClutterBackend will be used; or be something that can +be parsed by the pango_font_description_from_string() function. + Use #ClutterSettings:font-name instead + + + + + + a #ClutterBackend + + + + the name of the font + + + + + + Sets the new font options for @backend. The #ClutterBackend will +copy the #cairo_font_options_t. + +If @options is %NULL, the first following call to +clutter_backend_get_font_options() will return the default font +options for @backend. + +This function is intended for actors creating a Pango layout +using the PangoCairo API. + + + + + + a #ClutterBackend + + + + Cairo font options for the backend, or %NULL + + + + + + Sets the input method to be used by Clutter + + + + + + the #ClutterBackend + + + + the input method + + + + + + Sets the resolution for font handling on the screen. This is a +scale factor between points specified in a #PangoFontDescription +and cairo units. The default value is 96, meaning that a 10 point +font will be 13 units high. (10 * 96. / 72. = 13.3). + +Applications should never need to call this function. + Use #ClutterSettings:font-dpi instead + + + + + + a #ClutterBackend + + + + the resolution in "dots per inch" (Physical inches aren't + actually involved; the terminology is conventional). + + + + + + The ::font-changed signal is emitted each time the font options +have been changed through #ClutterSettings. + + + + + + The ::resolution-changed signal is emitted each time the font +resolutions has been changed through #ClutterSettings. + + + + + + The ::settings-changed signal is emitted each time the #ClutterSettings +properties have been changed. + + + + + + + + + + + + + + + #ClutterBehaviour-struct contains only private data and should +be accessed with the functions below. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Calls @func for every actor driven by @behave. + + + + + + a #ClutterBehaviour + + + + a function called for each actor + + + + optional data to be passed to the function, or %NULL + + + + + + Applies @behave to @actor. This function adds a reference on +the actor. + + + + + + a #ClutterBehaviour + + + + a #ClutterActor + + + + + + Retrieves all the actors to which @behave applies. It is not recommended +for derived classes to use this in there alpha notify method but use +#clutter_behaviour_actors_foreach as it avoids alot of needless allocations. + + a list of + actors. You should free the returned list with g_slist_free() when + finished using it. + + + + + + + a #ClutterBehaviour + + + + + + Retrieves the #ClutterAlpha object bound to @behave. + + a #ClutterAlpha object, or %NULL if no alpha + object has been bound to this behaviour. + + + + + a #ClutterBehaviour + + + + + + Gets the number of actors this behaviour is applied too. + + The number of applied actors + + + + + a #ClutterBehaviour + + + + + + Gets an actor the behaviour was applied to referenced by index num. + + A Clutter actor or NULL if @index_ is invalid. + + + + + a #ClutterBehaviour + + + + the index of an actor this behaviour is applied too. + + + + + + Check if @behave applied to @actor. + + TRUE if actor has behaviour. FALSE otherwise. + + + + + a #ClutterBehaviour + + + + a #ClutterActor + + + + + + Removes @actor from the list of #ClutterActor<!-- -->s to which +@behave applies. This function removes a reference on the actor. + + + + + + a #ClutterBehaviour + + + + a #ClutterActor + + + + + + Removes every actor from the list that @behave holds. + + + + + + a #ClutterBehaviour + + + + + + Binds @alpha to a #ClutterBehaviour. The #ClutterAlpha object +is what makes a behaviour work: for each tick of the timeline +used by #ClutterAlpha a new value of the alpha parameter is +computed by the alpha function; the value should be used by +the #ClutterBehaviour to update one or more properties of the +actors to which the behaviour applies. + +If @alpha is not %NULL, the #ClutterBehaviour will take ownership +of the #ClutterAlpha instance. + + + + + + a #ClutterBehaviour + + + + a #ClutterAlpha or %NULL to unset a previously set alpha + + + + + + The #ClutterAlpha object used to drive this behaviour. A #ClutterAlpha +object binds a #ClutterTimeline and a function which computes a value +(the "alpha") depending on the time. Each time the alpha value changes +the alpha-notify virtual function is called. + + + + + + + + + + The ::apply signal is emitted each time the behaviour is applied +to an actor. + + + + + + the actor the behaviour was applied to. + + + + + + The ::removed signal is emitted each time a behaviour is not applied +to an actor anymore. + + + + + + the removed actor + + + + + + + Base class for behaviours. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterBehaviourDepth structure contains only private data +and should be accessed using the provided API + Use clutter_actor_animate() with #ClutterActor:depth + instead. + + + Creates a new #ClutterBehaviourDepth which can be used to control +the ClutterActor:depth property of a set of #ClutterActor<!-- -->s. + +If @alpha is not %NULL, the #ClutterBehaviour will take ownership +of the #ClutterAlpha instance. In the case when @alpha is %NULL, +it can be set later with clutter_behaviour_set_alpha(). + + the newly created behaviour + + + + + a #ClutterAlpha instance, or %NULL + + + + initial value of the depth + + + + final value of the depth + + + + + + Gets the boundaries of the @behaviour + + + + + + a #ClutterBehaviourDepth + + + + return location for the initial depth value, or %NULL + + + + return location for the final depth value, or %NULL + + + + + + Sets the boundaries of the @behaviour. + + + + + + a #ClutterBehaviourDepth + + + + initial value of the depth + + + + final value of the depth + + + + + + End depth level to apply to the actors. + + + + Start depth level to apply to the actors. + + + + + + + + + + + The #ClutterBehaviourDepthClass structure contains only private data + + + + + + + + The #ClutterBehaviourEllipse struct contains only private data +and should be accessed using the provided API + + + Creates a behaviour that drives actors along an elliptical path with +given center, width and height; the movement starts at @start +degrees (with 0 corresponding to 12 o'clock) and ends at @end +degrees. Angles greated than 360 degrees get clamped to the canonical +interval <0, 360); if @start is equal to @end, the behaviour will +rotate by exacly 360 degrees. + +If @alpha is not %NULL, the #ClutterBehaviour will take ownership +of the #ClutterAlpha instance. In the case when @alpha is %NULL, +it can be set later with clutter_behaviour_set_alpha(). + + the newly created #ClutterBehaviourEllipse + + + + + a #ClutterAlpha instance, or %NULL + + + + x coordinace of the center + + + + y coordiance of the center + + + + width of the ellipse + + + + height of the ellipse + + + + #ClutterRotateDirection of rotation + + + + angle in degrees at which movement starts, between 0 and 360 + + + + angle in degrees at which movement ends, between 0 and 360 + + + + + + Gets the at which movements ends. + + angle in degrees + + + + + a #ClutterBehaviourEllipse + + + + + + Gets the angle at which movements starts. + + angle in degrees + + + + + a #ClutterBehaviourEllipse + + + + + + Gets the tilt of the ellipse around the center in the given axis. + + angle in degrees. + + + + + a #ClutterBehaviourEllipse + + + + a #ClutterRotateAxis + + + + + + Gets the center of the elliptical path path. + + + + + + a #ClutterBehaviourEllipse + + + + return location for the X coordinate of the center, or %NULL + + + + return location for the Y coordinate of the center, or %NULL + + + + + + Retrieves the #ClutterRotateDirection used by the ellipse behaviour. + + the rotation direction + + + + + a #ClutterBehaviourEllipse + + + + + + Gets the height of the elliptical path. + + the height of the path + + + + + a #ClutterBehaviourEllipse + + + + + + Gets the tilt of the ellipse around the center in Y axis. + + + + + + a #ClutterBehaviourEllipse + + + + return location for tilt angle on the X axis, or %NULL. + + + + return location for tilt angle on the Y axis, or %NULL. + + + + return location for tilt angle on the Z axis, or %NULL. + + + + + + Gets the width of the elliptical path. + + the width of the path + + + + + a #ClutterBehaviourEllipse + + + + + + Sets the angle at which movement ends; angles >= 360 degress get clamped +to the canonical interval <0, 360). + + + + + + a #ClutterBehaviourEllipse + + + + angle at which movement ends in degrees, between 0 and 360. + + + + + + Sets the angle at which movement starts; angles >= 360 degress get clamped +to the canonical interval <0, 360). + + + + + + a #ClutterBehaviourEllipse + + + + angle at which movement starts in degrees, between 0 and 360. + + + + + + Sets the angle at which the ellipse should be tilted around it's center. + + + + + + a #ClutterBehaviourEllipse + + + + a #ClutterRotateAxis + + + + tilt of the elipse around the center in the given axis in +degrees. + + + + + + Sets the center of the elliptical path to the point represented by knot. + + + + + + a #ClutterBehaviourEllipse + + + + x coordinace of centre + + + + y coordinace of centre + + + + + + Sets the rotation direction used by the ellipse behaviour. + + + + + + a #ClutterBehaviourEllipse + + + + the rotation direction + + + + + + Sets the height of the elliptical path. + + + + + + a #ClutterBehaviourEllipse + + + + height of the ellipse + + + + + + Sets the angles at which the ellipse should be tilted around it's center. + + + + + + a #ClutterBehaviourEllipse + + + + tilt of the elipse around the center in X axis in degrees. + + + + tilt of the elipse around the center in Y axis in degrees. + + + + tilt of the elipse around the center in Z axis in degrees. + + + + + + Sets the width of the elliptical path. + + + + + + a #ClutterBehaviourEllipse + + + + width of the ellipse + + + + + + The final angle to where the rotation should end. + + + + The initial angle from where the rotation should start. + + + + The tilt angle for the rotation around center in X axis + + + + The tilt angle for the rotation around center in Y axis + + + + The tilt angle for the rotation on the Z axis + + + + The center of the ellipse. + + + + The direction of the rotation. + + + + Height of the ellipse, in pixels + + + + Width of the ellipse, in pixels + + + + + + + + + + + The #ClutterBehaviourEllipseClass struct contains only private data + + + + + + + + This function is passed to clutter_behaviour_actors_foreach() and +will be called for each actor driven by @behaviour. + + + + + + the #ClutterBehaviour + + + + an actor driven by @behaviour + + + + optional data passed to the function + + + + + + The #ClutterBehaviourOpacity structure contains only private data and +should be accessed using the provided API + Use clutter_actor_animate() and #ClutterActor:opacity + instead. + + + Creates a new #ClutterBehaviourOpacity object, driven by @alpha +which controls the opacity property of every actor, making it +change in the interval between @opacity_start and @opacity_end. + +If @alpha is not %NULL, the #ClutterBehaviour will take ownership +of the #ClutterAlpha instance. In the case when @alpha is %NULL, +it can be set later with clutter_behaviour_set_alpha(). + + the newly created #ClutterBehaviourOpacity + + + + + a #ClutterAlpha instance, or %NULL + + + + minimum level of opacity + + + + maximum level of opacity + + + + + + Gets the initial and final levels of the opacity applied by @behaviour +on each actor it controls. + + + + + + a #ClutterBehaviourOpacity + + + + return location for the minimum level of opacity, or %NULL + + + + return location for the maximum level of opacity, or %NULL + + + + + + Sets the initial and final levels of the opacity applied by @behaviour +on each actor it controls. + + + + + + a #ClutterBehaviourOpacity + + + + minimum level of opacity + + + + maximum level of opacity + + + + + + Final opacity level of the behaviour. + + + + Initial opacity level of the behaviour. + + + + + + + + + + + The #ClutterBehaviourOpacityClass structure contains only private data + + + + + + + + The #ClutterBehaviourPath structure contains only private data +and should be accessed using the provided API + Use #ClutterPathConstraint and clutter_actor_animate() + instead. + + + Creates a new path behaviour. You can use this behaviour to drive +actors along the nodes of a path, described by @path. + +This will claim the floating reference on the #ClutterPath so you +do not need to unref if it. + +If @alpha is not %NULL, the #ClutterBehaviour will take ownership +of the #ClutterAlpha instance. In the case when @alpha is %NULL, +it can be set later with clutter_behaviour_set_alpha(). + + a #ClutterBehaviour + + + + + a #ClutterAlpha instance, or %NULL + + + + a #ClutterPath or %NULL for an empty path + + + + + + Creates a new path behaviour using the path described by @desc. See +clutter_path_add_string() for a description of the format. + +If @alpha is not %NULL, the #ClutterBehaviour will take ownership +of the #ClutterAlpha instance. In the case when @alpha is %NULL, +it can be set later with clutter_behaviour_set_alpha(). + + a #ClutterBehaviour + + + + + a #ClutterAlpha instance, or %NULL + + + + a string description of the path + + + + + + Creates a new path behaviour that will make the actors visit all of +the given knots in order with straight lines in between. + +A path will be created where the first knot is used in a +%CLUTTER_PATH_MOVE_TO and the subsequent knots are used in +%CLUTTER_PATH_LINE_TO<!-- -->s. + +If @alpha is not %NULL, the #ClutterBehaviour will take ownership +of the #ClutterAlpha instance. In the case when @alpha is %NULL, +it can be set later with clutter_behaviour_set_alpha(). + + a #ClutterBehaviour + + + + + a #ClutterAlpha instance, or %NULL + + + + an array of #ClutterKnot<!-- -->s + + + + + + number of entries in @knots + + + + + + + + + + + + + + + + + + + Get the current path of the behaviour + + the path + + + + + a #ClutterBehaviourPath instance + + + + + + Change the path that the actors will follow. This will take the +floating reference on the #ClutterPath so you do not need to unref +it. + + + + + + the path behaviour + + + + the new path to follow + + + + + + + + + + + + + + + This signal is emitted each time a node defined inside the path +is reached. + + + + + + the index of the #ClutterKnot reached + + + + + + + The #ClutterBehaviourPathClass struct contains only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterBehaviourRotate struct contains only private data and +should be accessed using the provided API + Use clutter_actor_animate() instead. + + + Creates a new #ClutterBehaviourRotate. This behaviour will rotate actors +bound to it on @axis, following @direction, between @angle_start and +@angle_end. Angles >= 360 degrees will be clamped to the canonical interval +<0, 360), if angle_start == angle_end, the behaviour will carry out a +single rotation of 360 degrees. + +If @alpha is not %NULL, the #ClutterBehaviour will take ownership +of the #ClutterAlpha instance. In the case when @alpha is %NULL, +it can be set later with clutter_behaviour_set_alpha(). + + the newly created #ClutterBehaviourRotate. + + + + + a #ClutterAlpha instance, or %NULL + + + + the rotation axis + + + + the rotation direction + + + + the starting angle in degrees, between 0 and 360. + + + + the final angle in degrees, between 0 and 360. + + + + + + Retrieves the #ClutterRotateAxis used by the rotate behaviour. + + the rotation axis + + + + + a #ClutterBehaviourRotate + + + + + + Retrieves the rotation boundaries of the rotate behaviour. + + + + + + a #ClutterBehaviourRotate + + + + return value for the initial angle + + + + return value for the final angle + + + + + + Retrieves the center of rotation set using +clutter_behaviour_rotate_set_center(). + + + + + + a #ClutterBehaviourRotate + + + + return location for the X center of rotation + + + + return location for the Y center of rotation + + + + return location for the Z center of rotation + + + + + + Retrieves the #ClutterRotateDirection used by the rotate behaviour. + + the rotation direction + + + + + a #ClutterBehaviourRotate + + + + + + Sets the axis used by the rotate behaviour. + + + + + + a #ClutterBehaviourRotate + + + + a #ClutterRotateAxis + + + + + + Sets the initial and final angles of a rotation behaviour; angles >= 360 +degrees get clamped to the canonical interval <0, 360). + + + + + + a #ClutterBehaviourRotate + + + + initial angle in degrees, between 0 and 360. + + + + final angle in degrees, between 0 and 360. + + + + + + Sets the center of rotation. The coordinates are relative to the plane +normal to the rotation axis set with clutter_behaviour_rotate_set_axis(). + + + + + + a #ClutterBehaviourRotate + + + + X axis center of rotation + + + + Y axis center of rotation + + + + Z axis center of rotation + + + + + + Sets the rotation direction used by the rotate behaviour. + + + + + + a #ClutterBehaviourRotate + + + + the rotation direction + + + + + + The final angle to where the rotation should end. + + + + The initial angle from whence the rotation should start. + + + + The axis of rotation. + + + + The x center of rotation. + + + + The y center of rotation. + + + + The z center of rotation. + + + + The direction of the rotation. + + + + + + + + + + + The #ClutterBehaviourRotateClass struct contains only private data + + + + + + + + The #ClutterBehaviourScale struct contains only private data and +should be accessed using the provided API + Use clutter_actor_animate() with #ClutterActor:scale-x + and #ClutterActor:scale-y instead. + + + Creates a new #ClutterBehaviourScale instance. + +If @alpha is not %NULL, the #ClutterBehaviour will take ownership +of the #ClutterAlpha instance. In the case when @alpha is %NULL, +it can be set later with clutter_behaviour_set_alpha(). + + the newly created #ClutterBehaviourScale + + + + + a #ClutterAlpha instance, or %NULL + + + + initial scale factor on the X axis + + + + initial scale factor on the Y axis + + + + final scale factor on the X axis + + + + final scale factor on the Y axis + + + + + + Retrieves the bounds used by scale behaviour. + + + + + + a #ClutterBehaviourScale + + + + return location for the initial scale factor on the X + axis, or %NULL + + + + return location for the initial scale factor on the Y + axis, or %NULL + + + + return location for the final scale factor on the X axis, + or %NULL + + + + return location for the final scale factor on the Y axis, + or %NULL + + + + + + Sets the bounds used by scale behaviour. + + + + + + a #ClutterBehaviourScale + + + + initial scale factor on the X axis + + + + initial scale factor on the Y axis + + + + final scale factor on the X axis + + + + final scale factor on the Y axis + + + + + + The final scaling factor on the X axis for the actors. + + + + The initial scaling factor on the X axis for the actors. + + + + The final scaling factor on the Y axis for the actors. + + + + The initial scaling factor on the Y axis for the actors. + + + + + + + + + + + The #ClutterBehaviourScaleClass struct contains only private data + + + + + + + + The alignment policies available on each axis for #ClutterBinLayout + Use #ClutterActorAlign and the #ClutterActor + API instead + + Fixed position alignment; the + #ClutterBinLayout will honour the fixed position provided + by the actors themselves when allocating them + + + Fill the allocation size + + + Position the actors at the top + or left side of the container, depending on the axis + + + Position the actors at the bottom + or right side of the container, depending on the axis + + + Position the actors at the + center of the container, depending on the axis + + + + The #ClutterBinLayout structure contains only private data +and should be accessed using the provided API + + Creates a new #ClutterBinLayout layout manager + + the newly created layout manager + + + + + the default alignment policy to be used on the + horizontal axis + + + + the default alignment policy to be used on the + vertical axis + + + + + + Adds a #ClutterActor to the container using @self and +sets the alignment policies for it + +This function is equivalent to clutter_container_add_actor() +and clutter_layout_manager_child_set_property() but it does not +require a pointer to the #ClutterContainer associated to the +#ClutterBinLayout + Use clutter_actor_add_child() instead. + + + + + + a #ClutterBinLayout + + + + a #ClutterActor + + + + horizontal alignment policy for @child + + + + vertical alignment policy for @child + + + + + + Retrieves the horizontal and vertical alignment policies for +a child of @self + +If @child is %NULL the default alignment policies will be returned +instead + Use the #ClutterActor:x-align and the + #ClutterActor:y-align properties of #ClutterActor instead. + + + + + + a #ClutterBinLayout + + + + a child of @container + + + + return location for the horizontal + alignment policy + + + + return location for the vertical + alignment policy + + + + + + Sets the horizontal and vertical alignment policies to be applied +to a @child of @self + +If @child is %NULL then the @x_align and @y_align values will +be set as the default alignment policies + Use the #ClutterActor:x-align and + #ClutterActor:y-align properties of #ClutterActor instead. + + + + + + a #ClutterBinLayout + + + + a child of @container + + + + the horizontal alignment policy to be used for the @child + inside @container + + + + the vertical aligment policy to be used on the @child + inside @container + + + + + + The default horizontal alignment policy for actors managed +by the #ClutterBinLayout + Use the #ClutterActor:x-expand and the + #ClutterActor:x-align properties on #ClutterActor instead. + + + + The default vertical alignment policy for actors managed +by the #ClutterBinLayout + Use the #ClutterActor:y-expand and the + #ClutterActor:y-align properties on #ClutterActor instead. + + + + + + + + + + + The #ClutterBinLayoutClass structure contains only private +data and should be accessed using the provided API + + + + + + + + #ClutterBindConstraint is an opaque structure +whose members cannot be directly accessed + + Creates a new constraint, binding a #ClutterActor's position to +the given @coordinate of the position of @source + + the newly created #ClutterBindConstraint + + + + + the #ClutterActor to use as the source of + the binding, or %NULL + + + + the coordinate to bind + + + + the offset to apply to the binding, in pixels + + + + + + Retrieves the bound coordinate of the constraint + + the bound coordinate + + + + + a #ClutterBindConstraint + + + + + + Retrieves the offset set using clutter_bind_constraint_set_offset() + + the offset, in pixels + + + + + a #ClutterBindConstraint + + + + + + Retrieves the #ClutterActor set using clutter_bind_constraint_set_source() + + a pointer to the source actor + + + + + a #ClutterBindConstraint + + + + + + Sets the coordinate to bind in the constraint + + + + + + a #ClutterBindConstraint + + + + the coordinate to bind + + + + + + Sets the offset to be applied to the constraint + + + + + + a #ClutterBindConstraint + + + + the offset to apply, in pixels + + + + + + Sets the source #ClutterActor for the constraint + + + + + + a #ClutterBindConstraint + + + + a #ClutterActor, or %NULL to unset the source + + + + + + The coordinate to be bound + + + + The offset, in pixels, to be applied to the binding + + + + The #ClutterActor used as the source for the binding. + +The #ClutterActor must not be contained inside the actor associated +to the constraint. + + + + + + + Specifies which property should be used in a binding + + Bind the X coordinate + + + Bind the Y coordinate + + + Bind the width + + + Bind the height + + + Equivalent to to %CLUTTER_BIND_X and + %CLUTTER_BIND_Y (added in Clutter 1.6) + + + Equivalent to %CLUTTER_BIND_WIDTH and + %CLUTTER_BIND_HEIGHT (added in Clutter 1.6) + + + Equivalent to %CLUTTER_BIND_POSITION and + %CLUTTER_BIND_SIZE (added in Clutter 1.10) + + + + The prototype for the callback function registered with +clutter_binding_pool_install_action() and invoked by +clutter_binding_pool_activate(). + + the function should return %TRUE if the key + binding has been handled, and return %FALSE otherwise + + + + + a #GObject + + + + the name of the action + + + + the key symbol + + + + bitmask of the modifier flags + + + + data passed to the function + + + + + + Container of key bindings. The #ClutterBindingPool struct is +private. + + Creates a new #ClutterBindingPool that can be used to store +key bindings for an actor. The @name must be a unique identifier +for the binding pool, so that clutter_binding_pool_find() will +be able to return the correct binding pool. + + the newly created binding pool with the given + name. Use g_object_unref() when done. + + + + + the name of the binding pool + + + + + + Finds the #ClutterBindingPool with @name. + + a pointer to the #ClutterBindingPool, or %NULL + + + + + the name of the binding pool to find + + + + + + Retrieves the #ClutterBindingPool for the given #GObject class +and, eventually, creates it. This function is a wrapper around +clutter_binding_pool_new() and uses the class type name as the +unique name for the binding pool. + +Calling this function multiple times will return the same +#ClutterBindingPool. + +A binding pool for a class can also be retrieved using +clutter_binding_pool_find() with the class type name: + +|[ + pool = clutter_binding_pool_find (G_OBJECT_TYPE_NAME (instance)); +]| + + the binding pool for the given class. + The returned #ClutterBindingPool is owned by Clutter and should not + be freed directly + + + + + a #GObjectClass pointer + + + + + + Activates the callback associated to the action that is +bound to the @key_val and @modifiers pair. + +The callback has the following signature: + +|[ + void (* callback) (GObject *gobject, + const gchar *action_name, + guint key_val, + ClutterModifierType modifiers, + gpointer user_data); +]| + +Where the #GObject instance is @gobject and the user data +is the one passed when installing the action with +clutter_binding_pool_install_action(). + +If the action bound to the @key_val, @modifiers pair has been +blocked using clutter_binding_pool_block_action(), the callback +will not be invoked, and this function will return %FALSE. + + %TRUE if an action was found and was activated + + + + + a #ClutterBindingPool + + + + the key symbol + + + + bitmask for the modifiers + + + + a #GObject + + + + + + Blocks all the actions with name @action_name inside @pool. + + + + + + a #ClutterBindingPool + + + + an action name + + + + + + Retrieves the name of the action matching the given key symbol +and modifiers bitmask. + + the name of the action, if found, or %NULL. The + returned string is owned by the binding pool and should never + be modified or freed + + + + + a #ClutterBindingPool + + + + a key symbol + + + + a bitmask for the modifiers + + + + + + Installs a new action inside a #ClutterBindingPool. The action +is bound to @key_val and @modifiers. + +The same action name can be used for multiple @key_val, @modifiers +pairs. + +When an action has been activated using clutter_binding_pool_activate() +the passed @callback will be invoked (with @data). + +Actions can be blocked with clutter_binding_pool_block_action() +and then unblocked using clutter_binding_pool_unblock_action(). + + + + + + a #ClutterBindingPool + + + + the name of the action + + + + key symbol + + + + bitmask of modifiers + + + + function to be called + when the action is activated + + + + data to be passed to @callback + + + + function to be called when the action is removed + from the pool + + + + + + A #GClosure variant of clutter_binding_pool_install_action(). + +Installs a new action inside a #ClutterBindingPool. The action +is bound to @key_val and @modifiers. + +The same action name can be used for multiple @key_val, @modifiers +pairs. + +When an action has been activated using clutter_binding_pool_activate() +the passed @closure will be invoked. + +Actions can be blocked with clutter_binding_pool_block_action() +and then unblocked using clutter_binding_pool_unblock_action(). + + + + + + a #ClutterBindingPool + + + + the name of the action + + + + key symbol + + + + bitmask of modifiers + + + + a #GClosure + + + + + + Allows overriding the action for @key_val and @modifiers inside a +#ClutterBindingPool. See clutter_binding_pool_install_action(). + +When an action has been activated using clutter_binding_pool_activate() +the passed @callback will be invoked (with @data). + +Actions can be blocked with clutter_binding_pool_block_action() +and then unblocked using clutter_binding_pool_unblock_action(). + + + + + + a #ClutterBindingPool + + + + key symbol + + + + bitmask of modifiers + + + + function to be called when the action is activated + + + + data to be passed to @callback + + + + function to be called when the action is removed + from the pool + + + + + + A #GClosure variant of clutter_binding_pool_override_action(). + +Allows overriding the action for @key_val and @modifiers inside a +#ClutterBindingPool. See clutter_binding_pool_install_closure(). + +When an action has been activated using clutter_binding_pool_activate() +the passed @callback will be invoked (with @data). + +Actions can be blocked with clutter_binding_pool_block_action() +and then unblocked using clutter_binding_pool_unblock_action(). + + + + + + a #ClutterBindingPool + + + + key symbol + + + + bitmask of modifiers + + + + a #GClosure + + + + + + Removes the action matching the given @key_val, @modifiers pair, +if any exists. + + + + + + a #ClutterBindingPool + + + + a key symbol + + + + a bitmask for the modifiers + + + + + + Unblockes all the actions with name @action_name inside @pool. + +Unblocking an action does not cause the callback bound to it to +be invoked in case clutter_binding_pool_activate() was called on +an action previously blocked with clutter_binding_pool_block_action(). + + + + + + a #ClutterBindingPool + + + + an action name + + + + + + The unique name of the #ClutterBindingPool. + + + + + + + + + + + + + #ClutterBlurEffect is an opaque structure +whose members cannot be accessed directly + + Creates a new #ClutterBlurEffect to be used with +clutter_actor_add_effect() + + the newly created #ClutterBlurEffect or %NULL + + + + + + + + + + + + + + The #ClutterBox structure contains only private data and should +be accessed using the provided API + + + + + + Creates a new #ClutterBox. The children of the box will be layed +out by the passed @manager + Use clutter_actor_new() instead. + + the newly created #ClutterBox actor + + + + + a #ClutterLayoutManager + + + + + + Retrieves the background color of @box + +If the #ClutterBox:color-set property is set to %FALSE the +returned #ClutterColor is undefined + Use clutter_actor_get_background_color() instead. + + + + + + a #ClutterBox + + + + return location for a #ClutterColor + + + + + + Retrieves the #ClutterLayoutManager instance used by @box + Use clutter_actor_get_layout_manager() instead. + + a #ClutterLayoutManager. The returned + #ClutterLayoutManager is owned by the #ClutterBox and it should not + be unreferenced + + + + + a #ClutterBox + + + + + + Adds @actor to @box and sets layout properties at the same time, +if the #ClutterLayoutManager used by @box has them + +This function is a wrapper around clutter_container_add_actor() +and clutter_layout_manager_child_set() + +Language bindings should use the vector-based clutter_box_packv() +variant instead + Use clutter_actor_add_child() instead. To set + specific layout properties, use clutter_layout_manager_child_set() + + + + + + a #ClutterBox + + + + a #ClutterActor + + + + the name of the first property to set, or %NULL + + + + a list of property name and value pairs, terminated by %NULL + + + + + + Adds @actor to @box, placing it after @sibling, and sets layout +properties at the same time, if the #ClutterLayoutManager used by +@box supports them + +If @sibling is %NULL then @actor is placed at the end of the +list of children, to be allocated and painted after every other child + +This function is a wrapper around clutter_container_add_actor(), +clutter_container_raise_child() and clutter_layout_manager_child_set() + Use clutter_actor_insert_child_above() instead. + To set specific layout properties, use clutter_layout_manager_child_set() + + + + + + a #ClutterBox + + + + a #ClutterActor + + + + a #ClutterActor or %NULL + + + + the name of the first property to set, or %NULL + + + + a list of property name and value pairs, terminated by %NULL + + + + + + Adds @actor to @box, placing it at @position, and sets layout +properties at the same time, if the #ClutterLayoutManager used by +@box supports them + +If @position is a negative number, or is larger than the number of +children of @box, the new child is added at the end of the list of +children + Use clutter_actor_insert_child_at_index() instead. + To set specific layout properties, use clutter_layout_manager_child_set() + + + + + + a #ClutterBox + + + + a #ClutterActor + + + + the position to insert the @actor at + + + + the name of the first property to set, or %NULL + + + + a list of property name and value pairs, terminated by %NULL + + + + + + Adds @actor to @box, placing it before @sibling, and sets layout +properties at the same time, if the #ClutterLayoutManager used by +@box supports them + +If @sibling is %NULL then @actor is placed at the beginning of the +list of children, to be allocated and painted below every other child + +This function is a wrapper around clutter_container_add_actor(), +clutter_container_lower_child() and clutter_layout_manager_child_set() + Use clutter_actor_insert_child_below() instead. + To set specific layout properties, use clutter_layout_manager_child_set() + + + + + + a #ClutterBox + + + + a #ClutterActor + + + + a #ClutterActor or %NULL + + + + the name of the first property to set, or %NULL + + + + a list of property name and value pairs, terminated by %NULL + + + + + + Vector-based variant of clutter_box_pack(), intended for language +bindings to use + Use clutter_actor_add_child() instead. To set + specific layout properties, use clutter_layout_manager_child_set() + + + + + + a #ClutterBox + + + + a #ClutterActor + + + + the number of properties to set + + + + a vector + containing the property names to set + + + + + + a vector containing the property + values to set + + + + + + + + Sets (or unsets) the background color for @box + Use clutter_actor_set_background_color() instead. + + + + + + a #ClutterBox + + + + the background color, or %NULL to unset + + + + + + Sets the #ClutterLayoutManager for @box + +A #ClutterLayoutManager is a delegate object that controls the +layout of the children of @box + Use clutter_actor_set_layout_manager() instead. + + + + + + a #ClutterBox + + + + a #ClutterLayoutManager + + + + + + The color to be used to paint the background of the +#ClutterBox. Setting this property will set the +#ClutterBox:color-set property as a side effect + +This property sets the #ClutterActor:background-color property +internally. + Use the #ClutterActor:background-color property + + + + Whether the #ClutterBox:color property has been set. + +This property reads the #ClutterActor:background-color-set property +internally. + Use the #ClutterActor:background-color-set property + + + + + + + + + + + The alignment policies available on each axis of the #ClutterBoxLayout + + Align the child to the top or to + to the left, depending on the used axis + + + Align the child to the bottom or to + the right, depending on the used axis + + + Align the child to the center + + + + The #ClutterBoxClass structure contains only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterBoxLayout structure contains only private data +and should be accessed using the provided API + + Creates a new #ClutterBoxLayout layout manager + + the newly created #ClutterBoxLayout + + + + + Retrieves the horizontal and vertical alignment policies for @actor +as set using clutter_box_layout_pack() or clutter_box_layout_set_alignment() + #ClutterBoxLayout will honour #ClutterActor's + #ClutterActor:x-align and #ClutterActor:y-align properies + + + + + + a #ClutterBoxLayout + + + + a #ClutterActor child of @layout + + + + return location for the horizontal alignment policy + + + + return location for the vertical alignment policy + + + + + + Retrieves the duration set using clutter_box_layout_set_easing_duration() + + the duration of the animations, in milliseconds + + + + + a #ClutterBoxLayout + + + + + + Retrieves the easing mode set using clutter_box_layout_set_easing_mode() + + an easing mode + + + + + a #ClutterBoxLayout + + + + + + Retrieves whether @actor should expand inside @layout + #ClutterBoxLayout will honour #ClutterActor's + #ClutterActor:x-expand and #ClutterActor:y-expand properies + + %TRUE if the #ClutterActor should expand, %FALSE otherwise + + + + + a #ClutterBoxLayout + + + + a #ClutterActor child of @layout + + + + + + Retrieves the horizontal and vertical fill policies for @actor +as set using clutter_box_layout_pack() or clutter_box_layout_set_fill() + #ClutterBoxLayout will honour #ClutterActor's + #ClutterActor:x-align and #ClutterActor:y-align properies + + + + + + a #ClutterBoxLayout + + + + a #ClutterActor child of @layout + + + + return location for the horizontal fill policy + + + + return location for the vertical fill policy + + + + + + Retrieves if the children sizes are allocated homogeneously. + + %TRUE if the #ClutterBoxLayout is arranging its children + homogeneously, and %FALSE otherwise + + + + + a #ClutterBoxLayout + + + + + + Retrieves the orientation of the @layout. + + the orientation of the layout + + + + + a #ClutterBoxLayout + + + + + + Retrieves the value set using clutter_box_layout_set_pack_start() + + %TRUE if the #ClutterBoxLayout should pack children + at the beginning of the layout, and %FALSE otherwise + + + + + a #ClutterBoxLayout + + + + + + Retrieves the spacing set using clutter_box_layout_set_spacing() + + the spacing between children of the #ClutterBoxLayout + + + + + a #ClutterBoxLayout + + + + + + Retrieves whether @layout should animate changes in the layout properties. + + %TRUE if the animations should be used, %FALSE otherwise + + + + + a #ClutterBoxLayout + + + + + + Retrieves the orientation of the @layout as set using the +clutter_box_layout_set_vertical() function + Use clutter_box_layout_get_orientation() instead + + %TRUE if the #ClutterBoxLayout is arranging its children + vertically, and %FALSE otherwise + + + + + a #ClutterBoxLayout + + + + + + Packs @actor inside the #ClutterContainer associated to @layout +and sets the layout properties + #ClutterBoxLayout honours #ClutterActor's + align and expand properties. The preferred way is adding + the @actor with clutter_actor_add_child() and setting + #ClutterActor:x-align, #ClutterActor:y-align, + #ClutterActor:x-expand and #ClutterActor:y-expand + + + + + + a #ClutterBoxLayout + + + + a #ClutterActor + + + + whether the @actor should expand + + + + whether the @actor should fill horizontally + + + + whether the @actor should fill vertically + + + + the horizontal alignment policy for @actor + + + + the vertical alignment policy for @actor + + + + + + Sets the horizontal and vertical alignment policies for @actor +inside @layout + #ClutterBoxLayout will honour #ClutterActor's + #ClutterActor:x-align and #ClutterActor:y-align properies + + + + + + a #ClutterBoxLayout + + + + a #ClutterActor child of @layout + + + + Horizontal alignment policy for @actor + + + + Vertical alignment policy for @actor + + + + + + Sets the duration of the animations used by @layout when animating changes +in the layout properties. + The layout manager will honour the easing state + of the children when allocating them. + + + + + + a #ClutterBoxLayout + + + + the duration of the animations, in milliseconds + + + + + + Sets the easing mode to be used by @layout when animating changes in layout +properties. + The layout manager will honour the easing state + of the children when allocating them. + + + + + + a #ClutterBoxLayout + + + + an easing mode, either from #ClutterAnimationMode or a logical id + from clutter_alpha_register_func() + + + + + + Sets whether @actor should expand inside @layout + #ClutterBoxLayout will honour #ClutterActor's + #ClutterActor:x-expand and #ClutterActor:y-expand properies + + + + + + a #ClutterBoxLayout + + + + a #ClutterActor child of @layout + + + + whether @actor should expand + + + + + + Sets the horizontal and vertical fill policies for @actor +inside @layout + #ClutterBoxLayout will honour #ClutterActor's + #ClutterActor:x-align and #ClutterActor:y-align properies + + + + + + a #ClutterBoxLayout + + + + a #ClutterActor child of @layout + + + + whether @actor should fill horizontally the allocated space + + + + whether @actor should fill vertically the allocated space + + + + + + Sets whether the size of @layout children should be +homogeneous + + + + + + a #ClutterBoxLayout + + + + %TRUE if the layout should be homogeneous + + + + + + Sets the orientation of the #ClutterBoxLayout layout manager. + + + + + + a #ClutterBoxLayout + + + + the orientation of the #ClutterBoxLayout + + + + + + Sets whether children of @layout should be layed out by appending +them or by prepending them + + + + + + a #ClutterBoxLayout + + + + %TRUE if the @layout should pack children at the + beginning of the layout + + + + + + Sets the spacing between children of @layout + + + + + + a #ClutterBoxLayout + + + + the spacing between children of the layout, in pixels + + + + + + Sets whether @layout should animate changes in the layout properties + +The duration of the animations is controlled by +clutter_box_layout_set_easing_duration(); the easing mode to be used +by the animations is controlled by clutter_box_layout_set_easing_mode(). + +Enabling animations will override the easing state of each child +of the actor using @layout, and will use the #ClutterBoxLayout:easing-mode +and #ClutterBoxLayout:easing-duration properties instead. + The layout manager will honour the easing state + of the children when allocating them. + + + + + + a #ClutterBoxLayout + + + + %TRUE if the @layout should use animations + + + + + + Sets whether @layout should arrange its children vertically alongside +the Y axis, instead of horizontally alongside the X axis + Use clutter_box_layout_set_orientation() instead. + + + + + + a #ClutterBoxLayout + + + + %TRUE if the layout should be vertical + + + + + + The duration of the animations, in case #ClutterBoxLayout:use-animations +is set to %TRUE. + +The duration is expressed in milliseconds. + The #ClutterBoxLayout will honour the easing state of + the children when allocating them. + + + + The easing mode for the animations, in case +#ClutterBoxLayout:use-animations is set to %TRUE. + +The easing mode has the same semantics of #ClutterAnimation:mode: it can +either be a value from the #ClutterAnimationMode enumeration, like +%CLUTTER_EASE_OUT_CUBIC, or a logical id as returned by +clutter_alpha_register_func(). + +The default value is %CLUTTER_EASE_OUT_CUBIC. + The #ClutterBoxLayout will honour the easing state of + the children when allocating them. + + + + Whether the #ClutterBoxLayout should arrange its children +homogeneously, i.e. all children get the same size + + + + The orientation of the #ClutterBoxLayout, either horizontal +or vertical + + + + Whether the #ClutterBoxLayout should pack items at the start +or append them at the end + + + + The spacing between children of the #ClutterBoxLayout, in pixels + + + + Whether the #ClutterBoxLayout should animate changes in the +layout, overriding the easing state of the children. + #ClutterBoxLayout will honour the easing state + of the children when allocating them. + + + + Whether the #ClutterBoxLayout should arrange its children +alongside the Y axis, instead of alongside the X axis + Use #ClutterBoxLayout:orientation instead. + + + + + + + + + + + The #ClutterBoxLayoutClass structure contains only private +data and should be accessed using the provided API + + + + + + + + + + + + + + + + #ClutterBrightnessContrastEffect is an opaque structure +whose members cannot be directly accessed + + Creates a new #ClutterBrightnessContrastEffect to be used with +clutter_actor_add_effect() + + the newly created + #ClutterBrightnessContrastEffect or %NULL. Use g_object_unref() when + done. + + + + + Retrieves the change in brightness used by @effect. + + + + + + a #ClutterBrightnessContrastEffect + + + + return location for red component of the + change in brightness + + + + return location for green component of the + change in brightness + + + + return location for blue component of the + change in brightness + + + + + + Retrieves the contrast value used by @effect. + + + + + + a #ClutterBrightnessContrastEffect + + + + return location for red component of the + change in contrast + + + + return location for green component of the + change in contrast + + + + return location for blue component of the + change in contrast + + + + + + The range of @brightness is [-1.0, 1.0], where 0.0 designates no change; +a value below 0.0 indicates a decrease in brightness; and a value +above 0.0 indicates an increase of brightness. + + + + + + a #ClutterBrightnessContrastEffect + + + + the brightness change for all three components (r, g, b) + + + + + + The range for each component is [-1.0, 1.0] where 0.0 designates no change, +values below 0.0 mean a decrease in brightness, and values above indicate +an increase. + + + + + + a #ClutterBrightnessContrastEffect + + + + red component of the change in brightness + + + + green component of the change in brightness + + + + blue component of the change in brightness + + + + + + The range for @contrast is [-1.0, 1.0], where 0.0 designates no change; +a value below 0.0 indicates a decrease in contrast; and a value above +0.0 indicates an increase. + + + + + + a #ClutterBrightnessContrastEffect + + + + contrast change for all three channels + + + + + + The range for each component is [-1.0, 1.0] where 0.0 designates no change, +values below 0.0 mean a decrease in contrast, and values above indicate +an increase. + + + + + + a #ClutterBrightnessContrastEffect + + + + red component of the change in contrast + + + + green component of the change in contrast + + + + blue component of the change in contrast + + + + + + The brightness change to apply to the effect. + +This property uses a #ClutterColor to represent the changes to each +color channel. The range is [ 0, 255 ], with 127 as the value used +to indicate no change; values smaller than 127 indicate a decrease +in brightness, and values larger than 127 indicate an increase in +brightness. + + + + The contrast change to apply to the effect. + +This property uses a #ClutterColor to represent the changes to each +color channel. The range is [ 0, 255 ], with 127 as the value used +to indicate no change; values smaller than 127 indicate a decrease +in contrast, and values larger than 127 indicate an increase in +contrast. + + + + + + + Button event. + +The event coordinates are relative to the stage that received the +event, and can be transformed into actor-relative coordinates by +using clutter_actor_transform_stage_point(). + + event type + + + + event time + + + + event flags + + + + event source stage + + + + event source actor + + + + event X coordinate, relative to the stage + + + + event Y coordinate, relative to the stage + + + + button modifiers + + + + event button + + + + number of button presses within the default time + and radius + + + + reserved for future use + + + + the device that originated the event. If you want the physical +device the event originated from, use clutter_event_get_source_device() + + + + + + + + + + + + + + + + + + + + + + + + + + Cogl (internal GL abstraction utility library) backend. Can be "gl" or +"gles" currently + The macro evaluates to "deprecated" as Cogl can be + compiled against multiple GL implementations. + + + + Default value for "now". + + + + + + + + + + + + + + + + The #ClutterCairoTexture struct contains only private data. + Use #ClutterCanvas instead + + + + + + Creates a new #ClutterCairoTexture actor, with a surface of @width by +@height pixels. + Use #ClutterCanvas instead + + the newly created #ClutterCairoTexture actor + + + + + the width of the surface + + + + the height of the surface + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Clears @self's internal drawing surface, so that the next upload +will replace the previous contents of the #ClutterCairoTexture +rather than adding to it. + +Calling this function from within a #ClutterCairoTexture::draw +signal handler will clear the invalidated area. + Use #ClutterCanvas instead + + + + + + a #ClutterCairoTexture + + + + + + Creates a new Cairo context for the @cairo texture. It is +similar to using clutter_cairo_texture_create_region() with @x_offset +and @y_offset of 0, @width equal to the @cairo texture surface width +and @height equal to the @cairo texture surface height. + +Do not call this function within the paint virtual +function or from a callback to the #ClutterActor::paint +signal. + Use the #ClutterCairoTexture::draw signal and + the clutter_cairo_texture_invalidate() function to obtain a + Cairo context for 2D drawing. + + a newly created Cairo context. Use cairo_destroy() + to upload the contents of the context when done drawing + + + + + a #ClutterCairoTexture + + + + + + Creates a new Cairo context that will updat the region defined +by @x_offset, @y_offset, @width and @height. + +Do not call this function within the paint virtual +function or from a callback to the #ClutterActor::paint +signal. + Use the #ClutterCairoTexture::draw signal and + clutter_cairo_texture_invalidate_rectangle() to obtain a + clipped Cairo context for 2D drawing. + + a newly created Cairo context. Use cairo_destroy() + to upload the contents of the context when done drawing + + + + + a #ClutterCairoTexture + + + + offset of the region on the X axis + + + + offset of the region on the Y axis + + + + width of the region, or -1 for the full surface width + + + + height of the region, or -1 for the full surface height + + + + + + Retrieves the value set using clutter_cairo_texture_set_auto_resize(). + Use #ClutterCanvas instead + + %TRUE if the #ClutterCairoTexture should track the + allocation, and %FALSE otherwise + + + + + a #ClutterCairoTexture + + + + + + Retrieves the surface width and height for @self. + Use #ClutterCanvas instead + + + + + + a #ClutterCairoTexture + + + + return location for the surface width, or %NULL + + + + return location for the surface height, or %NULL + + + + + + Invalidates the whole surface of a #ClutterCairoTexture. + +This function will cause the #ClutterCairoTexture::draw signal +to be emitted. + +See also: clutter_cairo_texture_invalidate_rectangle() + Use #ClutterCanvas instead + + + + + + a #ClutterCairoTexture + + + + + + Invalidates a rectangular region of a #ClutterCairoTexture. + +The invalidation will cause the #ClutterCairoTexture::draw signal +to be emitted. + +See also: clutter_cairo_texture_invalidate() + Use #ClutterCanvas instead + + + + + + a #ClutterCairoTexture + + + + a rectangle with the area to invalida, + or %NULL to perform an unbounded invalidation + + + + + + Sets whether the #ClutterCairoTexture should ensure that the +backing Cairo surface used matches the allocation assigned to +the actor. If the allocation changes, the contents of the +#ClutterCairoTexture will also be invalidated automatically. + Use #ClutterCanvas instead + + + + + + a #ClutterCairoTexture + + + + %TRUE if the #ClutterCairoTexture should bind the surface + size to the allocation + + + + + + Resizes the Cairo surface used by @self to @width and @height. + +This function will not invalidate the contents of the Cairo +texture: you will have to explicitly call either +clutter_cairo_texture_invalidate_rectangle() or +clutter_cairo_texture_invalidate(). + Use #ClutterCanvas instead + + + + + + a #ClutterCairoTexture + + + + the new width of the surface + + + + the new height of the surface + + + + + + Controls whether the #ClutterCairoTexture should automatically +resize the Cairo surface whenever the actor's allocation changes. +If :auto-resize is set to %TRUE the surface contents will also +be invalidated automatically. + + + + The height of the Cairo surface used by the #ClutterCairoTexture +actor, in pixels. + + + + The width of the Cairo surface used by the #ClutterCairoTexture +actor, in pixels. + + + + + + + + + + The ::create-surface signal is emitted when a #ClutterCairoTexture +news its surface (re)created, which happens either when the Cairo +context is created with clutter_cairo_texture_create() or +clutter_cairo_texture_create_region(), or when the surface is resized +through clutter_cairo_texture_set_surface_size(). + +The first signal handler that returns a non-%NULL, valid surface will +stop any further signal emission, and the returned surface will be +the one used. + + the newly created #cairo_surface_t for the texture + + + + + the width of the surface to create + + + + the height of the surface to create + + + + + + The ::draw signal is emitted each time a #ClutterCairoTexture has +been invalidated. + +The passed Cairo context passed will be clipped to the invalidated +area. + +It is safe to connect multiple callbacks to this signals; the state +of the Cairo context passed to each callback is automatically saved +and restored, so it's not necessary to call cairo_save() and +cairo_restore(). + + %TRUE if the signal emission should stop, and %FALSE + to continue + + + + + the Cairo context to use to draw + + + + + + + The #ClutterCairoTextureClass struct contains only private data. + Use #ClutterCanvas instead + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Generic callback + + + + + + a #ClutterActor + + + + user data + + + + + + + + + The #ClutterCanvas structure contains +private data and should only be accessed using the provided +API. + + + Creates a new instance of #ClutterCanvas. + +You should call clutter_canvas_set_size() to set the size of the canvas. + +You should call clutter_content_invalidate() every time you wish to +draw the contents of the canvas. + + The newly allocated instance of + #ClutterCanvas. Use g_object_unref() when done. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sets the size of the @canvas, and invalidates the content. + +This function will cause the @canvas to be invalidated only +if the size of the canvas surface has changed. + +If you want to invalidate the contents of the @canvas when setting +the size, you can use the return value of the function to conditionally +call clutter_content_invalidate(): + +|[ + if (!clutter_canvas_set_size (canvas, width, height)) + clutter_content_invalidate (CLUTTER_CONTENT (canvas)); +]| + + this function returns %TRUE if the size change + caused a content invalidation, and %FALSE otherwise + + + + + a #ClutterCanvas + + + + the width of the canvas, in pixels + + + + the height of the canvas, in pixels + + + + + + The height of the canvas. + + + + The width of the canvas. + + + + + + + + + + The #ClutterCanvas::draw signal is emitted each time a canvas is +invalidated. + +It is safe to connect multiple handlers to this signal: each +handler invocation will be automatically protected by cairo_save() +and cairo_restore() pairs. + + %TRUE if the signal emission should stop, and + %FALSE otherwise + + + + + the Cairo context used to draw + + + + the width of the @canvas + + + + the height of the @canvas + + + + + + + The #ClutterCanvasClass structure contains +private data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Base interface for container specific state for child actors. A child +data is meant to be used when you need to keep track of information +about each individual child added to a container. + +In order to use it you should create your own subclass of +#ClutterChildMeta and set the #ClutterContainerIface child_meta_type +interface member to your subclass type, like: + +|[ +static void +my_container_iface_init (ClutterContainerIface *iface) +{ + // set the rest of the #ClutterContainer vtable + + container_iface->child_meta_type = MY_TYPE_CHILD_META; +} +]| + +This will automatically create a #ClutterChildMeta of type +`MY_TYPE_CHILD_META` for every actor that is added to the container. + +The child data for an actor can be retrieved using the +clutter_container_get_child_meta() function. + +The properties of the data and your subclass can be manipulated with +clutter_container_child_set() and clutter_container_child_get() which +act like g_object_set() and g_object_get(). + +You can provide hooks for your own storage as well as control the +instantiation by overriding the #ClutterContainerIface virtual functions +#ClutterContainerIface.create_child_meta(), #ClutterContainerIface.destroy_child_meta(), +and #ClutterContainerIface.get_child_meta(). + + Retrieves the actor wrapped by @data + + a #ClutterActor + + + + + a #ClutterChildMeta + + + + + + Retrieves the container using @data + + a #ClutterContainer + + + + + a #ClutterChildMeta + + + + + + The #ClutterActor being wrapped by this #ClutterChildMeta + + + + The #ClutterContainer that created this #ClutterChildMeta. + + + + + + + the container handling this data + + + + the actor wrapped by this data + + + + + The #ClutterChildMetaClass contains only private data + + + + + + + + + + + + The #ClutterClickAction structure contains +only private data and should be accessed using the provided API + + Creates a new #ClutterClickAction instance + + the newly created #ClutterClickAction + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Retrieves the button that was pressed. + + the button value + + + + + a #ClutterClickAction + + + + + + Retrieves the screen coordinates of the button press. + + + + + + a #ClutterClickAction + + + + return location for the X coordinate, or %NULL + + + + return location for the Y coordinate, or %NULL + + + + + + Retrieves the modifier state of the click action. + + the modifier state parameter, or 0 + + + + + a #ClutterClickAction + + + + + + Emulates a release of the pointer button, which ungrabs the pointer +and unsets the #ClutterClickAction:pressed state. + +This function will also cancel the long press gesture if one was +initiated. + +This function is useful to break a grab, for instance after a certain +amount of time has passed. + + + + + + a #ClutterClickAction + + + + + + Whether the clickable actor has the pointer grabbed + + + + The minimum duration of a press for it to be recognized as a long +press gesture, in milliseconds. + +A value of -1 will make the #ClutterClickAction use the value of +the #ClutterSettings:long-press-duration property. + + + + The maximum allowed distance that can be covered (on both axes) before +a long press gesture is cancelled, in pixels. + +A value of -1 will make the #ClutterClickAction use the value of +the #ClutterSettings:dnd-drag-threshold property. + + + + Whether the clickable actor should be in "pressed" state + + + + + + + + + + The ::clicked signal is emitted when the #ClutterActor to which +a #ClutterClickAction has been applied should respond to a +pointer button press and release events + + + + + + the #ClutterActor attached to the @action + + + + + + The ::long-press signal is emitted during the long press gesture +handling. + +This signal can be emitted multiple times with different states. + +The %CLUTTER_LONG_PRESS_QUERY state will be emitted on button presses, +and its return value will determine whether the long press handling +should be initiated. If the signal handlers will return %TRUE, the +%CLUTTER_LONG_PRESS_QUERY state will be followed either by a signal +emission with the %CLUTTER_LONG_PRESS_ACTIVATE state if the long press +constraints were respected, or by a signal emission with the +%CLUTTER_LONG_PRESS_CANCEL state if the long press was cancelled. + +It is possible to forcibly cancel a long press detection using +clutter_click_action_release(). + + Only the %CLUTTER_LONG_PRESS_QUERY state uses the + returned value of the handler; other states will ignore it + + + + + the #ClutterActor attached to the @action + + + + the long press state + + + + + + + The #ClutterClickActionClass structure +contains only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterTextNode structure is an opaque +type whose members cannot be directly accessed. + + Creates a new #ClutterPaintNode that will clip its child +nodes to the 2D regions added to it. + + the newly created #ClutterPaintNode. + Use clutter_paint_node_unref() when done. + + + + + + The `ClutterClipNodeClass` structure is an opaque +type whose members cannot be directly accessed. + + + The #ClutterClone structure contains only private data +and should be accessed using the provided API + + + + + + Creates a new #ClutterActor which clones @source/ + + the newly created #ClutterClone + + + + + a #ClutterActor, or %NULL + + + + + + Retrieves the source #ClutterActor being cloned by @self. + + the actor source for the clone + + + + + a #ClutterClone + + + + + + Sets @source as the source actor to be cloned by @self. + + + + + + a #ClutterClone + + + + a #ClutterActor, or %NULL + + + + + + This property specifies the source actor being cloned. + + + + + + + + + + + The #ClutterCloneClass structure contains only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Color representation. + + red component, between 0 and 255 + + + + green component, between 0 and 255 + + + + blue component, between 0 and 255 + + + + alpha component, between 0 and 255 + + + + Allocates a new, transparent black #ClutterColor. + + the newly allocated #ClutterColor; use + clutter_color_free() to free its resources + + + + + Creates a new #ClutterColor with the given values. + +This function is the equivalent of: + +|[ + clutter_color_init (clutter_color_alloc (), red, green, blue, alpha); +]| + + the newly allocated color. + Use clutter_color_free() when done + + + + + red component of the color, between 0 and 255 + + + + green component of the color, between 0 and 255 + + + + blue component of the color, between 0 and 255 + + + + alpha component of the color, between 0 and 255 + + + + + + Adds @a to @b and saves the resulting color inside @result. + +The alpha channel of @result is set as as the maximum value +between the alpha channels of @a and @b. + + + + + + a #ClutterColor + + + + a #ClutterColor + + + + return location for the result + + + + + + Makes a copy of the color structure. The result must be +freed using clutter_color_free(). + + an allocated copy of @color. + + + + + a #ClutterColor + + + + + + Darkens @color by a fixed amount, and saves the changed color +in @result. + + + + + + a #ClutterColor + + + + return location for the darker color + + + + + + Compares two #ClutterColor<!-- -->s and checks if they are the same. + +This function can be passed to g_hash_table_new() as the @key_equal_func +parameter, when using #ClutterColor<!-- -->s as keys in a #GHashTable. + + %TRUE if the two colors are the same. + + + + + a #ClutterColor + + + + a #ClutterColor + + + + + + Frees a color structure created with clutter_color_copy(). + + + + + + a #ClutterColor + + + + + + Converts a #ClutterColor to a hash value. + +This function can be passed to g_hash_table_new() as the @hash_func +parameter, when using #ClutterColor<!-- -->s as keys in a #GHashTable. + + a hash value corresponding to the color + + + + + a #ClutterColor + + + + + + Initializes @color with the given values. + + the initialized #ClutterColor + + + + + a #ClutterColor + + + + red component of the color, between 0 and 255 + + + + green component of the color, between 0 and 255 + + + + blue component of the color, between 0 and 255 + + + + alpha component of the color, between 0 and 255 + + + + + + Interpolates between @initial and @final #ClutterColor<!-- -->s +using @progress + + + + + + the initial #ClutterColor + + + + the final #ClutterColor + + + + the interpolation progress + + + + return location for the interpolation + + + + + + Lightens @color by a fixed amount, and saves the changed color +in @result. + + + + + + a #ClutterColor + + + + return location for the lighter color + + + + + + Shades @color by @factor and saves the modified color into @result. + + + + + + a #ClutterColor + + + + the shade factor to apply + + + + return location for the shaded color + + + + + + Subtracts @b from @a and saves the resulting color inside @result. + +This function assumes that the components of @a are greater than the +components of @b; the result is, otherwise, undefined. + +The alpha channel of @result is set as the minimum value +between the alpha channels of @a and @b. + + + + + + a #ClutterColor + + + + a #ClutterColor + + + + return location for the result + + + + + + Converts @color to the HLS format. + +The @hue value is in the 0 .. 360 range. The @luminance and +@saturation values are in the 0 .. 1 range. + + + + + + a #ClutterColor + + + + return location for the hue value or %NULL + + + + return location for the luminance value or %NULL + + + + return location for the saturation value or %NULL + + + + + + Converts @color into a packed 32 bit integer, containing +all the four 8 bit channels used by #ClutterColor. + + a packed color + + + + + a #ClutterColor + + + + + + Returns a textual specification of @color in the hexadecimal form +<literal>&num;rrggbbaa</literal>, where <literal>r</literal>, +<literal>g</literal>, <literal>b</literal> and <literal>a</literal> are +hexadecimal digits representing the red, green, blue and alpha components +respectively. + + a newly-allocated text string + + + + + a #ClutterColor + + + + + + Converts a color expressed in HLS (hue, luminance and saturation) +values into a #ClutterColor. + + + + + + return location for a #ClutterColor + + + + hue value, in the 0 .. 360 range + + + + luminance value, in the 0 .. 1 range + + + + saturation value, in the 0 .. 1 range + + + + + + Converts @pixel from the packed representation of a four 8 bit channel +color to a #ClutterColor. + + + + + + return location for a #ClutterColor + + + + a 32 bit packed integer containing a color + + + + + + Parses a string definition of a color, filling the #ClutterColor.red, +#ClutterColor.green, #ClutterColor.blue and #ClutterColor.alpha fields +of @color. + +The @color is not allocated. + +The format of @str can be either one of: + + - a standard name (as taken from the X11 rgb.txt file) + - an hexadecimal value in the form: `#rgb`, `#rrggbb`, `#rgba`, or `#rrggbbaa` + - a RGB color in the form: `rgb(r, g, b)` + - a RGB color in the form: `rgba(r, g, b, a)` + - a HSL color in the form: `hsl(h, s, l)` + -a HSL color in the form: `hsla(h, s, l, a)` + +where 'r', 'g', 'b' and 'a' are (respectively) the red, green, blue color +intensities and the opacity. The 'h', 's' and 'l' are (respectively) the +hue, saturation and luminance values. + +In the rgb() and rgba() formats, the 'r', 'g', and 'b' values are either +integers between 0 and 255, or percentage values in the range between 0% +and 100%; the percentages require the '%' character. The 'a' value, if +specified, can only be a floating point value between 0.0 and 1.0. + +In the hls() and hlsa() formats, the 'h' value (hue) is an angle between +0 and 360.0 degrees; the 'l' and 's' values (luminance and saturation) are +percentage values in the range between 0% and 100%. The 'a' value, if specified, +can only be a floating point value between 0.0 and 1.0. + +Whitespace inside the definitions is ignored; no leading whitespace +is allowed. + +If the alpha component is not specified then it is assumed to be set to +be fully opaque. + + %TRUE if parsing succeeded, and %FALSE otherwise + + + + + return location for a #ClutterColor + + + + a string specifiying a color + + + + + + Retrieves a static color for the given @color name + +Static colors are created by Clutter and are guaranteed to always be +available and valid + + a pointer to a static color; the returned pointer + is owned by Clutter and it should never be modified or freed + + + + + the named global color + + + + + + + The #ClutterTextNode structure is an opaque +type whose members cannot be directly accessed. + + Creates a new #ClutterPaintNode that will paint a solid color +fill using @color. + + the newly created #ClutterPaintNode. Use + clutter_paint_node_unref() when done + + + + + the color to paint, or %NULL + + + + + + + The `ClutterColorNodeClass` structure is an +opaque type whose members cannot be directly accessed. + + + #ClutterColorizeEffect is an opaque structure +whose members cannot be directly accessed + + Creates a new #ClutterColorizeEffect to be used with +clutter_actor_add_effect() + + the newly created #ClutterColorizeEffect or %NULL + + + + + the color to be used + + + + + + Retrieves the tint used by @effect + + + + + + a #ClutterColorizeEffect + + + + return location for the color used + + + + + + Sets the tint to be used when colorizing + + + + + + a #ClutterColorizeEffect + + + + the color to be used + + + + + + The tint to apply to the actor + + + + + + + + + + The #ClutterConstraint structure contains only +private data and should be accessed using the provided API + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterConstraintClass structure contains +only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #ClutterContainer is an opaque structure whose members cannot be directly +accessed + + Looks up the #GParamSpec for a child property of @klass. + + The #GParamSpec for the property or %NULL + if no such property exist. + + + + + a #GObjectClass implementing the #ClutterContainer interface. + + + + a property name. + + + + + + Returns an array of #GParamSpec for all child properties. + + an array + of #GParamSpec<!-- -->s which should be freed after use. + + + + + + + a #GObjectClass implementing the #ClutterContainer interface. + + + + return location for length of returned array. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Adds a #ClutterActor to @container. This function will emit the +"actor-added" signal. The actor should be parented to +@container. You cannot add a #ClutterActor to more than one +#ClutterContainer. + +This function will call #ClutterContainerIface.add(), which is a +deprecated virtual function. The default implementation will +call clutter_actor_add_child(). + Use clutter_actor_add_child() instead. + + + + + + a #ClutterContainer + + + + the first #ClutterActor to add + + + + + + Calls the #ClutterContainerIface.child_notify() virtual function +of #ClutterContainer. The default implementation will emit the +#ClutterContainer::child-notify signal. + + + + + + a #ClutterContainer + + + + a #ClutterActor + + + + a #GParamSpec + + + + + + Creates the #ClutterChildMeta wrapping @actor inside the +@container, if the #ClutterContainerIface::child_meta_type +class member is not set to %G_TYPE_INVALID. + +This function is only useful when adding a #ClutterActor to +a #ClutterContainer implementation outside of the +#ClutterContainer::add() virtual function implementation. + +Applications should not call this function. + + + + + + a #ClutterContainer + + + + a #ClutterActor + + + + + + Destroys the #ClutterChildMeta wrapping @actor inside the +@container, if any. + +This function is only useful when removing a #ClutterActor to +a #ClutterContainer implementation outside of the +#ClutterContainer::add() virtual function implementation. + +Applications should not call this function. + + + + + + a #ClutterContainer + + + + a #ClutterActor + + + + + + Calls @callback for each child of @container that was added +by the application (with clutter_container_add_actor()). Does +not iterate over "internal" children that are part of the +container's own implementation, if any. + +This function calls the #ClutterContainerIface.foreach() +virtual function, which has been deprecated. + Use clutter_actor_get_first_child() or + clutter_actor_get_last_child() to retrieve the beginning of + the list of children, and clutter_actor_get_next_sibling() + and clutter_actor_get_previous_sibling() to iterate over it; + alternatively, use the #ClutterActorIter API. + + + + + + a #ClutterContainer + + + + a function to be called for each child + + + + data to be passed to the function, or %NULL + + + + + + Calls @callback for each child of @container, including "internal" +children built in to the container itself that were never added +by the application. + +This function calls the #ClutterContainerIface.foreach_with_internals() +virtual function, which has been deprecated. + See clutter_container_foreach(). + + + + + + a #ClutterContainer + + + + a function to be called for each child + + + + data to be passed to the function, or %NULL + + + + + + Retrieves the #ClutterChildMeta which contains the data about the +@container specific state for @actor. + + the #ClutterChildMeta for the @actor child + of @container or %NULL if the specifiec actor does not exist or the + container is not configured to provide #ClutterChildMeta<!-- -->s + + + + + a #ClutterContainer + + + + a #ClutterActor that is a child of @container. + + + + + + Lowers @actor to @sibling level, in the depth ordering. + +This function calls the #ClutterContainerIface.lower() virtual function, +which has been deprecated. The default implementation will call +clutter_actor_set_child_below_sibling(). + Use clutter_actor_set_child_below_sibling() instead. + + + + + + a #ClutterContainer + + + + the actor to raise + + + + the sibling to lower to, or %NULL to lower + to the bottom + + + + + + Raises @actor to @sibling level, in the depth ordering. + +This function calls the #ClutterContainerIface.raise() virtual function, +which has been deprecated. The default implementation will call +clutter_actor_set_child_above_sibling(). + Use clutter_actor_set_child_above_sibling() instead. + + + + + + a #ClutterContainer + + + + the actor to raise + + + + the sibling to raise to, or %NULL to raise + to the top + + + + + + Removes @actor from @container. The actor should be unparented, so +if you want to keep it around you must hold a reference to it +yourself, using g_object_ref(). When the actor has been removed, +the "actor-removed" signal is emitted by @container. + +This function will call #ClutterContainerIface.remove(), which is a +deprecated virtual function. The default implementation will call +clutter_actor_remove_child(). + Use clutter_actor_remove_child() instead. + + + + + + a #ClutterContainer + + + + a #ClutterActor + + + + + + Sorts a container's children using their depth. This function should not +be normally used by applications. + The #ClutterContainerIface.sort_depth_order() virtual + function should not be used any more; the default implementation in + #ClutterContainer does not do anything. + + + + + + a #ClutterContainer + + + + + + Adds a list of #ClutterActor<!-- -->s to @container. Each time and +actor is added, the "actor-added" signal is emitted. Each actor should +be parented to @container, which takes a reference on the actor. You +cannot add a #ClutterActor to more than one #ClutterContainer. + +This function will call #ClutterContainerIface.add(), which is a +deprecated virtual function. The default implementation will +call clutter_actor_add_child(). + Use clutter_actor_add_child() instead. + + + + + + a #ClutterContainer + + + + the first #ClutterActor to add + + + + %NULL terminated list of actors to add + + + + + + Adds a #ClutterActor to @container. This function will emit the +"actor-added" signal. The actor should be parented to +@container. You cannot add a #ClutterActor to more than one +#ClutterContainer. + +This function will call #ClutterContainerIface.add(), which is a +deprecated virtual function. The default implementation will +call clutter_actor_add_child(). + Use clutter_actor_add_child() instead. + + + + + + a #ClutterContainer + + + + the first #ClutterActor to add + + + + + + Alternative va_list version of clutter_container_add(). + +This function will call #ClutterContainerIface.add(), which is a +deprecated virtual function. The default implementation will +call clutter_actor_add_child(). + Use clutter_actor_add_child() instead. + + + + + + a #ClutterContainer + + + + the first #ClutterActor to add + + + + list of actors to add, followed by %NULL + + + + + + Gets @container specific properties of an actor. + +In general, a copy is made of the property contents and the caller is +responsible for freeing the memory in the appropriate manner for the type, for +instance by calling g_free() or g_object_unref(). + + + + + + a #ClutterContainer + + + + a #ClutterActor that is a child of @container. + + + + name of the first property to be set. + + + + value for the first property, followed optionally by more name/value +pairs terminated with NULL. + + + + + + Gets a container specific property of a child of @container, In general, +a copy is made of the property contents and the caller is responsible for +freeing the memory by calling g_value_unset(). + +Note that clutter_container_child_set_property() is really intended for +language bindings, clutter_container_child_set() is much more convenient +for C programming. + + + + + + a #ClutterContainer + + + + a #ClutterActor that is a child of @container. + + + + the name of the property to set. + + + + the value. + + + + + + Calls the #ClutterContainerIface.child_notify() virtual function +of #ClutterContainer. The default implementation will emit the +#ClutterContainer::child-notify signal. + + + + + + a #ClutterContainer + + + + a #ClutterActor + + + + a #GParamSpec + + + + + + Sets container specific properties on the child of a container. + + + + + + a #ClutterContainer + + + + a #ClutterActor that is a child of @container. + + + + name of the first property to be set. + + + + value for the first property, followed optionally by more name/value +pairs terminated with NULL. + + + + + + Sets a container-specific property on a child of @container. + + + + + + a #ClutterContainer + + + + a #ClutterActor that is a child of @container. + + + + the name of the property to set. + + + + the value. + + + + + + Creates the #ClutterChildMeta wrapping @actor inside the +@container, if the #ClutterContainerIface::child_meta_type +class member is not set to %G_TYPE_INVALID. + +This function is only useful when adding a #ClutterActor to +a #ClutterContainer implementation outside of the +#ClutterContainer::add() virtual function implementation. + +Applications should not call this function. + + + + + + a #ClutterContainer + + + + a #ClutterActor + + + + + + Destroys the #ClutterChildMeta wrapping @actor inside the +@container, if any. + +This function is only useful when removing a #ClutterActor to +a #ClutterContainer implementation outside of the +#ClutterContainer::add() virtual function implementation. + +Applications should not call this function. + + + + + + a #ClutterContainer + + + + a #ClutterActor + + + + + + Finds a child actor of a container by its name. Search recurses +into any child container. + + The child actor with the requested name, + or %NULL if no actor with that name was found. + + + + + a #ClutterContainer + + + + the name of the requested child. + + + + + + Calls @callback for each child of @container that was added +by the application (with clutter_container_add_actor()). Does +not iterate over "internal" children that are part of the +container's own implementation, if any. + +This function calls the #ClutterContainerIface.foreach() +virtual function, which has been deprecated. + Use clutter_actor_get_first_child() or + clutter_actor_get_last_child() to retrieve the beginning of + the list of children, and clutter_actor_get_next_sibling() + and clutter_actor_get_previous_sibling() to iterate over it; + alternatively, use the #ClutterActorIter API. + + + + + + a #ClutterContainer + + + + a function to be called for each child + + + + data to be passed to the function, or %NULL + + + + + + Calls @callback for each child of @container, including "internal" +children built in to the container itself that were never added +by the application. + +This function calls the #ClutterContainerIface.foreach_with_internals() +virtual function, which has been deprecated. + See clutter_container_foreach(). + + + + + + a #ClutterContainer + + + + a function to be called for each child + + + + data to be passed to the function, or %NULL + + + + + + Retrieves the #ClutterChildMeta which contains the data about the +@container specific state for @actor. + + the #ClutterChildMeta for the @actor child + of @container or %NULL if the specifiec actor does not exist or the + container is not configured to provide #ClutterChildMeta<!-- -->s + + + + + a #ClutterContainer + + + + a #ClutterActor that is a child of @container. + + + + + + Retrieves all the children of @container. + Use clutter_actor_get_children() instead. + + a list + of #ClutterActor<!-- -->s. Use g_list_free() on the returned + list when done. + + + + + + + a #ClutterContainer + + + + + + Lowers @actor to @sibling level, in the depth ordering. + +This function calls the #ClutterContainerIface.lower() virtual function, +which has been deprecated. The default implementation will call +clutter_actor_set_child_below_sibling(). + Use clutter_actor_set_child_below_sibling() instead. + + + + + + a #ClutterContainer + + + + the actor to raise + + + + the sibling to lower to, or %NULL to lower + to the bottom + + + + + + Raises @actor to @sibling level, in the depth ordering. + +This function calls the #ClutterContainerIface.raise() virtual function, +which has been deprecated. The default implementation will call +clutter_actor_set_child_above_sibling(). + Use clutter_actor_set_child_above_sibling() instead. + + + + + + a #ClutterContainer + + + + the actor to raise + + + + the sibling to raise to, or %NULL to raise + to the top + + + + + + Removes a %NULL terminated list of #ClutterActor<!-- -->s from +@container. Each actor should be unparented, so if you want to keep it +around you must hold a reference to it yourself, using g_object_ref(). +Each time an actor is removed, the "actor-removed" signal is +emitted by @container. + +This function will call #ClutterContainerIface.remove(), which is a +deprecated virtual function. The default implementation will call +clutter_actor_remove_child(). + Use clutter_actor_remove_child() instead. + + + + + + a #ClutterContainer + + + + first #ClutterActor to remove + + + + a %NULL-terminated list of actors to remove + + + + + + Removes @actor from @container. The actor should be unparented, so +if you want to keep it around you must hold a reference to it +yourself, using g_object_ref(). When the actor has been removed, +the "actor-removed" signal is emitted by @container. + +This function will call #ClutterContainerIface.remove(), which is a +deprecated virtual function. The default implementation will call +clutter_actor_remove_child(). + Use clutter_actor_remove_child() instead. + + + + + + a #ClutterContainer + + + + a #ClutterActor + + + + + + Alternative va_list version of clutter_container_remove(). + +This function will call #ClutterContainerIface.remove(), which is a +deprecated virtual function. The default implementation will call +clutter_actor_remove_child(). + Use clutter_actor_remove_child() instead. + + + + + + a #ClutterContainer + + + + the first #ClutterActor to add + + + + list of actors to remove, followed by %NULL + + + + + + Sorts a container's children using their depth. This function should not +be normally used by applications. + The #ClutterContainerIface.sort_depth_order() virtual + function should not be used any more; the default implementation in + #ClutterContainer does not do anything. + + + + + + a #ClutterContainer + + + + + + The ::actor-added signal is emitted each time an actor +has been added to @container. + + + + + + the new child that has been added to @container + + + + + + The ::actor-removed signal is emitted each time an actor +is removed from @container. + + + + + + the child that has been removed from @container + + + + + + The ::child-notify signal is emitted each time a property is +being set through the clutter_container_child_set() and +clutter_container_child_set_property() calls. + + + + + + the child that has had a property set + + + + the #GParamSpec of the property set + + + + + + + Base interface for container actors. The @add, @remove and @foreach +virtual functions must be provided by any implementation; the other +virtual functions are optional. + + + + + + + + + + + a #ClutterContainer + + + + the first #ClutterActor to add + + + + + + + + + + + + + a #ClutterContainer + + + + a #ClutterActor + + + + + + + + + + + + + a #ClutterContainer + + + + a function to be called for each child + + + + data to be passed to the function, or %NULL + + + + + + + + + + + + + a #ClutterContainer + + + + a function to be called for each child + + + + data to be passed to the function, or %NULL + + + + + + + + + + + + + a #ClutterContainer + + + + the actor to raise + + + + the sibling to raise to, or %NULL to raise + to the top + + + + + + + + + + + + + a #ClutterContainer + + + + the actor to raise + + + + the sibling to lower to, or %NULL to lower + to the bottom + + + + + + + + + + + + + a #ClutterContainer + + + + + + + The GType used for storing auxiliary information about + each of the containers children. + + + + + + + + + + a #ClutterContainer + + + + a #ClutterActor + + + + + + + + + + + + + a #ClutterContainer + + + + a #ClutterActor + + + + + + + + + the #ClutterChildMeta for the @actor child + of @container or %NULL if the specifiec actor does not exist or the + container is not configured to provide #ClutterChildMeta<!-- -->s + + + + + a #ClutterContainer + + + + a #ClutterActor that is a child of @container. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a #ClutterContainer + + + + a #ClutterActor + + + + a #GParamSpec + + + + + + + + The #ClutterContent structure is an opaque type +whose members cannot be acccessed directly. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Retrieves the natural size of the @content, if any. + +The natural size of a #ClutterContent is defined as the size the content +would have regardless of the allocation of the actor that is painting it, +for instance the size of an image data. + + %TRUE if the content has a preferred size, and %FALSE + otherwise + + + + + a #ClutterContent + + + + return location for the natural width of the content + + + + return location for the natural height of the content + + + + + + Invalidates a #ClutterContent. + +This function should be called by #ClutterContent implementations when +they change the way a the content should be painted regardless of the +actor state. + + + + + + a #ClutterContent + + + + + + + + + + + + + + + + + + + + + + Retrieves the natural size of the @content, if any. + +The natural size of a #ClutterContent is defined as the size the content +would have regardless of the allocation of the actor that is painting it, +for instance the size of an image data. + + %TRUE if the content has a preferred size, and %FALSE + otherwise + + + + + a #ClutterContent + + + + return location for the natural width of the content + + + + return location for the natural height of the content + + + + + + Invalidates a #ClutterContent. + +This function should be called by #ClutterContent implementations when +they change the way a the content should be painted regardless of the +actor state. + + + + + + a #ClutterContent + + + + + + This signal is emitted each time a #ClutterContent implementation is +assigned to a #ClutterActor. + + + + + + a #ClutterActor + + + + + + This signal is emitted each time a #ClutterContent implementation is +removed from a #ClutterActor. + + + + + + a #ClutterActor + + + + + + + Controls the alignment of the #ClutterContent inside a #ClutterActor. + + Align the content to the top left corner + + + Align the content to the top edge + + + Align the content to the top right corner + + + Align the content to the left edge + + + Align the content to the center + + + Align the content to the right edge + + + Align the content to the bottom left corner + + + Align the content to the bottom edge + + + Align the content to the bottom right corner + + + Resize the content to fill the allocation + + + Resize the content to remain within the + allocation, while maintaining the aspect ratio + + + + The #ClutterContentIface structure contains only +private data. + + + + + + + %TRUE if the content has a preferred size, and %FALSE + otherwise + + + + + a #ClutterContent + + + + return location for the natural width of the content + + + + return location for the natural height of the content + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a #ClutterContent + + + + + + + + Content repeat modes. + + No repeat + + + Repeat the content on the X axis + + + Repeat the content on the Y axis + + + Repeat the content on both axis + + + + + + + + + + + + + + + + Event for the movement of the pointer across different actors + + event type + + + + event time + + + + event flags + + + + event source stage + + + + event source actor + + + + event X coordinate + + + + event Y coordinate + + + + the device that originated the event. If you want the physical +device the event originated from, use clutter_event_get_source_device() + + + + actor related to the crossing + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterDeformEffect structure contains +only private data and should be accessed using the provided API + + + + + + + + + + + + + + + + + + + + + Retrieves the handle to the back face material used by @effect + + a handle for the material, or %NULL. + The returned material is owned by the #ClutterDeformEffect and it + should not be freed directly + + + + + a #ClutterDeformEffect + + + + + + Retrieves the number of horizontal and vertical tiles used to sub-divide +the actor's geometry during the effect + + + + + + a #ClutterDeformEffect + + + + return location for the number of horizontal tiles, + or %NULL + + + + return location for the number of vertical tiles, + or %NULL + + + + + + Invalidates the @effect<!-- -->'s vertices and, if it is associated +to an actor, it will queue a redraw + + + + + + a #ClutterDeformEffect + + + + + + Sets the material that should be used when drawing the back face +of the actor during a deformation + +The #ClutterDeformEffect will take a reference on the material's +handle + + + + + + a #ClutterDeformEffect + + + + a handle to a Cogl material + + + + + + Sets the number of horizontal and vertical tiles to be used +when applying the effect + +More tiles allow a finer grained deformation at the expenses +of computation + + + + + + a #ClutterDeformEffect + + + + number of horizontal tiles + + + + number of vertical tiles + + + + + + A material to be used when painting the back of the actor +to which this effect has been applied + +By default, no material will be used + + + + The number of horizontal tiles. The bigger the number, the +smaller the tiles + + + + The number of vertical tiles. The bigger the number, the +smaller the tiles + + + + + + + + + + + The #ClutterDeformEffectClass structure contains +only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #ClutterDesaturateEffect is an opaque structure +whose members cannot be directly accessed + + Creates a new #ClutterDesaturateEffect to be used with +clutter_actor_add_effect() + + the newly created #ClutterDesaturateEffect or %NULL + + + + + the desaturation factor, between 0.0 and 1.0 + + + + + + Retrieves the desaturation factor of @effect + + the desaturation factor + + + + + a #ClutterDesaturateEffect + + + + + + Sets the desaturation factor for @effect, with 0.0 being "do not desaturate" +and 1.0 being "fully desaturate" + + + + + + a #ClutterDesaturateEffect + + + + the desaturation factor, between 0.0 and 1.0 + + + + + + The desaturation factor, between 0.0 (no desaturation) and 1.0 (full +desaturation). + + + + + + + The #ClutterDeviceManager structure contains only private data + + Retrieves the device manager singleton + + the #ClutterDeviceManager singleton. + The returned instance is owned by Clutter and it should not be + modified or freed + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a virtual input device. + + a newly created virtual device + + + + + a #ClutterDeviceManager + + + + the type of the virtual device + + + + + + Retrieves the core #ClutterInputDevice of type @device_type + +Core devices are devices created automatically by the default +Clutter backend + + a #ClutterInputDevice or %NULL. The + returned device is owned by the #ClutterDeviceManager and should + not be modified or freed + + + + + a #ClutterDeviceManager + + + + the type of the core device + + + + + + Retrieves the #ClutterInputDevice with the given @device_id + + a #ClutterInputDevice or %NULL. The + returned device is owned by the #ClutterDeviceManager and should + never be modified or freed + + + + + a #ClutterDeviceManager + + + + the integer id of a device + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a virtual input device. + + a newly created virtual device + + + + + a #ClutterDeviceManager + + + + the type of the virtual device + + + + + + Retrieves the core #ClutterInputDevice of type @device_type + +Core devices are devices created automatically by the default +Clutter backend + + a #ClutterInputDevice or %NULL. The + returned device is owned by the #ClutterDeviceManager and should + not be modified or freed + + + + + a #ClutterDeviceManager + + + + the type of the core device + + + + + + Retrieves the #ClutterInputDevice with the given @device_id + + a #ClutterInputDevice or %NULL. The + returned device is owned by the #ClutterDeviceManager and should + never be modified or freed + + + + + a #ClutterDeviceManager + + + + the integer id of a device + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lists all currently registered input devices + + + a newly allocated list of #ClutterInputDevice objects. Use + g_slist_free() to deallocate it when done + + + + + + + a #ClutterDeviceManager + + + + + + Lists all currently registered input devices + + + a pointer to the internal list of #ClutterInputDevice objects. The + returned list is owned by the #ClutterDeviceManager and should never + be modified or freed + + + + + + + a #ClutterDeviceManager + + + + + + + + + + + + + + + + + + + + + + + + + + + + The ::device-added signal is emitted each time a device has been +added to the #ClutterDeviceManager + + + + + + the newly added #ClutterInputDevice + + + + + + The ::device-removed signal is emitted each time a device has been +removed from the #ClutterDeviceManager + + + + + + the removed #ClutterInputDevice + + + + + + The ::kbd-a11y-flags-changed signal is emitted each time the +ClutterKeyboardA11yFlags configuration is changed as the result of +keyboard accessibilty operations. + + + + + + the new ClutterKeyboardA11yFlags configuration + + + + the ClutterKeyboardA11yFlags changed + + + + + + The ::kbd-a11y-mods-state-changed signal is emitted each time either the +latched modifiers mask or locked modifiers mask are changed as the +result of keyboard accessibilty's sticky keys operations. + + + + + + the latched modifier mask from stickykeys + + + + the locked modifier mask from stickykeys + + + + + + + + + + + + + + + + + + + + The #ClutterDeviceManagerClass structure contains only private data + + + + + + + + + + + + + + + + + + + + + a #ClutterInputDevice or %NULL. The + returned device is owned by the #ClutterDeviceManager and should + not be modified or freed + + + + + a #ClutterDeviceManager + + + + the type of the core device + + + + + + + + + a #ClutterInputDevice or %NULL. The + returned device is owned by the #ClutterDeviceManager and should + never be modified or freed + + + + + a #ClutterDeviceManager + + + + the integer id of a device + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a newly created virtual device + + + + + a #ClutterDeviceManager + + + + the type of the virtual device + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterDragAction structure contains only +private data and should be accessed using the provided API + + Creates a new #ClutterDragAction instance + + the newly created #ClutterDragAction + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Retrieves the "drag area" associated with @action, that +is a #ClutterRect that constrains the actor movements, +in parents coordinates. + + %TRUE if the actor is actually constrained (and thus + @drag_area is valid), %FALSE otherwise + + + + + a #ClutterDragAction + + + + a #ClutterRect to be filled + + + + + + Retrieves the axis constraint set by clutter_drag_action_set_drag_axis() + + the axis constraint + + + + + a #ClutterDragAction + + + + + + Retrieves the drag handle set by clutter_drag_action_set_drag_handle() + + a #ClutterActor, used as the drag + handle, or %NULL if none was set + + + + + a #ClutterDragAction + + + + + + Retrieves the values set by clutter_drag_action_set_drag_threshold(). + +If the #ClutterDragAction:x-drag-threshold property or the +#ClutterDragAction:y-drag-threshold property have been set to -1 then +this function will return the default drag threshold value as stored +by the #ClutterSettings:dnd-drag-threshold property of #ClutterSettings. + + + + + + a #ClutterDragAction + + + + return location for the horizontal drag + threshold value, in pixels + + + + return location for the vertical drag + threshold value, in pixels + + + + + + Retrieves the coordinates, in stage space, of the latest motion +event during the dragging + + + + + + a #ClutterDragAction + + + + return location for the latest motion + event's X coordinate + + + + return location for the latest motion + event's Y coordinate + + + + + + Retrieves the coordinates, in stage space, of the press event +that started the dragging + + + + + + a #ClutterDragAction + + + + return location for the press event's X coordinate + + + + return location for the press event's Y coordinate + + + + + + Sets @drag_area to constrain the dragging of the actor associated +with @action, so that it position is always within @drag_area, expressed +in parent's coordinates. +If @drag_area is %NULL, the actor is not constrained. + + + + + + a #ClutterDragAction + + + + a #ClutterRect + + + + + + Restricts the dragging action to a specific axis + + + + + + a #ClutterDragAction + + + + the axis to constraint the dragging to + + + + + + Sets the actor to be used as the drag handle. + + + + + + a #ClutterDragAction + + + + a #ClutterActor, or %NULL to unset + + + + + + Sets the horizontal and vertical drag thresholds that must be +cleared by the pointer before @action can begin the dragging. + +If @x_threshold or @y_threshold are set to -1 then the default +drag threshold stored in the #ClutterSettings:dnd-drag-threshold +property of #ClutterSettings will be used. + + + + + + a #ClutterDragAction + + + + a distance on the horizontal axis, in pixels, or + -1 to use the default drag threshold from #ClutterSettings + + + + a distance on the vertical axis, in pixels, or + -1 to use the default drag threshold from #ClutterSettings + + + + + + Constains the dragging action (or in particular, the resulting +actor position) to the specified #ClutterRect, in parent's +coordinates. + + + + Whether the #ClutterDragAction:drag-area property has been set. + + + + Constraints the dragging action to the specified axis + + + + The #ClutterActor that is effectively being dragged + +A #ClutterDragAction will, be default, use the #ClutterActor that +has been attached to the action; it is possible to create a +separate #ClutterActor and use it instead. + +Setting this property has no effect on the #ClutterActor argument +passed to the #ClutterDragAction signals + + + + The horizontal threshold, in pixels, that the cursor must travel +in order to begin a drag action. + +When set to a positive value, #ClutterDragAction will only emit +#ClutterDragAction::drag-begin if the pointer has moved +horizontally at least of the given amount of pixels since +the button press event. + +When set to -1, #ClutterDragAction will use the default threshold +stored in the #ClutterSettings:dnd-drag-threshold property of +#ClutterSettings. + +When read, this property will always return a valid drag +threshold, either as set or the default one. + + + + The vertical threshold, in pixels, that the cursor must travel +in order to begin a drag action. + +When set to a positive value, #ClutterDragAction will only emit +#ClutterDragAction::drag-begin if the pointer has moved +vertically at least of the given amount of pixels since +the button press event. + +When set to -1, #ClutterDragAction will use the value stored +in the #ClutterSettings:dnd-drag-threshold property of +#ClutterSettings. + +When read, this property will always return a valid drag +threshold, either as set or the default one. + + + + + + + + + + The ::drag-begin signal is emitted when the #ClutterDragAction +starts the dragging + +The emission of this signal can be delayed by using the +#ClutterDragAction:x-drag-threshold and +#ClutterDragAction:y-drag-threshold properties + + + + + + the #ClutterActor attached to the action + + + + the X coordinate (in stage space) of the press event + + + + the Y coordinate (in stage space) of the press event + + + + the modifiers of the press event + + + + + + The ::drag-end signal is emitted at the end of the dragging, +when the pointer button's is released + +This signal is emitted if and only if the #ClutterDragAction::drag-begin +signal has been emitted first + + + + + + the #ClutterActor attached to the action + + + + the X coordinate (in stage space) of the release event + + + + the Y coordinate (in stage space) of the release event + + + + the modifiers of the release event + + + + + + The ::drag-motion signal is emitted for each motion event after +the #ClutterDragAction::drag-begin signal has been emitted. + +The components of the distance between the press event and the +latest motion event are computed in the actor's coordinate space, +to take into account eventual transformations. If you want the +stage coordinates of the latest motion event you can use +clutter_drag_action_get_motion_coords(). + +The default handler of the signal will call clutter_actor_move_by() +either on @actor or, if set, of #ClutterDragAction:drag-handle using +the @delta_x and @delta_y components of the dragging motion. If you +want to override the default behaviour, you can connect to the +#ClutterDragAction::drag-progress signal and return %FALSE from the +handler. + + + + + + the #ClutterActor attached to the action + + + + the X component of the distance between the press event + that began the dragging and the current position of the pointer, + as of the latest motion event + + + + the Y component of the distance between the press event + that began the dragging and the current position of the pointer, + as of the latest motion event + + + + + + The ::drag-progress signal is emitted for each motion event after +the #ClutterDragAction::drag-begin signal has been emitted. + +The components of the distance between the press event and the +latest motion event are computed in the actor's coordinate space, +to take into account eventual transformations. If you want the +stage coordinates of the latest motion event you can use +clutter_drag_action_get_motion_coords(). + +The default handler will emit #ClutterDragAction::drag-motion, +if #ClutterDragAction::drag-progress emission returns %TRUE. + + %TRUE if the drag should continue, and %FALSE + if it should be stopped. + + + + + the #ClutterActor attached to the action + + + + the X component of the distance between the press event + that began the dragging and the current position of the pointer, + as of the latest motion event + + + + the Y component of the distance between the press event + that began the dragging and the current position of the pointer, + as of the latest motion event + + + + + + + The #ClutterDragActionClass structure contains +only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The axis of the constraint that should be applied on the +dragging action + + No constraint + + + Set a constraint on the X axis + + + Set a constraint on the Y axis + + + + The #ClutterDropAction structure contains only +private data and should be accessed using the provided API. + + Creates a new #ClutterDropAction. + +Use clutter_actor_add_action() to add the action to a #ClutterActor. + + the newly created #ClutterDropAction + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The ::can-drop signal is emitted when the dragged actor is dropped +on @actor. The return value of the ::can-drop signal will determine +whether or not the #ClutterDropAction::drop signal is going to be +emitted on @action. + +The default implementation of #ClutterDropAction returns %TRUE for +this signal. + + %TRUE if the drop is accepted, and %FALSE otherwise + + + + + the #ClutterActor attached to the @action + + + + the X coordinate (in stage space) of the drop event + + + + the Y coordinate (in stage space) of the drop event + + + + + + The ::drop signal is emitted when the dragged actor is dropped +on @actor. This signal is only emitted if at least an handler of +#ClutterDropAction::can-drop returns %TRUE. + + + + + + the #ClutterActor attached to the @action + + + + the X coordinate (in stage space) of the drop event + + + + the Y coordinate (in stage space) of the drop event + + + + + + The ::drop-cancel signal is emitted when the drop is refused +by an emission of the #ClutterDropAction::can-drop signal. + +After the ::drop-cancel signal is fired the active drag is +terminated. + + + + + + the #ClutterActor attached to the @action + + + + the X coordinate (in stage space) of the drop event + + + + the Y coordinate (in stage space) of the drop event + + + + + + The ::over-in signal is emitted when the dragged actor crosses +into @actor. + + + + + + the #ClutterActor attached to the @action + + + + + + The ::over-out signal is emitted when the dragged actor crosses +outside @actor. + + + + + + the #ClutterActor attached to the @action + + + + + + + The #ClutterDropActionClass structure contains +only private data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Continues the propagation of an event; this macro should be +used in event-related signals. + + + + Stops the propagation of an event; this macro should be used +in event-related signals. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterEffect structure contains only private data and should +be accessed using the provided API + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Queues a repaint of the effect. The effect can detect when the ‘paint’ +method is called as a result of this function because it will not +have the %CLUTTER_EFFECT_PAINT_ACTOR_DIRTY flag set. In that case the +effect is free to assume that the actor has not changed its +appearance since the last time it was painted so it doesn't need to +call clutter_actor_continue_paint() if it can draw a cached +image. This is mostly intended for effects that are using a +%CoglOffscreen to redirect the actor (such as +%ClutterOffscreenEffect). In that case the effect can save a bit of +rendering time by painting the cached texture without causing the +entire actor to be painted. + +This function can be used by effects that have their own animatable +parameters. For example, an effect which adds a varying degree of a +red tint to an actor by redirecting it through a CoglOffscreen +might have a property to specify the level of tint. When this value +changes, the underlying actor doesn't need to be redrawn so the +effect can call clutter_effect_queue_repaint() to make sure the +effect is repainted. + +Note however that modifying the position of the parent of an actor +may change the appearance of the actor because its transformation +matrix would change. In this case a redraw wouldn't be queued on +the actor itself so the %CLUTTER_EFFECT_PAINT_ACTOR_DIRTY would still +not be set. The effect can detect this case by keeping track of the +last modelview matrix that was used to render the actor and +veryifying that it remains the same in the next paint. + +Any other effects that are layered on top of the passed in effect +will still be passed the %CLUTTER_EFFECT_PAINT_ACTOR_DIRTY flag. If +anything queues a redraw on the actor without specifying an effect +or with an effect that is lower in the chain of effects than this +one then that will override this call. In that case this effect +will instead be called with the %CLUTTER_EFFECT_PAINT_ACTOR_DIRTY +flag set. + + + + + + A #ClutterEffect which needs redrawing + + + + + + + + + + The #ClutterEffectClass structure contains only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Flags passed to the ‘paint’ or ‘pick’ method of #ClutterEffect. + + The actor or one of its children + has queued a redraw before this paint. This implies that the effect + should call clutter_actor_continue_paint() to chain to the next + effect and can not cache any results from a previous paint. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Generic event wrapper. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a new #ClutterEvent of the specified type. + + A newly allocated #ClutterEvent. + + + + + The type of event. + + + + + + Copies @event. + + A newly allocated #ClutterEvent + + + + + A #ClutterEvent. + + + + + + Frees all resources used by @event. + + + + + + A #ClutterEvent. + + + + + + Retrieves the angle relative from @source to @target. + +The direction of the angle is from the position X axis towards +the positive Y axis. + + the angle between two #ClutterEvent + + + + + a #ClutterEvent + + + + a #ClutterEvent + + + + + + Retrieves the array of axes values attached to the event. + + an array of axis values + + + + + a #ClutterEvent + + + + return location for the number of axes returned + + + + + + Retrieves the button number of @event + + the button number + + + + + a #ClutterEvent of type %CLUTTER_BUTTON_PRESS or + of type %CLUTTER_BUTTON_RELEASE + + + + + + Retrieves the number of clicks of @event + + the click count + + + + + a #ClutterEvent of type %CLUTTER_BUTTON_PRESS or + of type %CLUTTER_BUTTON_RELEASE + + + + + + Retrieves the coordinates of @event and puts them into @x and @y. + + + + + + a #ClutterEvent + + + + return location for the X coordinate, or %NULL + + + + return location for the Y coordinate, or %NULL + + + + + + Retrieves the #ClutterInputDevice for the event. +If you want the physical device the event originated from, use +clutter_event_get_source_device(). + +The #ClutterInputDevice structure is completely opaque and should +be cast to the platform-specific implementation. + + the #ClutterInputDevice or %NULL. The + returned device is owned by the #ClutterEvent and it should not + be unreferenced + + + + + a #ClutterEvent + + + + + + Retrieves the events device id if set. + + A unique identifier for the device or -1 if the event has + no specific device set. + + + + + a clutter event + + + + + + Returns the device tool that originated this event + + The tool of this event + + + + + a #ClutterEvent + + + + + + Retrieves the type of the device for @event + + the #ClutterInputDeviceType for the device, if + any is set + + + + + a #ClutterEvent + + + + + + Retrieves the distance between two events, a @source and a @target. + + the distance between two #ClutterEvent + + + + + a #ClutterEvent + + + + a #ClutterEvent + + + + + + Retrieves the #ClutterEventSequence of @event. + + the event sequence, or %NULL + + + + + a #ClutterEvent of type %CLUTTER_TOUCH_BEGIN, + %CLUTTER_TOUCH_UPDATE, %CLUTTER_TOUCH_END, or + %CLUTTER_TOUCH_CANCEL + + + + + + Retrieves the #ClutterEventFlags of @event + + the event flags + + + + + a #ClutterEvent + + + + + + Returns the gesture motion deltas relative to the current pointer +position. + + + + + + A clutter touchpad gesture event + + + + the displacement relative to the pointer + position in the X axis, or %NULL + + + + the displacement relative to the pointer + position in the Y axis, or %NULL + + + + + + Returns the phase of the event, See #ClutterTouchpadGesturePhase. + + the phase of the gesture event. + + + + + a touchpad gesture event + + + + + + Returns the angle delta reported by this specific event. + + The angle delta relative to the previous event. + + + + + a touchpad pinch event + + + + + + Returns the current scale as reported by @event, 1.0 being the original +distance at the time the corresponding event with phase +%CLUTTER_TOUCHPAD_GESTURE_PHASE_BEGIN is received. +is received. + + the current pinch gesture scale + + + + + a touchpad pinch event + + + + + + Retrieves the keycode of the key that caused @event + + The keycode representing the key + + + + + a #ClutterEvent of type %CLUTTER_KEY_PRESS or + of type %CLUTTER_KEY_RELEASE + + + + + + Retrieves the key symbol of @event + + the key symbol representing the key + + + + + a #ClutterEvent of type %CLUTTER_KEY_PRESS or + of type %CLUTTER_KEY_RELEASE + + + + + + Retrieves the unicode value for the key that caused @keyev. + + The unicode value representing the key + + + + + a #ClutterEvent of type %CLUTTER_KEY_PRESS + or %CLUTTER_KEY_RELEASE + + + + + + + + + + + + + + + + Returns the details of a pad event. + + #TRUE if event details could be obtained + + + + + a pad event + + + + ring/strip/button number + + + + pad mode as per the event + + + + event axis value + + + + + + Retrieves the event coordinates as a #ClutterPoint. + + + + + + a #ClutterEvent + + + + a #ClutterPoint + + + + + + Retrieves the related actor of a crossing event. + + the related #ClutterActor, or %NULL + + + + + a #ClutterEvent of type %CLUTTER_ENTER or of + type %CLUTTER_LEAVE + + + + + + Retrieves the precise scrolling information of @event. + +The @event has to have a #ClutterScrollEvent.direction value +of %CLUTTER_SCROLL_SMOOTH. + + + + + + a #ClutterEvent of type %CLUTTER_SCROLL + + + + return location for the delta on the horizontal axis + + + + return location for the delta on the vertical axis + + + + + + Retrieves the direction of the scrolling of @event + + the scrolling direction + + + + + a #ClutterEvent of type %CLUTTER_SCROLL + + + + + + Returns the #ClutterScrollFinishFlags of an scroll event. Those +can be used to determine whether post-scroll effects like kinetic +scrolling should be applied. + + The scroll finish flags + + + + + an scroll event + + + + + + Returns the #ClutterScrollSource that applies to an scroll event. + + The source of scroll events + + + + + an scroll event + + + + + + Retrieves the source #ClutterActor the event originated from, or +NULL if the event has no source. + + a #ClutterActor + + + + + a #ClutterEvent + + + + + + Retrieves the hardware device that originated the event. + +If you need the virtual device, use clutter_event_get_device(). + +If no hardware device originated this event, this function will +return the same device as clutter_event_get_device(). + + a pointer to a #ClutterInputDevice + or %NULL + + + + + a #ClutterEvent + + + + + + Retrieves the source #ClutterStage the event originated for, or +%NULL if the event has no stage. + + a #ClutterStage + + + + + a #ClutterEvent + + + + + + Retrieves the modifier state of the event. In case the window system +supports reporting latched and locked modifiers, this function returns +the effective state. + + the modifier state parameter, or 0 + + + + + a #ClutterEvent + + + + + + Retrieves the decomposition of the keyboard state into button, base, +latched, locked and effective. This can be used to transmit to other +applications, for example when implementing a wayland compositor. + + + + + + a #ClutterEvent + + + + the pressed buttons as a mask + + + + the regular pressed modifier keys + + + + the latched modifier keys (currently released but still valid for one key press/release) + + + + the locked modifier keys (valid until the lock key is pressed and released again) + + + + the logical OR of all the state bits above + + + + + + Retrieves the time of the event. + + the time of the event, or %CLUTTER_CURRENT_TIME + + + + + a #ClutterEvent + + + + + + Returns the number of fingers that is triggering the touchpad gesture. + + the number of fingers in the gesture. + + + + + a touchpad swipe/pinch event + + + + + + Checks whether @event has the Control modifier mask set. + + %TRUE if the event has the Control modifier mask set + + + + + a #ClutterEvent + + + + + + Checks whether @event has the Shift modifier mask set. + + %TRUE if the event has the Shift modifier mask set + + + + + a #ClutterEvent + + + + + + Checks whether a pointer @event has been generated by the windowing +system. The returned value can be used to distinguish between events +synthesized by the windowing system itself (as opposed by Clutter). + + %TRUE if the event is pointer emulated + + + + + a #ClutterEvent + + + + + + Puts a copy of the event on the back of the event queue. The event will +have the %CLUTTER_EVENT_FLAG_SYNTHETIC flag set. If the source is set +event signals will be emitted for this source and capture/bubbling for +its ancestors. If the source is not set it will be generated by picking +or use the actor that currently has keyboard focus + + + + + + a #ClutterEvent + + + + + + Sets the button number of @event + + + + + + a #ClutterEvent or type %CLUTTER_BUTTON_PRESS or + of type %CLUTTER_BUTTON_RELEASE + + + + the button number + + + + + + Sets the coordinates of the @event. + + + + + + a #ClutterEvent + + + + the X coordinate of the event + + + + the Y coordinate of the event + + + + + + Sets the device for @event. + + + + + + a #ClutterEvent + + + + a #ClutterInputDevice, or %NULL + + + + + + Sets the tool in use for this event + + + + + + a #ClutterEvent + + + + a #ClutterInputDeviceTool + + + + + + Sets the #ClutterEventFlags of @event + + + + + + a #ClutterEvent + + + + a binary OR of #ClutterEventFlags values + + + + + + Sets the keycode of the @event. + + + + + + a #ClutterEvent of type %CLUTTER_KEY_PRESS + or %CLUTTER_KEY_RELEASE + + + + the keycode representing the key + + + + + + Sets the key symbol of @event. + + + + + + a #ClutterEvent of type %CLUTTER_KEY_PRESS + or %CLUTTER_KEY_RELEASE + + + + the key symbol representing the key + + + + + + Sets the Unicode value of @event. + + + + + + a #ClutterEvent of type %CLUTTER_KEY_PRESS + or %CLUTTER_KEY_RELEASE + + + + the Unicode value representing the key + + + + + + Sets the related actor of a crossing event + + + + + + a #ClutterEvent of type %CLUTTER_ENTER or %CLUTTER_LEAVE + + + + a #ClutterActor or %NULL + + + + + + Sets the precise scrolling information of @event. + + + + + + a #ClutterEvent of type %CLUTTER_SCROLL + + + + delta on the horizontal axis + + + + delta on the vertical axis + + + + + + Sets the direction of the scrolling of @event + + + + + + a #ClutterEvent + + + + the scrolling direction + + + + + + Sets the source #ClutterActor of @event. + + + + + + a #ClutterEvent + + + + a #ClutterActor, or %NULL + + + + + + Sets the source #ClutterInputDevice for @event. + +The #ClutterEvent must have been created using clutter_event_new(). + + + + + + a #ClutterEvent + + + + a #ClutterInputDevice + + + + + + Sets the source #ClutterStage of the event. + + + + + + a #ClutterEvent + + + + a #ClutterStage, or %NULL + + + + + + Sets the modifier state of the event. + + + + + + a #ClutterEvent + + + + the modifier state to set + + + + + + Sets the time of the event. + + + + + + a #ClutterEvent + + + + the time of the event + + + + + + Retrieves the type of the event. + + a #ClutterEventType + + + + + a #ClutterEvent + + + + + + Adds a function which will be called for all events that Clutter +processes. The function will be called before any signals are +emitted for the event and it will take precedence over any grabs. + + an identifier for the event filter, to be used + with clutter_event_remove_filter(). + + + + + The #ClutterStage to capture events for + + + + The callback function which will be passed all events. + + + + A #GDestroyNotify + + + + A data pointer to pass to the function. + + + + + + Pops an event off the event queue. Applications should not need to call +this. + + A #ClutterEvent or NULL if queue empty + + + + + Returns a pointer to the first event from the event queue but +does not remove it. + + A #ClutterEvent or NULL if queue empty. + + + + + Removes an event filter that was previously added with +clutter_event_add_filter(). + + + + + + The ID of the event filter, as returned from clutter_event_add_filter() + + + + + + + A function pointer type used by event filters that are added with +clutter_event_add_filter(). + + %CLUTTER_EVENT_STOP to indicate that the event + has been handled or %CLUTTER_EVENT_PROPAGATE otherwise. + Returning %CLUTTER_EVENT_STOP skips any further filter + functions and prevents the signal emission for the event. + + + + + the event that is going to be emitted + + + + the data pointer passed to clutter_event_add_filter() + + + + + + Flags for the #ClutterEvent + + No flag set + + + Synthetic event + + + + + Auto-repeated event + + + + The #ClutterEventSequence structure is an opaque +type used to denote the event sequence of a touch event. + + + Types of events. + + Empty event + + + Key press event + + + Key release event + + + Pointer motion event + + + Actor enter event + + + Actor leave event + + + Pointer button press event + + + Pointer button release event + + + Pointer scroll event + + + Stage state change event + + + Destroy notification event + + + Client message event + + + Stage delete event + + + A new touch event sequence has started; + event added in 1.10 + + + A touch event sequence has been updated; + event added in 1.10 + + + A touch event sequence has finished; + event added in 1.10 + + + A touch event sequence has been canceled; + event added in 1.10 + + + A pinch gesture event, the current state is + determined by its phase field; event added in 1.24 + + + A swipe gesture event, the current state is + determined by its phase field; event added in 1.24 + + + A tool entered in proximity to a tablet; + event added in 1.28 + + + A tool left from the proximity area of a tablet; + event added in 1.28 + + + + + + + + + + + Marks the end of the #ClutterEventType enumeration; + added in 1.10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GL Windowing system used + The macro evaluates to "deprecated" as Clutter can be + compiled with multiple windowing system backends. Use the various + CLUTTER_WINDOWING_* macros to detect the windowing system that Clutter + is being compiled against, and the type check macros for the + #ClutterBackend for a run-time check. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Runtime flags indicating specific features available via Clutter window +system and graphics backend. + + Set if NPOTS textures supported. + + + Set if vblank syncing supported. + + + Set if YUV based textures supported. + + + Set if texture pixels can be read. + + + Set if stage size if fixed (i.e framebuffer) + + + Set if stage is able to be user resized. + + + Set if stage has a graphical cursor. + + + Set if the backend supports GLSL shaders. + + + Set if the backend supports offscreen rendering. + + + Set if multiple stages are supported. + + + Set if the GLX_INTEL_swap_event is supported. + + + + + + + + + + + + + The #ClutterFixedLayout structure contains only private data and +it should be accessed using the provided API + + Creates a new #ClutterFixedLayout + + the newly created #ClutterFixedLayout + + + + + + + + + The #ClutterFixedLayoutClass structure contains only private data +and it should be accessed using the provided API + + + + + + The #ClutterFlowLayout structure contains only private data +and should be accessed using the provided API + + Creates a new #ClutterFlowLayout with the given @orientation + + the newly created #ClutterFlowLayout + + + + + the orientation of the flow layout + + + + + + Retrieves the spacing between columns + + the spacing between columns of the #ClutterFlowLayout, + in pixels + + + + + a #ClutterFlowLayout + + + + + + Retrieves the minimum and maximum column widths + + + + + + a #ClutterFlowLayout + + + + return location for the minimum column width, or %NULL + + + + return location for the maximum column width, or %NULL + + + + + + Retrieves whether the @layout is homogeneous + + %TRUE if the #ClutterFlowLayout is homogeneous + + + + + a #ClutterFlowLayout + + + + + + Retrieves the orientation of the @layout + + the orientation of the #ClutterFlowLayout + + + + + a #ClutterFlowLayout + + + + + + Retrieves the minimum and maximum row heights + + + + + + a #ClutterFlowLayout + + + + return location for the minimum row height, or %NULL + + + + return location for the maximum row height, or %NULL + + + + + + Retrieves the spacing between rows + + the spacing between rows of the #ClutterFlowLayout, + in pixels + + + + + a #ClutterFlowLayout + + + + + + Retrieves the value of #ClutterFlowLayout:snap-to-grid property + + %TRUE if the @layout is placing its children on a grid + + + + + a #ClutterFlowLayout + + + + + + Sets the space between columns, in pixels + + + + + + a #ClutterFlowLayout + + + + the space between columns + + + + + + Sets the minimum and maximum widths that a column can have + + + + + + a #ClutterFlowLayout + + + + minimum width of a column + + + + maximum width of a column + + + + + + Sets whether the @layout should allocate the same space for +each child + + + + + + a #ClutterFlowLayout + + + + whether the layout should be homogeneous or not + + + + + + Sets the orientation of the flow layout + +The orientation controls the direction used to allocate +the children: either horizontally or vertically. The +orientation also controls the direction of the overflowing + + + + + + a #ClutterFlowLayout + + + + the orientation of the layout + + + + + + Sets the minimum and maximum heights that a row can have + + + + + + a #ClutterFlowLayout + + + + the minimum height of a row + + + + the maximum height of a row + + + + + + Sets the spacing between rows, in pixels + + + + + + a #ClutterFlowLayout + + + + the space between rows + + + + + + Whether the @layout should place its children on a grid. + + + + + + a #ClutterFlowLayout + + + + %TRUE if @layout should place its children on a grid + + + + + + The spacing between columns, in pixels; the value of this +property is honoured by horizontal non-overflowing layouts +and by vertical overflowing layouts + + + + Whether each child inside the #ClutterFlowLayout should receive +the same allocation + + + + Maximum width for each column in the layout, in pixels. If +set to -1 the width will be the maximum child width + + + + Maximum height for each row in the layout, in pixels. If +set to -1 the width will be the maximum child height + + + + Minimum width for each column in the layout, in pixels + + + + Minimum height for each row in the layout, in pixels + + + + The orientation of the #ClutterFlowLayout. The children +of the layout will be layed out following the orientation. + +This property also controls the overflowing directions + + + + The spacing between rows, in pixels; the value of this +property is honoured by vertical non-overflowing layouts and +by horizontal overflowing layouts + + + + Whether the #ClutterFlowLayout should arrange its children +on a grid + + + + + + + + + + + The #ClutterFlowLayoutClass structure contains only private data +and should be accessed using the provided API + + + + + + + + The direction of the arrangement of the children inside +a #ClutterFlowLayout + + Arrange the children of the flow layout + horizontally first + + + Arrange the children of the flow layout + vertically first + + + + Fog settings used to create the depth cueing effect. + The fog-related API in #ClutterStage has been + deprecated as well. + + starting distance from the viewer to the near clipping + plane (always positive) + + + + final distance from the viewer to the far clipping + plane (always positive) + + + + + Runtime flags to change the font quality. To be used with +clutter_set_font_flags(). + Use #cairo_font_options_t instead + + Set to use mipmaps for the glyph cache textures. + + + Set to enable hinting on the glyphs. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The rectangle containing an actor's bounding box, measured in pixels. + +You should not use #ClutterGeometry, or operate on its fields +directly; you should use #cairo_rectangle_int_t or #ClutterRect if you +need a rectangle type, depending on the precision required. + + X coordinate of the top left corner of an actor + + + + Y coordinate of the top left corner of an actor + + + + width of an actor + + + + height of an actor + + + + Determines if @geometry0 and geometry1 intersect returning %TRUE if +they do else %FALSE. + Use #ClutterRect and clutter_rect_intersection() + + %TRUE of @geometry0 and geometry1 intersect else +%FALSE. + + + + + The first geometry to test + + + + The second geometry to test + + + + + + Find the union of two rectangles represented as #ClutterGeometry. + Use #ClutterRect and clutter_rect_union() + + + + + + a #ClutterGeometry + + + + another #ClutterGeometry + + + + location to store the result + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterGestureAction structure contains +only private data and should be accessed using the provided API + + Creates a new #ClutterGestureAction instance. + + the newly created #ClutterGestureAction + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Cancel a #ClutterGestureAction before it begins + + + + + + a #ClutterGestureAction + + + + + + Retrieves the #ClutterInputDevice of a touch point. + + the #ClutterInputDevice of a touch point. + + + + + a #ClutterGestureAction + + + + the touch point index, with 0 being the first touch + point received by the action + + + + + + Retrieves a reference to the last #ClutterEvent for a touch point. Call +clutter_event_copy() if you need to store the reference somewhere. + + the last #ClutterEvent for a touch point. + + + + + a #ClutterGestureAction + + + + index of a point currently active + + + + + + Retrieves the coordinates, in stage space, of the latest motion +event during the dragging. + + + + + + a #ClutterGestureAction + + + + the touch point index, with 0 being the first touch + point received by the action + + + + return location for the latest motion + event's X coordinate + + + + return location for the latest motion + event's Y coordinate + + + + + + Retrieves the incremental delta since the last motion event +during the dragging. + + the distance since last motion event + + + + + a #ClutterGestureAction + + + + the touch point index, with 0 being the first touch + point received by the action + + + + return location for the X axis + component of the incremental motion delta + + + + return location for the Y axis + component of the incremental motion delta + + + + + + Retrieves the number of points currently active. + + the number of points currently active. + + + + + a #ClutterGestureAction + + + + + + Retrieves the number of requested points to trigger the gesture. + + the number of points to trigger the gesture. + + + + + a #ClutterGestureAction + + + + + + Retrieves the coordinates, in stage space, of the press event +that started the dragging for a specific touch point. + + + + + + a #ClutterGestureAction + + + + the touch point index, with 0 being the first touch + point received by the action + + + + return location for the press + event's X coordinate + + + + return location for the press + event's Y coordinate + + + + + + Retrieves the coordinates, in stage space, where the touch point was +last released. + + + + + + a #ClutterGestureAction + + + + the touch point index, with 0 being the first touch + point received by the action + + + + return location for the X coordinate of + the last release + + + + return location for the Y coordinate of + the last release + + + + + + Retrieves the #ClutterEventSequence of a touch point. + + the #ClutterEventSequence of a touch point. + + + + + a #ClutterGestureAction + + + + index of a point currently active + + + + + + Retrieves the threshold trigger distance of the gesture @action, +as set using clutter_gesture_action_set_threshold_trigger_distance(). + + + + + + a #ClutterGestureAction + + + + The return location for the horizontal distance, or %NULL + + + + The return location for the vertical distance, or %NULL + + + + + + Retrieves the edge trigger of the gesture @action, as set using +clutter_gesture_action_set_threshold_trigger_edge(). + + the edge trigger + + + + + a #ClutterGestureAction + + + + + + Retrieves the edge trigger of the gesture @action, as set using +clutter_gesture_action_set_threshold_trigger_edge(). + Use clutter_gesture_action_get_threshold_trigger_edge() instead. + + the edge trigger + + + + + a #ClutterGestureAction + + + + + + Retrieves the velocity, in stage pixels per millisecond, of the +latest motion event during the dragging. + + + + + + a #ClutterGestureAction + + + + the touch point index, with 0 being the first touch + point received by the action + + + + return location for the latest motion + event's X velocity + + + + return location for the latest motion + event's Y velocity + + + + + + Sets the number of points needed to trigger the gesture. + + + + + + a #ClutterGestureAction + + + + a number of points + + + + + + Sets the threshold trigger distance for the gesture drag threshold, if any. + +This function should only be called by sub-classes of +#ClutterGestureAction during their construction phase. + + + + + + a #ClutterGestureAction + + + + the distance on the horizontal axis + + + + the distance on the vertical axis + + + + + + Sets the edge trigger for the gesture drag threshold, if any. + +This function should only be called by sub-classes of +#ClutterGestureAction during their construction phase. + + + + + + a #ClutterGestureAction + + + + the %ClutterGestureTriggerEdge + + + + + + Number of touch points to trigger a gesture action. + + + + The horizontal trigger distance to be used by the action to either +emit the #ClutterGestureAction::gesture-begin signal or to emit +the #ClutterGestureAction::gesture-cancel signal. + +A negative value will be interpreted as the default drag threshold. + + + + The vertical trigger distance to be used by the action to either +emit the #ClutterGestureAction::gesture-begin signal or to emit +the #ClutterGestureAction::gesture-cancel signal. + +A negative value will be interpreted as the default drag threshold. + + + + The trigger edge to be used by the action to either emit the +#ClutterGestureAction::gesture-begin signal or to emit the +#ClutterGestureAction::gesture-cancel signal. + + + + + + + + + + The ::gesture_begin signal is emitted when the #ClutterActor to which +a #ClutterGestureAction has been applied starts receiving a gesture. + + %TRUE if the gesture should start, and %FALSE if + the gesture should be ignored. + + + + + the #ClutterActor attached to the @action + + + + + + The ::gesture-cancel signal is emitted when the ongoing gesture gets +cancelled from the #ClutterGestureAction::gesture-progress signal handler. + +This signal is emitted if and only if the #ClutterGestureAction::gesture-begin +signal has been emitted first. + + + + + + the #ClutterActor attached to the @action + + + + + + The ::gesture-end signal is emitted at the end of the gesture gesture, +when the pointer's button is released + +This signal is emitted if and only if the #ClutterGestureAction::gesture-begin +signal has been emitted first. + + + + + + the #ClutterActor attached to the @action + + + + + + The ::gesture-progress signal is emitted for each motion event after +the #ClutterGestureAction::gesture-begin signal has been emitted. + + %TRUE if the gesture should continue, and %FALSE if + the gesture should be cancelled. + + + + + the #ClutterActor attached to the @action + + + + + + + The #ClutterGestureClass structure contains only +private data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Enum passed to the clutter_gesture_action_set_threshold_trigger_edge() +function. + + Tell #ClutterGestureAction that +the gesture must begin immediately and there's no drag limit that +will cause its cancellation; + + + Tell #ClutterGestureAction that +it needs to wait until the drag threshold has been exceeded before +considering that the gesture has begun; + + + Tell #ClutterGestureAction that +the gesture must begin immediately and that it must be cancelled +once the drag exceed the configured threshold. + + + + + + + Gravity of the scaling operations. When a gravity different than +%CLUTTER_GRAVITY_NONE is used, an actor is scaled keeping the position +of the specified portion at the same coordinates. + Use the normalized #ClutterActor pivot point instead + + Do not apply any gravity + + + Scale from topmost downwards + + + Scale from the top right corner + + + Scale from the right side + + + Scale from the bottom right corner + + + Scale from the bottom upwards + + + Scale from the bottom left corner + + + Scale from the left side + + + Scale from the top left corner + + + Scale from the center. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterGridLayout structure contains only private data +and should be accessed using the provided API + + Creates a new #ClutterGridLayout + + the new #ClutterGridLayout + + + + + Adds a widget to the grid. + +The position of @child is determined by @left and @top. The +number of 'cells' that @child will occupy is determined by +@width and @height. + + + + + + a #ClutterGridLayout + + + + the #ClutterActor to add + + + + the column number to attach the left side of @child to + + + + the row number to attach the top side of @child to + + + + the number of columns that @child will span + + + + the number of rows that @child will span + + + + + + Adds a actor to the grid. + +The actor is placed next to @sibling, on the side determined by +@side. When @sibling is %NULL, the actor is placed in row (for +left or right placement) or column 0 (for top or bottom placement), +at the end indicated by @side. + +Attaching widgets labeled [1], [2], [3] with @sibling == %NULL and +@side == %CLUTTER_GRID_POSITION_LEFT yields a layout of [3][2][1]. + + + + + + a #ClutterGridLayout + + + + the actor to add + + + + the child of @layout that @child will be placed + next to, or %NULL to place @child at the beginning or end + + + + the side of @sibling that @child is positioned next to + + + + the number of columns that @child will span + + + + the number of rows that @child will span + + + + + + Gets the child of @layout whose area covers the grid +cell whose upper left corner is at @left, @top. + + the child at the given position, or %NULL + + + + + a #ClutterGridLayout + + + + the left edge of the cell + + + + the top edge of the cell + + + + + + Returns whether all columns of @layout have the same width. + + whether all columns of @layout have the same width. + + + + + a #ClutterGridLayout + + + + + + Retrieves the spacing set using clutter_grid_layout_set_column_spacing() + + the spacing between coluns of @layout + + + + + a #ClutterGridLayout + + + + + + Retrieves the orientation of the @layout. + + the orientation of the layout + + + + + a #ClutterGridLayout + + + + + + Returns whether all rows of @layout have the same height. + + whether all rows of @layout have the same height. + + + + + a #ClutterGridLayout + + + + + + Retrieves the spacing set using clutter_grid_layout_set_row_spacing() + + the spacing between rows of @layout + + + + + a #ClutterGridLayout + + + + + + Inserts a column at the specified position. + +Children which are attached at or to the right of this position +are moved one column to the right. Children which span across this +position are grown to span the new column. + + + + + + a #ClutterGridLayout + + + + the position to insert the column at + + + + + + Inserts a row or column at the specified position. + +The new row or column is placed next to @sibling, on the side +determined by @side. If @side is %CLUTTER_GRID_POSITION_LEFT or +%CLUTTER_GRID_POSITION_BOTTOM, a row is inserted. If @side is +%CLUTTER_GRID_POSITION_LEFT of %CLUTTER_GRID_POSITION_RIGHT, +a column is inserted. + + + + + + a #ClutterGridLayout + + + + the child of @layout that the new row or column will be + placed next to + + + + the side of @sibling that @child is positioned next to + + + + + + Inserts a row at the specified position. + +Children which are attached at or below this position +are moved one row down. Children which span across this +position are grown to span the new row. + + + + + + a #ClutterGridLayout + + + + the position to insert the row at + + + + + + Sets whether all columns of @layout will have the same width. + + + + + + a #ClutterGridLayout + + + + %TRUE to make columns homogeneous + + + + + + Sets the spacing between columns of @layout + + + + + + a #ClutterGridLayout + + + + the spacing between columns of the layout, in pixels + + + + + + Sets the orientation of the @layout. + +#ClutterGridLayout uses the orientation as a hint when adding +children to the #ClutterActor using it as a layout manager via +clutter_actor_add_child(); changing this value will not have +any effect on children that are already part of the layout. + + + + + + a #ClutterGridLayout + + + + the orientation of the #ClutterGridLayout + + + + + + Sets whether all rows of @layout will have the same height. + + + + + + a #ClutterGridLayout + + + + %TRUE to make rows homogeneous + + + + + + Sets the spacing between rows of @layout + + + + + + a #ClutterGridLayout + + + + the spacing between rows of the layout, in pixels + + + + + + Whether all columns of the layout should have the same width + + + + The amount of space in pixels between two consecutive columns + + + + The orientation of the layout, either horizontal or vertical + + + + Whether all rows of the layout should have the same height + + + + The amount of space in pixels between two consecutive rows + + + + + + + + + + + The #ClutterGridLayoutClass structure contains only private +data and should be accessed using the provided API + + + + + + + + + + + + + Grid position modes. + + left position + + + right position + + + top position + + + bottom position + + + + The #ClutterGroup structure contains only private data +and should be accessed using the provided API + + + + + + Create a new #ClutterGroup. + Use clutter_actor_new() instead. + + the newly created #ClutterGroup actor + + + + + Gets the number of actors held in the group. + Use clutter_actor_get_n_children() instead. + + The number of child actors held in the group. + + + + + A #ClutterGroup + + + + + + Gets a groups child held at @index_ in stack. + Use clutter_actor_get_child_at_index() instead. + + A Clutter actor, or %NULL if + @index_ is invalid. + + + + + A #ClutterGroup + + + + the position of the requested actor. + + + + + + Removes all children actors from the #ClutterGroup. + Use clutter_actor_remove_all_children() instead. + + + + + + A #ClutterGroup + + + + + + + + + + + + + The #ClutterGroupClass structure contains only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterImage structure contains +private data and should only be accessed using the provided +API. + + + Creates a new #ClutterImage instance. + + the newly created #ClutterImage instance. + Use g_object_unref() when done. + + + + + Retrieves a pointer to the Cogl texture used by @image. + +If you change the contents of the returned Cogl texture you will need +to manually invalidate the @image with clutter_content_invalidate() +in order to update the actors using @image as their content. + + a pointer to the Cogl texture, or %NULL + + + + + a #ClutterImage + + + + + + Sets the image data to be display by @image, using @rect to indicate +the position and size of the image data to be set. + +If the @image does not have any image data set when this function is +called, a new texture will be created with the size of the width and +height of the rectangle, i.e. calling this function on a newly created +#ClutterImage will be the equivalent of calling clutter_image_set_data(). + +If the image data was successfully loaded, the @image will be invalidated. + +In case of error, the @error value will be set, and this function will +return %FALSE. + +The image data is copied in texture memory. + + %TRUE if the image data was successfully loaded, + and %FALSE otherwise. + + + + + a #ClutterImage + + + + the image data, as an array of bytes + + + + + + the Cogl pixel format of the image data + + + + a rectangle indicating the area that should be set + + + + the length of each row inside @data + + + + + + Sets the image data stored inside a #GBytes to be displayed by @image. + +If the image data was successfully loaded, the @image will be invalidated. + +In case of error, the @error value will be set, and this function will +return %FALSE. + +The image data contained inside the #GBytes is copied in texture memory, +and no additional reference is acquired on the @data. + + %TRUE if the image data was successfully loaded, + and %FALSE otherwise. + + + + + a #ClutterImage + + + + the image data, as a #GBytes + + + + the Cogl pixel format of the image data + + + + the width of the image data + + + + the height of the image data + + + + the length of each row inside @data + + + + + + Sets the image data to be displayed by @image. + +If the image data was successfully loaded, the @image will be invalidated. + +In case of error, the @error value will be set, and this function will +return %FALSE. + +The image data is copied in texture memory. + +The image data is expected to be a linear array of RGBA or RGB pixel data; +how to retrieve that data is left to platform specific image loaders. For +instance, if you use the GdkPixbuf library: + +|[<!-- language="C" --> + ClutterContent *image = clutter_image_new (); + + GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file (filename, NULL); + + clutter_image_set_data (CLUTTER_IMAGE (image), + gdk_pixbuf_get_pixels (pixbuf), + gdk_pixbuf_get_has_alpha (pixbuf) + ? COGL_PIXEL_FORMAT_RGBA_8888 + : COGL_PIXEL_FORMAT_RGB_888, + gdk_pixbuf_get_width (pixbuf), + gdk_pixbuf_get_height (pixbuf), + gdk_pixbuf_get_rowstride (pixbuf), + &error); + + g_object_unref (pixbuf); +]| + + %TRUE if the image data was successfully loaded, + and %FALSE otherwise. + + + + + a #ClutterImage + + + + the image data, as an array of bytes + + + + + + the Cogl pixel format of the image data + + + + the width of the image data + + + + the height of the image data + + + + the length of each row inside @data + + + + + + + + + + + + + The #ClutterImageClass structure contains +private data. + + + + + + + + + + + Error enumeration for #ClutterImage. + + Invalid data passed to the + clutter_image_set_data() function. + + + + + + + + + + + Error conditions returned by clutter_init() and clutter_init_with_args(). + + Initialisation successful + + + Unknown error + + + Thread initialisation failed + + + Backend initialisation failed + + + Internal error + + + + + + + + + The type of axes Clutter recognizes on a #ClutterInputDevice + + Unused axis + + + The position on the X axis + + + The position of the Y axis + + + The pressure information + + + The tilt on the X axis + + + The tile on the Y axis + + + A wheel + + + Distance (Since 1.12) + + + Rotation along the z-axis (Since 1.28) + + + A slider (Since 1.28) + + + Last value of the enumeration; this value is + useful when iterating over the enumeration values (Since 1.12) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Generic representation of an input device. The actual contents of this +structure depend on the backend used. + + Retrieves a pointer to the #ClutterInputDevice that has been +associated to @device. + +If the #ClutterInputDevice:device-mode property of @device is +set to %CLUTTER_INPUT_MODE_MASTER, this function will return +%NULL. + + a #ClutterInputDevice, or %NULL + + + + + a #ClutterInputDevice + + + + + + Retrieves the type of axis on @device at the given index. + + the axis type + + + + + a #ClutterInputDevice + + + + the index of the axis + + + + + + Extracts the value of the given @axis of a #ClutterInputDevice from +an array of axis values. + +An example of typical usage for this function is: + +|[ + ClutterInputDevice *device = clutter_event_get_device (event); + gdouble *axes = clutter_event_get_axes (event, NULL); + gdouble pressure_value = 0; + + clutter_input_device_get_axis_value (device, axes, + CLUTTER_INPUT_AXIS_PRESSURE, + &pressure_value); +]| + + %TRUE if the value was set, and %FALSE otherwise + + + + + a #ClutterInputDevice + + + + an array of axes values, typically + coming from clutter_event_get_axes() + + + + + + the axis to extract + + + + return location for the axis value + + + + + + Retrieves the latest coordinates of a pointer or touch point of +@device. + + %FALSE if the device's sequence hasn't been found, + and %TRUE otherwise. + + + + + a #ClutterInputDevice + + + + a #ClutterEventSequence, or %NULL if + the device is not touch-based + + + + return location for the pointer + or touch point + + + + + + Retrieves the latest coordinates of the pointer of @device + Use clutter_input_device_get_coords() instead. + + + + + + a #ClutterInputDevice of type %CLUTTER_POINTER_DEVICE + + + + return location for the X coordinate + + + + return location for the Y coordinate + + + + + + Retrieves the unique identifier of @device + + the identifier of the device + + + + + a #ClutterInputDevice + + + + + + Retrieves the #ClutterInputMode of @device. + + the device mode + + + + + a #ClutterInputDevice + + + + + + Retrieves the name of the @device + + the name of the device, or %NULL. The returned string + is owned by the #ClutterInputDevice and should never be modified + or freed + + + + + a #ClutterInputDevice + + + + + + + + + + + + + + + + Retrieves the type of @device + + the type of the device + + + + + a #ClutterInputDevice + + + + + + Retrieves whether @device is enabled. + + %TRUE if the device is enabled + + + + + a #ClutterInputDevice + + + + + + Retrieves a pointer to the #ClutterActor currently grabbing all +the events coming from @device. + + a #ClutterActor, or %NULL + + + + + a #ClutterInputDevice + + + + + + + + + + + + + + + + + + + Retrieves whether @device has a pointer that follows the +device motion. + + %TRUE if the device has a cursor + + + + + a #ClutterInputDevice + + + + + + Retrieves the key set using clutter_input_device_set_key() + + %TRUE if a key was set at the given index + + + + + a #ClutterInputDevice + + + + the index of the key + + + + return location for the keyval at @index_ + + + + return location for the modifiers at @index_ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Retrieves the current modifiers state of the device, as seen +by the last event Clutter processed. + + the last known modifier state + + + + + a #ClutterInputDevice + + + + + + Retrieves the number of axes available on @device. + + the number of axes on the device + + + + + a #ClutterInputDevice + + + + + + Retrieves the number of keys registered for @device. + + the number of registered keys + + + + + a #ClutterInputDevice + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Retrieves the #ClutterActor underneath the pointer of @device + + a pointer to the #ClutterActor or %NULL + + + + + a #ClutterInputDevice of type %CLUTTER_POINTER_DEVICE + + + + + + Retrieves the #ClutterStage underneath the pointer of @device + + a pointer to the #ClutterStage or %NULL + + + + + a #ClutterInputDevice of type %CLUTTER_POINTER_DEVICE + + + + + + Gets the product ID of this device. + + the product ID + + + + + a slave #ClutterInputDevice + + + + + + Retrieves the slave devices attached to @device. + + a + list of #ClutterInputDevice, or %NULL. The contents of the list are + owned by the device. Use g_list_free() when done + + + + + + + a #ClutterInputDevice + + + + + + Gets the vendor ID of this device. + + the vendor ID + + + + + a slave #ClutterInputDevice + + + + + + Acquires a grab on @actor for the given @device. + +Any event coming from @device will be delivered to @actor, bypassing +the usual event delivery mechanism, until the grab is released by +calling clutter_input_device_ungrab(). + +The grab is client-side: even if the windowing system used by the Clutter +backend has the concept of "device grabs", Clutter will not use them. + +Only #ClutterInputDevice of types %CLUTTER_POINTER_DEVICE and +%CLUTTER_KEYBOARD_DEVICE can hold a grab. + + + + + + a #ClutterInputDevice + + + + a #ClutterActor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Translates a hardware keycode from a #ClutterKeyEvent to the +equivalent evdev keycode. Note that depending on the input backend +used by Clutter this function can fail if there is no obvious +mapping between the key codes. The hardware keycode can be taken +from the #ClutterKeyEvent.hardware_keycode member of #ClutterKeyEvent. + + %TRUE if the conversion succeeded, %FALSE otherwise. + + + + + A #ClutterInputDevice + + + + The hardware keycode from a #ClutterKeyEvent + + + + The return location for the evdev keycode + + + + + + Retrieves a pointer to the #ClutterActor currently grabbing the +touch events coming from @device given the @sequence. + + a #ClutterActor, or %NULL + + + + + a #ClutterInputDevice + + + + a #ClutterEventSequence + + + + + + Acquires a grab on @actor for the given @device and the given touch +@sequence. + +Any touch event coming from @device and from @sequence will be +delivered to @actor, bypassing the usual event delivery mechanism, +until the grab is released by calling +clutter_input_device_sequence_ungrab(). + +The grab is client-side: even if the windowing system used by the Clutter +backend has the concept of "device grabs", Clutter will not use them. + + + + + + a #ClutterInputDevice + + + + a #ClutterEventSequence + + + + a #ClutterActor + + + + + + Releases the grab on the @device for the given @sequence, if one is +in place. + + + + + + a #ClutterInputDevice + + + + a #ClutterEventSequence + + + + + + Enables or disables a #ClutterInputDevice. + +Only devices with a #ClutterInputDevice:device-mode property set +to %CLUTTER_INPUT_MODE_SLAVE or %CLUTTER_INPUT_MODE_FLOATING can +be disabled. + + + + + + a #ClutterInputDevice + + + + %TRUE to enable the @device + + + + + + Sets the keyval and modifiers at the given @index_ for @device. + +Clutter will use the keyval and modifiers set when filling out +an event coming from the same input device. + + + + + + a #ClutterInputDevice + + + + the index of the key + + + + the keyval + + + + a bitmask of modifiers + + + + + + + + + + + + + + + + + + + Releases the grab on the @device, if one is in place. + + + + + + a #ClutterInputDevice + + + + + + Forcibly updates the state of the @device using a #ClutterEvent + +This function should never be used by applications: it is meant +for integration with embedding toolkits, like clutter-gtk + +Embedding toolkits that disable the event collection inside Clutter +need to use this function to update the state of input devices depending +on a #ClutterEvent that they are going to submit to the event handling code +in Clutter though clutter_do_event(). Since the input devices hold the state +that is going to be used to fill in fields like the #ClutterButtonEvent +click count, or to emit synthesized events like %CLUTTER_ENTER and +%CLUTTER_LEAVE, it is necessary for embedding toolkits to also be +responsible of updating the input device state. + +For instance, this might be the code to translate an embedding toolkit +native motion notification into a Clutter #ClutterMotionEvent and ask +Clutter to process it: + +|[ + ClutterEvent c_event; + + translate_native_event_to_clutter (native_event, &c_event); + + clutter_do_event (&c_event); +]| + +Before letting clutter_do_event() process the event, it is necessary to call +clutter_input_device_update_from_event(): + +|[ + ClutterEvent c_event; + ClutterDeviceManager *manager; + ClutterInputDevice *device; + + translate_native_event_to_clutter (native_event, &c_event); + + // get the device manager + manager = clutter_device_manager_get_default (); + + // use the default Core Pointer that Clutter backends register by default + device = clutter_device_manager_get_core_device (manager, %CLUTTER_POINTER_DEVICE); + + // update the state of the input device + clutter_input_device_update_from_event (device, &c_event, FALSE); + + clutter_do_event (&c_event); +]| + +The @update_stage boolean argument should be used when the input device +enters and leaves a #ClutterStage; it will use the #ClutterStage field +of the passed @event to update the stage associated to the input device. + + + + + + a #ClutterInputDevice + + + + a #ClutterEvent + + + + whether to update the #ClutterStage of the @device + using the stage of the event + + + + + + The #ClutterBackend that created the device. + + + + The #ClutterDeviceManager instance which owns the device + + + + + + + + + + The type of the device + + + + Whether the device is enabled. + +A device with the #ClutterInputDevice:device-mode property set +to %CLUTTER_INPUT_MODE_MASTER cannot be disabled. + +A device must be enabled in order to receive events from it. + + + + Whether the device has an on screen cursor following its movement. + + + + The unique identifier of the device + + + + + + + The number of axes of the device. + + + + + + + + + + + + + The name of the device + + + + Product ID of this device. + + + + Vendor ID of this device. + + + + + + + + + + + + + + + + + + + + Gets the ID of this tool, this value can be used to identify a +physical tool (eg. a tablet pen) across program executions. + + The tool ID for this tool + + + + + a #ClutterInputDeviceTool + + + + + + Gets the serial of this tool, this value can be used to identify a +physical tool (eg. a tablet pen) across program executions. + + The serial ID for this tool + + + + + a #ClutterInputDeviceTool + + + + + + Gets the tool type of this tool. + + The tool type of this tool + + + + + a #ClutterInputDeviceTool + + + + + + + + + + + + + + + + + + + + + + + + Defines the type of tool that a #ClutterInputDeviceTool represents. + + No tool + + + The tool is a pen + + + The tool is an eraser + + + The tool is a brush + + + The tool is a pencil + + + The tool is an airbrush + + + The tool is a mouse + + + The tool is a lens + + + + The types of input devices available. + +The #ClutterInputDeviceType enumeration can be extended at later +date; not every platform supports every input device type. + + A pointer device + + + A keyboard device + + + A generic extension device + + + A joystick device + + + A tablet device + + + A touchpad device + + + A touch screen device + + + A pen device + + + An eraser device + + + A cursor device + + + A tablet pad + + + The number of device types + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sets the preedit text on the current input focus. + + + + + + a #ClutterInputMethod + + + + the preedit text, or %NULL + + + + the cursor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The mode for input devices available. + + A master, virtual device + + + A slave, physical device, attached to + a master device + + + A slave, physical device, not attached + to a master device + + + + + + + + + + + + + + + The mode of interpolation between key frames + + linear interpolation + + + cubic interpolation + + + + The #ClutterInterval structure contains only private data and should +be accessed using the provided functions. + + + Creates a new #ClutterInterval holding values of type @gtype. + +This function avoids using a #GValue for the initial and final values +of the interval: + +|[ + interval = clutter_interval_new (G_TYPE_FLOAT, 0.0, 1.0); + interval = clutter_interval_new (G_TYPE_BOOLEAN, FALSE, TRUE); + interval = clutter_interval_new (G_TYPE_INT, 0, 360); +]| + + the newly created #ClutterInterval + + + + + the type of the values in the interval + + + + the initial value and the final value of the interval + + + + + + Creates a new #ClutterInterval of type @gtype, between @initial +and @final. + +This function is useful for language bindings. + + the newly created #ClutterInterval + + + + + the type of the values in the interval + + + + a #GValue holding the initial value of the interval + + + + a #GValue holding the final value of the interval + + + + + + Sets the progress function for a given @value_type, like: + +|[ + clutter_interval_register_progress_func (MY_TYPE_FOO, + my_foo_progress); +]| + +Whenever a #ClutterInterval instance using the default +#ClutterInterval::compute_value implementation is set as an +interval between two #GValue of type @value_type, it will call +@func to establish the value depending on the given progress, +for instance: + +|[ + static gboolean + my_int_progress (const GValue *a, + const GValue *b, + gdouble progress, + GValue *retval) + { + gint ia = g_value_get_int (a); + gint ib = g_value_get_int (b); + gint res = factor * (ib - ia) + ia; + + g_value_set_int (retval, res); + + return TRUE; + } + + clutter_interval_register_progress_func (G_TYPE_INT, my_int_progress); +]| + +To unset a previously set progress function of a #GType, pass %NULL +for @func. + + + + + + a #GType + + + + a #ClutterProgressFunc, or %NULL to unset a previously + set progress function + + + + + + Computes the value between the @interval boundaries given the +progress @factor and copies it into @value. + + %TRUE if the operation was successful + + + + + a #ClutterInterval + + + + the progress factor, between 0 and 1 + + + + return location for an initialized #GValue + + + + + + Validates the initial and final values of @interval against +a #GParamSpec. + + %TRUE if the #ClutterInterval is valid, %FALSE otherwise + + + + + a #ClutterInterval + + + + a #GParamSpec + + + + + + Creates a copy of @interval. + + the newly created #ClutterInterval + + + + + a #ClutterInterval + + + + + + Computes the value between the @interval boundaries given the +progress @factor + +Unlike clutter_interval_compute_value(), this function will +return a const pointer to the computed value + +You should use this function if you immediately pass the computed +value to another function that makes a copy of it, like +g_object_set_property() + + a pointer to the computed value, + or %NULL if the computation was not successfull + + + + + a #ClutterInterval + + + + the progress factor, between 0 and 1 + + + + + + Computes the value between the @interval boundaries given the +progress @factor and copies it into @value. + + %TRUE if the operation was successful + + + + + a #ClutterInterval + + + + the progress factor, between 0 and 1 + + + + return location for an initialized #GValue + + + + + + Retrieves the final value of @interval and copies +it into @value. + +The passed #GValue must be initialized to the value held by +the #ClutterInterval. + + + + + + a #ClutterInterval + + + + a #GValue + + + + + + Retrieves the initial value of @interval and copies +it into @value. + +The passed #GValue must be initialized to the value held by +the #ClutterInterval. + + + + + + a #ClutterInterval + + + + a #GValue + + + + + + Variable arguments wrapper for clutter_interval_get_initial_value() +and clutter_interval_get_final_value() that avoids using the +#GValue arguments: + +|[ + gint a = 0, b = 0; + clutter_interval_get_interval (interval, &a, &b); +]| + +This function is meant for the convenience of the C API; bindings +should reimplement this function using the #GValue-based API. + + + + + + a #ClutterInterval + + + + return locations for the initial and final values of + the interval + + + + + + Retrieves the #GType of the values inside @interval. + + the type of the value, or G_TYPE_INVALID + + + + + a #ClutterInterval + + + + + + Checks if the @interval has a valid initial and final values. + + %TRUE if the #ClutterInterval has an initial and + final values, and %FALSE otherwise + + + + + a #ClutterInterval + + + + + + Gets the pointer to the final value of @interval + + the final value of the interval. + The value is owned by the #ClutterInterval and it should not be + modified or freed + + + + + a #ClutterInterval + + + + + + Gets the pointer to the initial value of @interval + + the initial value of the interval. + The value is owned by the #ClutterInterval and it should not be + modified or freed + + + + + a #ClutterInterval + + + + + + Variadic arguments version of clutter_interval_set_final_value(). + +This function is meant as a convenience for the C API. + +Language bindings should use clutter_interval_set_final_value() instead. + + + + + + a #ClutterInterval + + + + the final value of the interval + + + + + + Sets the final value of @interval to @value. The value is +copied inside the #ClutterInterval. + + + + + + a #ClutterInterval + + + + a #GValue + + + + + + Variadic arguments version of clutter_interval_set_initial_value(). + +This function is meant as a convenience for the C API. + +Language bindings should use clutter_interval_set_initial_value() +instead. + + + + + + a #ClutterInterval + + + + the initial value of the interval. + + + + + + Sets the initial value of @interval to @value. The value is copied +inside the #ClutterInterval. + + + + + + a #ClutterInterval + + + + a #GValue + + + + + + Variable arguments wrapper for clutter_interval_set_initial_value() +and clutter_interval_set_final_value() that avoids using the +#GValue arguments: + +|[ + clutter_interval_set_interval (interval, 0, 50); + clutter_interval_set_interval (interval, 1.0, 0.0); + clutter_interval_set_interval (interval, FALSE, TRUE); +]| + +This function is meant for the convenience of the C API; bindings +should reimplement this function using the #GValue-based API. + + + + + + a #ClutterInterval + + + + the initial and final values of the interval + + + + + + Validates the initial and final values of @interval against +a #GParamSpec. + + %TRUE if the #ClutterInterval is valid, %FALSE otherwise + + + + + a #ClutterInterval + + + + a #GParamSpec + + + + + + The final value of the interval. + + + + The initial value of the interval. + + + + The type of the values in the interval. + + + + + + + + + + + The #ClutterIntervalClass contains only private data. + + + + + + + %TRUE if the #ClutterInterval is valid, %FALSE otherwise + + + + + a #ClutterInterval + + + + a #GParamSpec + + + + + + + + + %TRUE if the operation was successful + + + + + a #ClutterInterval + + + + the progress factor, between 0 and 1 + + + + return location for an initialized #GValue + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterKbdA11ySettings structure contains keyboard accessibility +settings + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Key event + + event type + + + + event time + + + + event flags + + + + event source stage + + + + event source actor + + + + key modifiers + + + + raw key value + + + + raw hardware key value + + + + Unicode representation + + + + the device that originated the event. If you want the physical +device the event originated from, use clutter_event_get_source_device() + + + + + + + + + + + Keyboard accessibility features applied to a ClutterInputDevice keyboard. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The `ClutterKeyframeTransition` structure contains only private +data and should be accessed using the provided API. + + + Creates a new #ClutterKeyframeTransition for @property_name. + + the newly allocated + #ClutterKeyframeTransition instance. Use g_object_unref() when + done to free its resources. + + + + + the property to animate + + + + + + Removes all key frames from @transition. + + + + + + a #ClutterKeyframeTransition + + + + + + Retrieves the details of the key frame at @index_ inside @transition. + +The @transition must already have key frames set, and @index_ must be +smaller than the number of key frames. + + + + + + a #ClutterKeyframeTransition + + + + the index of the key frame + + + + return location for the key, or %NULL + + + + return location for the easing mode, or %NULL + + + + a #GValue initialized with the type of + the values + + + + + + Retrieves the number of key frames inside @transition. + + the number of key frames + + + + + a #ClutterKeyframeTransition + + + + + + Sets the key frames of the @transition. + +This variadic arguments function is a convenience for C developers; +language bindings should use clutter_keyframe_transition_set_key_frames(), +clutter_keyframe_transition_set_modes(), and +clutter_keyframe_transition_set_values() instead. + + + + + + a #ClutterKeyframeTransition + + + + the type of the values to use for the key frames + + + + the number of key frames between the initial + and final values + + + + a list of tuples, containing the key frame index, the value + at the key frame, and the animation mode + + + + + + Sets the details of the key frame at @index_ inside @transition. + +The @transition must already have a key frame at @index_, and @index_ +must be smaller than the number of key frames inside @transition. + + + + + + a #ClutterKeyframeTransition + + + + the index of the key frame + + + + the key of the key frame + + + + the easing mode of the key frame + + + + a #GValue containing the value of the key frame + + + + + + Sets the keys for each key frame inside @transition. + +If @transition does not hold any key frame, @n_key_frames key frames +will be created; if @transition already has key frames, @key_frames must +have at least as many elements as the number of key frames. + + + + + + a #ClutterKeyframeTransition + + + + the number of values + + + + an array of keys between 0.0 + and 1.0, one for each key frame + + + + + + + + Sets the easing modes for each key frame inside @transition. + +If @transition does not hold any key frame, @n_modes key frames will +be created; if @transition already has key frames, @modes must have +at least as many elements as the number of key frames. + + + + + + a #ClutterKeyframeTransition + + + + the number of easing modes + + + + an array of easing modes, one for + each key frame + + + + + + + + Sets the values for each key frame inside @transition. + +If @transition does not hold any key frame, @n_values key frames will +be created; if @transition already has key frames, @values must have +at least as many elements as the number of key frames. + + + + + + a #ClutterKeyframeTransition + + + + the number of values + + + + an array of values, one for each + key frame + + + + + + + + + + + + + + + The `ClutterKeyframeTransitionClass` structure contains only +private data. + + + + + + + + + + + + + Point in a path behaviour. + + X coordinate of the knot + + + + Y coordinate of the knot + + + + Makes an allocated copy of a knot. + + the copied knot. + + + + + a #ClutterKnot + + + + + + Compares to knot and checks if the point to the same location. + + %TRUE if the knots point to the same location. + + + + + First knot + + + + Second knot + + + + + + Frees the memory of an allocated knot. + + + + + + a #ClutterKnot + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterLayoutManager structure contains only private data +and should be accessed using the provided API + + Allocates the children of @container given an area + +See also clutter_actor_allocate() + + + + + + a #ClutterLayoutManager + + + + the #ClutterContainer using @manager + + + + the #ClutterActorBox containing the allocated area + of @container + + + + the allocation flags + + + + + + Begins an animation of @duration milliseconds, using the provided +easing @mode + +The easing mode can be specified either as a #ClutterAnimationMode +or as a logical id returned by clutter_alpha_register_func() + +The result of this function depends on the @manager implementation + + The #ClutterAlpha created by the + layout manager; the returned instance is owned by the layout + manager and should not be unreferenced + + + + + a #ClutterLayoutManager + + + + the duration of the animation, in milliseconds + + + + the easing mode of the animation + + + + + + + + + + + + + + + + + + + + + + Ends an animation started by clutter_layout_manager_begin_animation() + +The result of this call depends on the @manager implementation + + + + + + a #ClutterLayoutManager + + + + + + Retrieves the progress of the animation, if one has been started by +clutter_layout_manager_begin_animation() + +The returned value has the same semantics of the #ClutterAlpha:alpha +value + + the progress of the animation + + + + + a #ClutterLayoutManager + + + + + + + + + + + + + + + + Computes the minimum and natural heights of the @container according +to @manager. + +See also clutter_actor_get_preferred_height() + + + + + + a #ClutterLayoutManager + + + + the #ClutterContainer using @manager + + + + the width for which the height should be computed, or -1 + + + + return location for the minimum height + of the layout, or %NULL + + + + return location for the natural height + of the layout, or %NULL + + + + + + Computes the minimum and natural widths of the @container according +to @manager. + +See also clutter_actor_get_preferred_width() + + + + + + a #ClutterLayoutManager + + + + the #ClutterContainer using @manager + + + + the height for which the width should be computed, or -1 + + + + return location for the minimum width + of the layout, or %NULL + + + + return location for the natural width + of the layout, or %NULL + + + + + + Emits the #ClutterLayoutManager::layout-changed signal on @manager + +This function should only be called by implementations of the +#ClutterLayoutManager class + + + + + + a #ClutterLayoutManager + + + + + + If the #ClutterLayoutManager sub-class allows it, allow +adding a weak reference of the @container using @manager +from within the layout manager + +The layout manager should not increase the reference +count of the @container + + + + + + a #ClutterLayoutManager + + + + a #ClutterContainer using @manager + + + + + + Allocates the children of @container given an area + +See also clutter_actor_allocate() + + + + + + a #ClutterLayoutManager + + + + the #ClutterContainer using @manager + + + + the #ClutterActorBox containing the allocated area + of @container + + + + the allocation flags + + + + + + Begins an animation of @duration milliseconds, using the provided +easing @mode + +The easing mode can be specified either as a #ClutterAnimationMode +or as a logical id returned by clutter_alpha_register_func() + +The result of this function depends on the @manager implementation + + The #ClutterAlpha created by the + layout manager; the returned instance is owned by the layout + manager and should not be unreferenced + + + + + a #ClutterLayoutManager + + + + the duration of the animation, in milliseconds + + + + the easing mode of the animation + + + + + + Retrieves the values for a list of properties out of the +#ClutterLayoutMeta created by @manager and attached to the +child of a @container + + + + + + a #ClutterLayoutManager + + + + a #ClutterContainer using @manager + + + + a #ClutterActor child of @container + + + + the name of the first property + + + + a list of property name and return location for the value pairs + + + + + + Gets a property on the #ClutterLayoutMeta created by @manager and +attached to a child of @container + +The #GValue must already be initialized to the type of the property +and has to be unset with g_value_unset() after extracting the real +value out of it + + + + + + a #ClutterLayoutManager + + + + a #ClutterContainer using @manager + + + + a #ClutterActor child of @container + + + + the name of the property to get + + + + a #GValue with the value of the property to get + + + + + + Sets a list of properties and their values on the #ClutterLayoutMeta +associated by @manager to a child of @container + +Languages bindings should use clutter_layout_manager_child_set_property() +instead + + + + + + a #ClutterLayoutManager + + + + a #ClutterContainer using @manager + + + + a #ClutterActor child of @container + + + + the first property name + + + + a list of property name and value pairs + + + + + + Sets a property on the #ClutterLayoutMeta created by @manager and +attached to a child of @container + + + + + + a #ClutterLayoutManager + + + + a #ClutterContainer using @manager + + + + a #ClutterActor child of @container + + + + the name of the property to set + + + + a #GValue with the value of the property to set + + + + + + Ends an animation started by clutter_layout_manager_begin_animation() + +The result of this call depends on the @manager implementation + + + + + + a #ClutterLayoutManager + + + + + + Retrieves the #GParamSpec for the layout property @name inside +the #ClutterLayoutMeta sub-class used by @manager + + a #GParamSpec describing the property, + or %NULL if no property with that name exists. The returned + #GParamSpec is owned by the layout manager and should not be + modified or freed + + + + + a #ClutterLayoutManager + + + + the name of the property + + + + + + Retrieves the progress of the animation, if one has been started by +clutter_layout_manager_begin_animation() + +The returned value has the same semantics of the #ClutterAlpha:alpha +value + + the progress of the animation + + + + + a #ClutterLayoutManager + + + + + + Retrieves the #ClutterLayoutMeta that the layout @manager associated +to the @actor child of @container, eventually by creating one if the +#ClutterLayoutManager supports layout properties + + a #ClutterLayoutMeta, or %NULL if the + #ClutterLayoutManager does not have layout properties. The returned + layout meta instance is owned by the #ClutterLayoutManager and it + should not be unreferenced + + + + + a #ClutterLayoutManager + + + + a #ClutterContainer using @manager + + + + a #ClutterActor child of @container + + + + + + Computes the minimum and natural heights of the @container according +to @manager. + +See also clutter_actor_get_preferred_height() + + + + + + a #ClutterLayoutManager + + + + the #ClutterContainer using @manager + + + + the width for which the height should be computed, or -1 + + + + return location for the minimum height + of the layout, or %NULL + + + + return location for the natural height + of the layout, or %NULL + + + + + + Computes the minimum and natural widths of the @container according +to @manager. + +See also clutter_actor_get_preferred_width() + + + + + + a #ClutterLayoutManager + + + + the #ClutterContainer using @manager + + + + the height for which the width should be computed, or -1 + + + + return location for the minimum width + of the layout, or %NULL + + + + return location for the natural width + of the layout, or %NULL + + + + + + Emits the #ClutterLayoutManager::layout-changed signal on @manager + +This function should only be called by implementations of the +#ClutterLayoutManager class + + + + + + a #ClutterLayoutManager + + + + + + Retrieves all the #GParamSpec<!-- -->s for the layout properties +stored inside the #ClutterLayoutMeta sub-class used by @manager + + the newly-allocated, + %NULL-terminated array of #GParamSpec<!-- -->s. Use g_free() to free the + resources allocated for the array + + + + + + + a #ClutterLayoutManager + + + + return location for the number of returned + #GParamSpec<!-- -->s + + + + + + If the #ClutterLayoutManager sub-class allows it, allow +adding a weak reference of the @container using @manager +from within the layout manager + +The layout manager should not increase the reference +count of the @container + + + + + + a #ClutterLayoutManager + + + + a #ClutterContainer using @manager + + + + + + + + + + + + The ::layout-changed signal is emitted each time a layout manager +has been changed. Every #ClutterActor using the @manager instance +as a layout manager should connect a handler to the ::layout-changed +signal and queue a relayout on themselves: + +|[ + static void layout_changed (ClutterLayoutManager *manager, + ClutterActor *self) + { + clutter_actor_queue_relayout (self); + } + ... + self->manager = g_object_ref_sink (manager); + g_signal_connect (self->manager, "layout-changed", + G_CALLBACK (layout_changed), + self); +]| + +Sub-classes of #ClutterLayoutManager that implement a layout that +can be controlled or changed using parameters should emit the +::layout-changed signal whenever one of the parameters changes, +by using clutter_layout_manager_layout_changed(). + + + + + + + The #ClutterLayoutManagerClass structure contains only private +data and should be accessed using the provided API + + + + + + + + + + + a #ClutterLayoutManager + + + + the #ClutterContainer using @manager + + + + the height for which the width should be computed, or -1 + + + + return location for the minimum width + of the layout, or %NULL + + + + return location for the natural width + of the layout, or %NULL + + + + + + + + + + + + + a #ClutterLayoutManager + + + + the #ClutterContainer using @manager + + + + the width for which the height should be computed, or -1 + + + + return location for the minimum height + of the layout, or %NULL + + + + return location for the natural height + of the layout, or %NULL + + + + + + + + + + + + + a #ClutterLayoutManager + + + + the #ClutterContainer using @manager + + + + the #ClutterActorBox containing the allocated area + of @container + + + + the allocation flags + + + + + + + + + + + + + a #ClutterLayoutManager + + + + a #ClutterContainer using @manager + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterAlpha created by the + layout manager; the returned instance is owned by the layout + manager and should not be unreferenced + + + + + a #ClutterLayoutManager + + + + the duration of the animation, in milliseconds + + + + the easing mode of the animation + + + + + + + + + the progress of the animation + + + + + a #ClutterLayoutManager + + + + + + + + + + + + + a #ClutterLayoutManager + + + + + + + + + + + + + a #ClutterLayoutManager + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sub-class of #ClutterChildMeta specific for layout managers + +A #ClutterLayoutManager sub-class should create a #ClutterLayoutMeta +instance by overriding the #ClutterLayoutManager::create_child_meta() +virtual function + + Retrieves the actor wrapped by @data + + a #ClutterLayoutManager + + + + + a #ClutterLayoutMeta + + + + + + The #ClutterLayoutManager that created this #ClutterLayoutMeta. + + + + + + + the layout manager handling this data + + + + + + + + + + + The #ClutterLayoutMetaClass contains only private data and +should never be accessed directly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterListModel struct contains only private data. + Use #GListStore instead + + + Creates a new default model with @n_columns columns with the types +and names passed in. + +For example: + +<informalexample><programlisting> +model = clutter_list_model_new (3, + G_TYPE_INT, "Score", + G_TYPE_STRING, "Team", + GDK_TYPE_PIXBUF, "Logo"); +</programlisting></informalexample> + +will create a new #ClutterModel with three columns of type int, +string and #GdkPixbuf respectively. + +Note that the name of the column can be set to %NULL, in which case +the canonical name of the type held by the column will be used as +the title. + Use #GListStore instead + + a new #ClutterListModel + + + + + number of columns in the model + + + + @n_columns number of #GType and string pairs + + + + + + Non-vararg version of clutter_list_model_new(). This function is +useful for language bindings. + Use #GListStore instead + + a new default #ClutterModel + + + + + number of columns in the model + + + + an array of #GType types for the columns, from first to last + + + + + + an array of names for the columns, from first to last + + + + + + + + + + + + + + + The #ClutterListModelClass struct contains only private data. + Use #GListStore instead + + + + + + + + + + + + + + + + + The states for the #ClutterClickAction::long-press signal. + + Queries the action whether it supports + long presses + + + Activates the action on a long press + + + The long press was cancelled + + + + + + + + + + The major version of the Clutter library (1, if %CLUTTER_VERSION is 1.2.3) + + + + The micro version of the Clutter library (3, if %CLUTTER_VERSION is 1.2.3) + + + + The minor version of the Clutter library (2, if %CLUTTER_VERSION is 1.2.3) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A representation of the components of a margin. + + the margin from the left + + + + the margin from the right + + + + the margin from the top + + + + the margin from the bottom + + + + Creates a new #ClutterMargin. + + a newly allocated #ClutterMargin. Use + clutter_margin_free() to free the resources associated with it when + done. + + + + + Creates a new #ClutterMargin and copies the contents of @margin_ into +the newly created structure. + + a copy of the #ClutterMargin. + + + + + a #ClutterMargin + + + + + + Frees the resources allocated by clutter_margin_new() and +clutter_margin_copy(). + + + + + + a #ClutterMargin + + + + + + + + + + + + + #ClutterMedia is an opaque structure whose members cannot be directly +accessed + + + + + + + + + + + + + + + + + + + + + + + + + Retrieves the playback volume of @media. + + The playback volume between 0.0 and 1.0 + + + + + a #ClutterMedia + + + + + + Retrieves the amount of the stream that is buffered. + + the fill level, between 0.0 and 1.0 + + + + + a #ClutterMedia + + + + + + Retrieves whether @media is seekable or not. + + %TRUE if @media can seek, %FALSE otherwise. + + + + + a #ClutterMedia + + + + + + Retrieves the duration of the media stream that @media represents. + + the duration of the media stream, in seconds + + + + + a #ClutterMedia + + + + + + Retrieves the playing status of @media. + + %TRUE if playing, %FALSE if stopped. + + + + + A #ClutterMedia object + + + + + + Retrieves the playback progress of @media. + + the playback progress, between 0.0 and 1.0 + + + + + a #ClutterMedia + + + + + + Retrieves the font name currently used. + + a string containing the font name. Use g_free() + to free the returned string + + + + + a #ClutterMedia + + + + + + Retrieves the URI of the subtitle file in use. + + the URI of the subtitle file. Use g_free() + to free the returned string + + + + + a #ClutterMedia + + + + + + Retrieves the URI from @media. + + the URI of the media stream. Use g_free() + to free the returned string + + + + + a #ClutterMedia + + + + + + Sets the playback volume of @media to @volume. + + + + + + a #ClutterMedia + + + + the volume as a double between 0.0 and 1.0 + + + + + + Sets the source of @media using a file path. + + + + + + a #ClutterMedia + + + + A filename + + + + + + Starts or stops playing of @media. + +The implementation might be asynchronous, so the way to know whether +the actual playing state of the @media is to use the #GObject::notify +signal on the #ClutterMedia:playing property and then retrieve the +current state with clutter_media_get_playing(). ClutterGstVideoTexture +in clutter-gst is an example of such an asynchronous implementation. + + + + + + a #ClutterMedia + + + + %TRUE to start playing + + + + + + Sets the playback progress of @media. The @progress is +a normalized value between 0.0 (begin) and 1.0 (end). + + + + + + a #ClutterMedia + + + + the progress of the playback, between 0.0 and 1.0 + + + + + + Sets the font used by the subtitle renderer. The @font_name string must be +either %NULL, which means that the default font name of the underlying +implementation will be used; or must follow the grammar recognized by +pango_font_description_from_string() like: + +|[ + clutter_media_set_subtitle_font_name (media, "Sans 24pt"); +]| + + + + + + a #ClutterMedia + + + + a font name, or %NULL to set the default font name + + + + + + Sets the location of a subtitle file to display while playing @media. + + + + + + a #ClutterMedia + + + + the URI of a subtitle file + + + + + + Sets the URI of @media to @uri. + + + + + + a #ClutterMedia + + + + the URI of the media stream + + + + + + The volume of the audio, as a normalized value between +0.0 and 1.0. + + + + The fill level of the buffer for the current stream, +as a value between 0.0 and 1.0. + + + + Whether the current stream is seekable. + + + + The duration of the current stream, in seconds + + + + Whether the #ClutterMedia actor is playing. + + + + The current progress of the playback, as a normalized +value between 0.0 and 1.0. + + + + The font used to display subtitles. The font description has to +follow the same grammar as the one recognized by +pango_font_description_from_string(). + + + + The location of a subtitle file, expressed as a valid URI. + + + + The location of a media file, expressed as a valid URI. + + + + The ::eos signal is emitted each time the media stream ends. + + + + + + The ::error signal is emitted each time an error occurred. + + + + + + the #GError + + + + + + + Interface vtable for #ClutterMedia implementations + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Base class for list models. The #ClutterModel structure contains +only private data and should be manipulated using the provided +API. + Use #GListModel instead + + + + + + + + + + + + + Retrieves the name of the @column + Use #GListModel instead + + the name of the column. The model holds the returned + string, and it should not be modified or freed + + + + + #ClutterModel + + + + the column number + + + + + + Retrieves the type of the @column. + Use #GListModel instead + + the type of the column. + + + + + #ClutterModel + + + + the column number + + + + + + Retrieves a #ClutterModelIter representing the row at the given index. + +If a filter function has been set using clutter_model_set_filter() +then the @model implementation will return the first non filtered +row. + Use #GListModel instead + + A new #ClutterModelIter, or %NULL if @row was + out of bounds. When done using the iterator object, call g_object_unref() + to deallocate its resources + + + + + a #ClutterModel + + + + position of the row to retrieve + + + + + + Retrieves the number of columns inside @model. + Use #GListModel instead + + the number of columns + + + + + a #ClutterModel + + + + + + Retrieves the number of rows inside @model, eventually taking +into account any filtering function set using clutter_model_set_filter(). + Use #GListModel instead + + The length of the @model. If there is a filter set, then + the length of the filtered @model is returned. + + + + + a #ClutterModel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates and appends a new row to the #ClutterModel, setting the +row values upon creation. For example, to append a new row where +column 0 is type %G_TYPE_INT and column 1 is of type %G_TYPE_STRING: + +<informalexample><programlisting> + ClutterModel *model; + model = clutter_model_default_new (2, + G_TYPE_INT, "Score", + G_TYPE_STRING, "Team"); + clutter_model_append (model, 0, 42, 1, "Team #1", -1); +</programlisting></informalexample> + Use #GListModel instead + + + + + + a #ClutterModel + + + + pairs of column number and value, terminated with -1 + + + + + + Creates and appends a new row to the #ClutterModel, setting the row +values for the given @columns upon creation. + Use #GListModel instead + + + + + + a #ClutterModel + + + + the number of columns and values + + + + a vector with the columns to set + + + + + + a vector with the values + + + + + + + + Checks whether the row pointer by @iter should be filtered or not using +the filtering function set on @model. + +This function should be used only by subclasses of #ClutterModel. + Use #GListModel instead + + %TRUE if the row should be displayed, + %FALSE otherwise + + + + + a #ClutterModel + + + + the row to filter + + + + + + Checks whether @row should be filtered or not using the +filtering function set on @model. + +This function should be used only by subclasses of #ClutterModel. + Use #GListModel instead + + %TRUE if the row should be displayed, + %FALSE otherwise + + + + + a #ClutterModel + + + + the row to filter + + + + + + Calls @func for each row in the model. + Use #GListModel instead + + + + + + a #ClutterModel + + + + a #ClutterModelForeachFunc + + + + user data to pass to @func + + + + + + Retrieves the name of the @column + Use #GListModel instead + + the name of the column. The model holds the returned + string, and it should not be modified or freed + + + + + #ClutterModel + + + + the column number + + + + + + Retrieves the type of the @column. + Use #GListModel instead + + the type of the column. + + + + + #ClutterModel + + + + the column number + + + + + + Returns whether the @model has a filter in place, set +using clutter_model_set_filter() + Use #GListModel instead + + %TRUE if a filter is set + + + + + a #ClutterModel + + + + + + Retrieves a #ClutterModelIter representing the first non-filtered +row in @model. + Use #GListModel instead + + A new #ClutterModelIter. + Call g_object_unref() when done using it + + + + + a #ClutterModel + + + + + + Retrieves a #ClutterModelIter representing the row at the given index. + +If a filter function has been set using clutter_model_set_filter() +then the @model implementation will return the first non filtered +row. + Use #GListModel instead + + A new #ClutterModelIter, or %NULL if @row was + out of bounds. When done using the iterator object, call g_object_unref() + to deallocate its resources + + + + + a #ClutterModel + + + + position of the row to retrieve + + + + + + Retrieves a #ClutterModelIter representing the last non-filtered +row in @model. + Use #GListModel instead + + A new #ClutterModelIter. + Call g_object_unref() when done using it + + + + + a #ClutterModel + + + + + + Retrieves the number of columns inside @model. + Use #GListModel instead + + the number of columns + + + + + a #ClutterModel + + + + + + Retrieves the number of rows inside @model, eventually taking +into account any filtering function set using clutter_model_set_filter(). + Use #GListModel instead + + The length of the @model. If there is a filter set, then + the length of the filtered @model is returned. + + + + + a #ClutterModel + + + + + + Retrieves the number of column used for sorting the @model. + Use #GListModel instead + + a column number, or -1 if the model is not sorted + + + + + a #ClutterModel + + + + + + Inserts a new row to the #ClutterModel at @row, setting the row +values upon creation. For example, to insert a new row at index 100, +where column 0 is type %G_TYPE_INT and column 1 is of type +%G_TYPE_STRING: + +<informalexample><programlisting> + ClutterModel *model; + model = clutter_model_default_new (2, + G_TYPE_INT, "Score", + G_TYPE_STRING, "Team"); + clutter_model_insert (model, 3, 0, 42, 1, "Team #1", -1); +</programlisting></informalexample> + Use #GListModel instead + + + + + + a #ClutterModel + + + + the position to insert the new row + + + + pairs of column number and value, terminated with -1 + + + + + + Sets the data in the cell specified by @iter and @column. The type of +@value must be convertable to the type of the column. If the row does +not exist then it is created. + Use #GListModel instead + + + + + + a #ClutterModel + + + + position of the row to modify + + + + column to modify + + + + new value for the cell + + + + + + Inserts data at @row into the #ClutterModel, setting the row +values for the given @columns upon creation. + Use #GListModel instead + + + + + + a #ClutterModel + + + + row index + + + + the number of columns and values to set + + + + a vector containing the columns to set + + + + + + a vector containing the values for the cells + + + + + + + + Creates and prepends a new row to the #ClutterModel, setting the row +values upon creation. For example, to prepend a new row where column 0 +is type %G_TYPE_INT and column 1 is of type %G_TYPE_STRING: + +<informalexample><programlisting> + ClutterModel *model; + model = clutter_model_default_new (2, + G_TYPE_INT, "Score", + G_TYPE_STRING, "Team"); + clutter_model_prepend (model, 0, 42, 1, "Team #1", -1); +</programlisting></informalexample> + Use #GListModel instead + + + + + + a #ClutterModel + + + + pairs of column number and value, terminated with -1 + + + + + + Creates and prepends a new row to the #ClutterModel, setting the row +values for the given @columns upon creation. + Use #GListModel instead + + + + + + a #ClutterModel + + + + the number of columns and values to set + + + + a vector containing the columns to set + + + + + + a vector containing the values for the cells + + + + + + + + Removes the row at the given position from the model. + Use #GListModel instead + + + + + + a #ClutterModel + + + + position of row to remove + + + + + + Force a resort on the @model. This function should only be +used by subclasses of #ClutterModel. + Use #GListModel instead + + + + + + a #ClutterModel + + + + + + Filters the @model using the given filtering function. + Use #GListModel instead + + + + + + a #ClutterModel + + + + a #ClutterModelFilterFunc, or #NULL + + + + user data to pass to @func, or #NULL + + + + destroy notifier of @user_data, or #NULL + + + + + + Assigns a name to the columns of a #ClutterModel. + +This function is meant primarily for #GObjects that inherit from +#ClutterModel, and should only be used when contructing a #ClutterModel. +It will not work after the initial creation of the #ClutterModel. + Use #GListModel instead + + + + + + a #ClutterModel + + + + the number of column names + + + + an array of strings + + + + + + + + Sorts @model using the given sorting function. + Use #GListModel instead + + + + + + a #ClutterModel + + + + the column to sort on + + + + a #ClutterModelSortFunc, or #NULL + + + + user data to pass to @func, or #NULL + + + + destroy notifier of @user_data, or #NULL + + + + + + Sets the model to sort by @column. If @column is a negative value +the sorting column will be unset. + Use #GListModel instead + + + + + + a #ClutterModel + + + + the column of the @model to sort, or -1 + + + + + + Sets the types of the columns inside a #ClutterModel. + +This function is meant primarily for #GObjects that inherit from +#ClutterModel, and should only be used when contructing a #ClutterModel. +It will not work after the initial creation of the #ClutterModel. + Use #GListModel instead + + + + + + a #ClutterModel + + + + number of columns for the model + + + + an array of #GType types + + + + + + + + Whether the #ClutterModel has a filter set + +This property is set to %TRUE if a filter function has been +set using clutter_model_set_filter() + Use #GListModel instead + + + + + + + + + + The ::filter-changed signal is emitted when a new filter has been applied + Use #GListModel instead + + + + + + The ::row-added signal is emitted when a new row has been added. +The data on the row has already been set when the ::row-added signal +has been emitted. + Use #GListModel instead + + + + + + a #ClutterModelIter pointing to the new row + + + + + + The ::row-removed signal is emitted when a row has been changed. +The data on the row has already been updated when the ::row-changed +signal has been emitted. + Use #GListModel instead + + + + + + a #ClutterModelIter pointing to the changed row + + + + + + The ::row-removed signal is emitted when a row has been removed. +The data on the row pointed by the passed iterator is still valid +when the ::row-removed signal has been emitted. + Use #GListModel instead + + + + + + a #ClutterModelIter pointing to the removed row + + + + + + The ::sort-changed signal is emitted after the model has been sorted + Use #GListModel instead + + + + + + + Class for #ClutterModel instances. + Use #GListModel instead + + + + + + + The length of the @model. If there is a filter set, then + the length of the filtered @model is returned. + + + + + a #ClutterModel + + + + + + + + + the number of columns + + + + + a #ClutterModel + + + + + + + + + the name of the column. The model holds the returned + string, and it should not be modified or freed + + + + + #ClutterModel + + + + the column number + + + + + + + + + the type of the column. + + + + + #ClutterModel + + + + the column number + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A new #ClutterModelIter, or %NULL if @row was + out of bounds. When done using the iterator object, call g_object_unref() + to deallocate its resources + + + + + a #ClutterModel + + + + position of the row to retrieve + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Filters the content of a row in the model. + Implement filters using a custom #GListModel instead + + If the row should be displayed, return %TRUE + + + + + a #ClutterModel + + + + the iterator for the row + + + + data passed to clutter_model_set_filter() + + + + + + Iterates on the content of a row in the model + Use #GListModel + + %TRUE if the iteration should continue, %FALSE otherwise + + + + + a #ClutterModel + + + + the iterator for the row + + + + data passed to clutter_model_foreach() + + + + + + Base class for list models iters. The #ClutterModelIter structure +contains only private data and should be manipulated using the +provided API. + Use custom iterators for #GListModel + + Copies the passed iterator. + Use #GListModel instead + + a copy of the iterator, or %NULL + + + + + a #ClutterModelIter + + + + + + Retrieves a pointer to the #ClutterModel that this iter is part of. + Use #GListModel instead + + a pointer to a #ClutterModel. + + + + + a #ClutterModelIter + + + + + + Retrieves the position of the row that the @iter points to. + Use #GListModel instead + + the position of the @iter in the model + + + + + a #ClutterModelIter + + + + + + Sets an initializes @value to that at @column. When done with @value, +g_value_unset() needs to be called to free any allocated memory. + Use #GListModel instead + + + + + + a #ClutterModelIter + + + + column number to retrieve the value from + + + + an empty #GValue to set + + + + + + Gets whether the current iterator is at the beginning of the model +to which it belongs. + Use #GListModel instead + + #TRUE if @iter is the first iter in the filtered model + + + + + a #ClutterModelIter + + + + + + Gets whether the iterator is at the end of the model to which it +belongs. + Use #GListModel instead + + #TRUE if @iter is the last iter in the filtered model. + + + + + a #ClutterModelIter + + + + + + Updates the @iter to point at the next position in the model. +The model implementation should take into account the presence of +a filter function. + Use #GListModel instead + + The passed iterator, updated to point at the next + row in the model. + + + + + a #ClutterModelIter + + + + + + Sets the @iter to point at the previous position in the model. +The model implementation should take into account the presence of +a filter function. + Use #GListModel instead + + The passed iterator, updated to point at the previous + row in the model. + + + + + a #ClutterModelIter + + + + + + Sets the data in the cell specified by @iter and @column. The type of +@value must be convertable to the type of the column. + Use #GListModel instead + + + + + + a #ClutterModelIter + + + + column number to retrieve the value from + + + + new value for the cell + + + + + + Copies the passed iterator. + Use #GListModel instead + + a copy of the iterator, or %NULL + + + + + a #ClutterModelIter + + + + + + Gets the value of one or more cells in the row referenced by @iter. The +variable argument list should contain integer column numbers, each column +column number followed by a place to store the value being retrieved. The +list is terminated by a -1. + +For example, to get a value from column 0 with type %G_TYPE_STRING use: +<informalexample><programlisting> + clutter_model_iter_get (iter, 0, &place_string_here, -1); +</programlisting></informalexample> + +where place_string_here is a gchar* to be filled with the string. If +appropriate, the returned values have to be freed or unreferenced. + Use #GListModel instead + + + + + + a #ClutterModelIter + + + + a list of column/return location pairs, terminated by -1 + + + + + + Retrieves a pointer to the #ClutterModel that this iter is part of. + Use #GListModel instead + + a pointer to a #ClutterModel. + + + + + a #ClutterModelIter + + + + + + Retrieves the position of the row that the @iter points to. + Use #GListModel instead + + the position of the @iter in the model + + + + + a #ClutterModelIter + + + + + + See clutter_model_iter_get(). This version takes a va_list for language +bindings. + Use #GListModel instead + + + + + + a #ClutterModelIter + + + + a list of column/return location pairs, terminated by -1 + + + + + + Sets an initializes @value to that at @column. When done with @value, +g_value_unset() needs to be called to free any allocated memory. + Use #GListModel instead + + + + + + a #ClutterModelIter + + + + column number to retrieve the value from + + + + an empty #GValue to set + + + + + + Gets whether the current iterator is at the beginning of the model +to which it belongs. + Use #GListModel instead + + #TRUE if @iter is the first iter in the filtered model + + + + + a #ClutterModelIter + + + + + + Gets whether the iterator is at the end of the model to which it +belongs. + Use #GListModel instead + + #TRUE if @iter is the last iter in the filtered model. + + + + + a #ClutterModelIter + + + + + + Updates the @iter to point at the next position in the model. +The model implementation should take into account the presence of +a filter function. + Use #GListModel instead + + The passed iterator, updated to point at the next + row in the model. + + + + + a #ClutterModelIter + + + + + + Sets the @iter to point at the previous position in the model. +The model implementation should take into account the presence of +a filter function. + Use #GListModel instead + + The passed iterator, updated to point at the previous + row in the model. + + + + + a #ClutterModelIter + + + + + + Sets the value of one or more cells in the row referenced by @iter. The +variable argument list should contain integer column numbers, each column +column number followed by the value to be set. The list is terminated by a +-1. + +For example, to set column 0 with type %G_TYPE_STRING, use: +<informalexample><programlisting> + clutter_model_iter_set (iter, 0, "foo", -1); +</programlisting></informalexample> + Use #GListModel instead + + + + + + a #ClutterModelIter + + + + a list of column/return location pairs, terminated by -1 + + + + + + See clutter_model_iter_set(); this version takes a va_list for language +bindings. + Use #GListModel instead + + + + + + a #ClutterModelIter + + + + va_list of column/value pairs, terminiated by -1 + + + + + + Sets the data in the cell specified by @iter and @column. The type of +@value must be convertable to the type of the column. + Use #GListModel instead + + + + + + a #ClutterModelIter + + + + column number to retrieve the value from + + + + new value for the cell + + + + + + A reference to the #ClutterModel that this iter belongs to. + Use #GListModel instead + + + + The row number to which this iter points to. + Use #GListModel instead + + + + + + + + + + + Class for #ClutterModelIter instances. + Use custom iterators for #GListModel + + + + + + + + + + + a #ClutterModelIter + + + + column number to retrieve the value from + + + + an empty #GValue to set + + + + + + + + + + + + + a #ClutterModelIter + + + + column number to retrieve the value from + + + + new value for the cell + + + + + + + + + #TRUE if @iter is the first iter in the filtered model + + + + + a #ClutterModelIter + + + + + + + + + #TRUE if @iter is the last iter in the filtered model. + + + + + a #ClutterModelIter + + + + + + + + + The passed iterator, updated to point at the next + row in the model. + + + + + a #ClutterModelIter + + + + + + + + + The passed iterator, updated to point at the previous + row in the model. + + + + + a #ClutterModelIter + + + + + + + + + a pointer to a #ClutterModel. + + + + + a #ClutterModelIter + + + + + + + + + the position of the @iter in the model + + + + + a #ClutterModelIter + + + + + + + + + a copy of the iterator, or %NULL + + + + + a #ClutterModelIter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Compares the content of two rows in the model. + Implement sorting using a custom #GListModel instead + + a positive integer if @a is after @b, a negative integer if + @a is before @b, or 0 if the rows are the same + + + + + a #ClutterModel + + + + a #GValue representing the contents of the row + + + + a #GValue representing the contents of the second row + + + + data passed to clutter_model_set_sort() + + + + + + Masks applied to a #ClutterEvent by modifiers. + +Note that Clutter may add internal values to events which include +reserved values such as %CLUTTER_MODIFIER_RESERVED_13_MASK. Your code +should preserve and ignore them. You can use %CLUTTER_MODIFIER_MASK to +remove all reserved values. + + Mask applied by the Shift key + + + Mask applied by the Caps Lock key + + + Mask applied by the Control key + + + Mask applied by the first Mod key + + + Mask applied by the second Mod key + + + Mask applied by the third Mod key + + + Mask applied by the fourth Mod key + + + Mask applied by the fifth Mod key + + + Mask applied by the first pointer button + + + Mask applied by the second pointer button + + + Mask applied by the third pointer button + + + Mask applied by the fourth pointer button + + + Mask applied by the fifth pointer button + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Mask applied by the Super key + + + Mask applied by the Hyper key + + + Mask applied by the Meta key + + + + + Mask applied during release + + + A mask covering all modifier types + + + + + + + + + + Event for the pointer motion + + event type + + + + event time + + + + event flags + + + + event source stage + + + + event source actor + + + + event X coordinate + + + + event Y coordinate + + + + button modifiers + + + + reserved for future use + + + + the device that originated the event. If you want the physical +device the event originated from, use clutter_event_get_source_device() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Set to 1 if Clutter was built without FPU (i.e fixed math), 0 otherwise + This macro is no longer defined (identical code is used + regardless the presence of FPU). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterOffscreenEffect structure contains only private data +and should be accessed using the provided API + + Calls the create_texture() virtual function of the @effect + + a handle to a Cogl texture, or + %COGL_INVALID_HANDLE. The returned handle has its reference + count increased. + + + + + a #ClutterOffscreenEffect + + + + the minimum width of the target texture + + + + the minimum height of the target texture + + + + + + Calls the paint_target() virtual function of the @effect + + + + + + a #ClutterOffscreenEffect + + + + + + Calls the create_texture() virtual function of the @effect + + a handle to a Cogl texture, or + %COGL_INVALID_HANDLE. The returned handle has its reference + count increased. + + + + + a #ClutterOffscreenEffect + + + + the minimum width of the target texture + + + + the minimum height of the target texture + + + + + + Retrieves the material used as a render target for the offscreen +buffer created by @effect + +You should only use the returned #CoglMaterial when painting. The +returned material might change between different frames. + + a #CoglMaterial or %NULL. The + returned material is owned by Clutter and it should not be + modified or freed + + + + + a #ClutterOffscreenEffect + + + + + + Retrieves the origin and size of the offscreen buffer used by @effect to +paint the actor to which it has been applied. + +This function should only be called by #ClutterOffscreenEffect +implementations, from within the #ClutterOffscreenEffectClass.paint_target() +virtual function. + + %TRUE if the offscreen buffer has a valid rectangle, + and %FALSE otherwise + + + + + a #ClutterOffscreenEffect + + + + return location for the target area + + + + + + Retrieves the size of the offscreen buffer used by @effect to +paint the actor to which it has been applied. + +This function should only be called by #ClutterOffscreenEffect +implementations, from within the #ClutterOffscreenEffectClass.paint_target() +virtual function. + Use clutter_offscreen_effect_get_target_rect() instead + + %TRUE if the offscreen buffer has a valid size, + and %FALSE otherwise + + + + + a #ClutterOffscreenEffect + + + + return location for the target width, or %NULL + + + + return location for the target height, or %NULL + + + + + + Retrieves the texture used as a render target for the offscreen +buffer created by @effect + +You should only use the returned texture when painting. The texture +may change after ClutterEffect::pre_paint is called so the effect +implementation should update any references to the texture after +chaining-up to the parent's pre_paint implementation. This can be +used instead of clutter_offscreen_effect_get_target() when the +effect subclass wants to paint using its own material. + + a #CoglHandle or %COGL_INVALID_HANDLE. The + returned texture is owned by Clutter and it should not be + modified or freed + + + + + a #ClutterOffscreenEffect + + + + + + Calls the paint_target() virtual function of the @effect + + + + + + a #ClutterOffscreenEffect + + + + + + + + + + + + + The #ClutterOffscreenEffectClass structure contains only private data + + + + + + + a handle to a Cogl texture, or + %COGL_INVALID_HANDLE. The returned handle has its reference + count increased. + + + + + a #ClutterOffscreenEffect + + + + the minimum width of the target texture + + + + the minimum height of the target texture + + + + + + + + + + + + + a #ClutterOffscreenEffect + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Possible flags to pass to clutter_actor_set_offscreen_redirect(). + + Only redirect + the actor if it is semi-transparent and its has_overlaps() + virtual returns %TRUE. This is the default. + + + Always redirect the actor to an + offscreen buffer even if it is fully opaque. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents the orientation of actors or layout managers. + + An horizontal orientation + + + A vertical orientation + + + + + + + + + + + + + + + + + + + + + + Priority of the redraws. This is chosen to be lower than the GTK+ +redraw and resize priorities, because in application with both +GTK+ and Clutter it's more likely that the Clutter part will be +continually animating (and thus able to starve GTK+) than +vice-versa. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #ClutterPageTurnEffect is an opaque structure +whose members can only be accessed using the provided API + + Creates a new #ClutterPageTurnEffect instance with the given parameters + + the newly created #ClutterPageTurnEffect + + + + + the period of the page curl, between 0.0 and 1.0 + + + + the angle of the page curl, between 0.0 and 360.0 + + + + the radius of the page curl, in pixels + + + + + + Retrieves the value set using clutter_page_turn_effect_get_angle() + + the angle of the page curling + + + + + a #ClutterPageTurnEffect: + + + + + + Retrieves the value set using clutter_page_turn_effect_get_period() + + the period of the page curling + + + + + a #ClutterPageTurnEffect + + + + + + Retrieves the value set using clutter_page_turn_effect_set_radius() + + the radius of the page curling + + + + + a #ClutterPageTurnEffect + + + + + + Sets the angle of the page curling, in degrees + + + + + + #ClutterPageTurnEffect + + + + the angle of the page curl, in degrees + + + + + + Sets the period of the page curling, between 0.0 (no curling) +and 1.0 (fully curled) + + + + + + a #ClutterPageTurnEffect + + + + the period of the page curl, between 0.0 and 1.0 + + + + + + Sets the radius of the page curling + + + + + + a #ClutterPageTurnEffect: + + + + the radius of the page curling, in pixels + + + + + + The angle of the page rotation, in degrees, between 0.0 and 360.0 + + + + The period of the page turn, between 0.0 (no curling) and +1.0 (fully curled) + + + + The radius of the page curl, in pixels + + + + + + + + + + + + + The `ClutterPaintNode` structure contains only private data +and it should be accessed using the provided API. + + Adds @child to the list of children of @node. + +This function will acquire a reference on @child. + + + + + + a #ClutterPaintNode + + + + the child #ClutterPaintNode to add + + + + + + Adds a region described as a path to the @node. + +This function acquires a reference on the passed @path, so it +is safe to call cogl_object_unref() when it returns. + + + + + + a #ClutterPaintNode + + + + a Cogl path + + + + + + Adds a region described by a Cogl primitive to the @node. + +This function acquires a reference on @primitive, so it is safe +to call cogl_object_unref() when it returns. + + + + + + a #ClutterPaintNode + + + + a Cogl primitive + + + + + + Adds a rectangle region to the @node, as described by the +passed @rect. + + + + + + a #ClutterPaintNode + + + + a #ClutterActorBox + + + + + + Adds a rectangle region to the @node, with texture coordinates. + + + + + + a #ClutterPaintNode + + + + a #ClutterActorBox + + + + the left X coordinate of the texture + + + + the top Y coordinate of the texture + + + + the right X coordinate of the texture + + + + the bottom Y coordinate of the texture + + + + + + Acquires a reference on @node. + + the #ClutterPaintNode + + + + + a #ClutterPaintNode + + + + + + Sets a user-readable @name for @node. + +The @name will be used for debugging purposes. + +The @node will copy the passed string. + + + + + + a #ClutterPaintNode + + + + a string annotating the @node + + + + + + Releases a reference on @node. + + + + + + a #ClutterPaintNode + + + + + + + The `ClutterPaintNodeClass` structure contains only private data. + + + + + #ClutterPaintVolume is an opaque structure +whose members cannot be directly accessed. + +A #ClutterPaintVolume represents an +a bounding volume whose internal representation isn't defined but +can be set and queried in terms of an axis aligned bounding box. + +A #ClutterPaintVolume for a #ClutterActor +is defined to be relative from the current actor modelview matrix. + +Other internal representation and methods for describing the +bounding volume may be added in the future. + + Copies @pv into a new #ClutterPaintVolume + + a newly allocated copy of a #ClutterPaintVolume + + + + + a #ClutterPaintVolume + + + + + + Frees the resources allocated by @pv + + + + + + a #ClutterPaintVolume + + + + + + Retrieves the depth of the volume's, axis aligned, bounding box. + +In other words; this takes into account what actor's coordinate +space @pv belongs too and conceptually fits an axis aligned box +around the volume. It returns the size of that bounding box as +measured along the z-axis. + +If, for example, clutter_actor_get_transformed_paint_volume() +is used to transform a 2D child actor that is 100px wide, 100px +high and 0px deep into container coordinates then the depth might +not simply be 0px if the child actor has a 3D rotation applied to +it. + +Remember: if clutter_actor_get_transformed_paint_volume() is +used then the transformed volume will be defined relative to the +container actor and in container coordinates a 2D child actor +can have a 3D bounding volume. + +There are no accuracy guarantees for the reported depth, +except that it must always be greater than, or equal to, the actor's +depth. This is because actors may report simple, loose fitting paint +volumes for efficiency. + + the depth, in units of @pv's local coordinate system. + + + + + a #ClutterPaintVolume + + + + + + Retrieves the height of the volume's, axis aligned, bounding box. + +In other words; this takes into account what actor's coordinate +space @pv belongs too and conceptually fits an axis aligned box +around the volume. It returns the size of that bounding box as +measured along the y-axis. + +If, for example, clutter_actor_get_transformed_paint_volume() +is used to transform a 2D child actor that is 100px wide, 100px +high and 0px deep into container coordinates then the height might +not simply be 100px if the child actor has a 3D rotation applied to +it. + +Remember: if clutter_actor_get_transformed_paint_volume() is +used then a transformed child volume will be defined relative to the +ancestor container actor and so a 2D child actor +can have a 3D bounding volume. + +There are no accuracy guarantees for the reported height, +except that it must always be greater than, or equal to, the actor's +height. This is because actors may report simple, loose fitting paint +volumes for efficiency. + + the height, in units of @pv's local coordinate system. + + + + + a #ClutterPaintVolume + + + + + + Retrieves the origin of the #ClutterPaintVolume. + + + + + + a #ClutterPaintVolume + + + + the return location for a #ClutterVertex + + + + + + Retrieves the width of the volume's, axis aligned, bounding box. + +In other words; this takes into account what actor's coordinate +space @pv belongs too and conceptually fits an axis aligned box +around the volume. It returns the size of that bounding box as +measured along the x-axis. + +If, for example, clutter_actor_get_transformed_paint_volume() +is used to transform a 2D child actor that is 100px wide, 100px +high and 0px deep into container coordinates then the width might +not simply be 100px if the child actor has a 3D rotation applied to +it. + +Remember: if clutter_actor_get_transformed_paint_volume() is +used then a transformed child volume will be defined relative to the +ancestor container actor and so a 2D child actor can have a 3D +bounding volume. + +There are no accuracy guarantees for the reported width, +except that it must always be greater than, or equal to, the +actor's width. This is because actors may report simple, loose +fitting paint volumes for efficiency. + + the width, in units of @pv's local coordinate system. + + + + + a #ClutterPaintVolume + + + + + + Sets the depth of the paint volume. The depth is measured along +the z axis in the actor coordinates that @pv is associated with. + + + + + + a #ClutterPaintVolume + + + + the depth of the paint volume, in pixels + + + + + + Sets the #ClutterPaintVolume from the allocation of @actor. + +This function should be used when overriding the +#ClutterActorClass.get_paint_volume() by #ClutterActor sub-classes +that do not paint outside their allocation. + +A typical example is: + +|[ +static gboolean +my_actor_get_paint_volume (ClutterActor *self, + ClutterPaintVolume *volume) +{ + return clutter_paint_volume_set_from_allocation (volume, self); +} +]| + + %TRUE if the paint volume was successfully set, and %FALSE + otherwise + + + + + a #ClutterPaintVolume + + + + a #ClutterActor + + + + + + Sets the height of the paint volume. The height is measured along +the y axis in the actor coordinates that @pv is associated with. + + + + + + a #ClutterPaintVolume + + + + the height of the paint volume, in pixels + + + + + + Sets the origin of the paint volume. + +The origin is defined as the X, Y and Z coordinates of the top-left +corner of an actor's paint volume, in actor coordinates. + +The default is origin is assumed at: (0, 0, 0) + + + + + + a #ClutterPaintVolume + + + + a #ClutterVertex + + + + + + Sets the width of the paint volume. The width is measured along +the x axis in the actor coordinates that @pv is associated with. + + + + + + a #ClutterPaintVolume + + + + the width of the paint volume, in pixels + + + + + + Updates the geometry of @pv to encompass @pv and @another_pv. + +There are no guarantees about how precisely the two volumes +will be unioned. + + + + + + The first #ClutterPaintVolume and destination for resulting + union + + + + A second #ClutterPaintVolume to union with @pv + + + + + + Unions the 2D region represented by @box to a #ClutterPaintVolume. + +This function is similar to clutter_paint_volume_union(), but it is +specific for 2D regions. + + + + + + a #ClutterPaintVolume + + + + a #ClutterActorBox to union to @pv + + + + + + + The #ClutterPanAction structure contains +only private data and should be accessed using the provided API + + Creates a new #ClutterPanAction instance + + the newly created #ClutterPanAction + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Retrieves the initial acceleration factor for interpolated ::pan events. + + The initial acceleration factor for interpolated events. + + + + + A #ClutterPanAction + + + + + + Retrieves the delta, in stage space, dependent on the current state +of the #ClutterPanAction, and respecting the constraint specified by the +#ClutterPanAction:pan-axis property. + + the distance since last motion event + + + + + A #ClutterPanAction + + + + the touch point index, with 0 being the first touch + point received by the action + + + + return location for the X delta + + + + return location for the Y delta + + + + + + Retrieves the deceleration rate of interpolated ::pan events. + + The deceleration rate of the interpolated events. + + + + + A #ClutterPanAction + + + + + + Checks if the action should emit ::pan events even after releasing +the pointer during a panning gesture, to emulate some kind of +kinetic inertia. + + %TRUE if interpolated events emission is active. + + + + + a #ClutterPanAction + + + + + + Retrieves the coordinates, in stage space, of the latest interpolated +event, analogous to clutter_gesture_action_get_motion_coords(). + + + + + + A #ClutterPanAction + + + + return location for the latest + interpolated event's X coordinate + + + + return location for the latest + interpolated event's Y coordinate + + + + + + Retrieves the delta, in stage space, since the latest interpolated +event, analogous to clutter_gesture_action_get_motion_delta(). + + the distance since the latest interpolated event + + + + + A #ClutterPanAction + + + + return location for the X delta since + the latest interpolated event + + + + return location for the Y delta since + the latest interpolated event + + + + + + Retrieves the coordinates, in stage space, dependent on the current state +of the #ClutterPanAction. If it is inactive, both fields will be +set to 0. If it is panning by user action, the values will be equivalent +to those returned by clutter_gesture_action_get_motion_coords(). +If it is interpolating with some form of kinetic scrolling, the values +will be equivalent to those returned by +clutter_pan_action_get_interpolated_coords(). This is a convenience +method designed to be used in replacement "pan" signal handlers. + + + + + + A #ClutterPanAction + + + + the touch point index, with 0 being the first touch + point received by the action + + + + return location for the X coordinate + + + + return location for the Y coordinate + + + + + + Retrieves the delta, in stage space, dependent on the current state +of the #ClutterPanAction. If it is inactive, both fields will be +set to 0. If it is panning by user action, the values will be equivalent +to those returned by clutter_gesture_action_get_motion_delta(). +If it is interpolating with some form of kinetic scrolling, the values +will be equivalent to those returned by +clutter_pan_action_get_interpolated_delta(). This is a convenience +method designed to be used in replacement "pan" signal handlers. + + + + + + A #ClutterPanAction + + + + the touch point index, with 0 being the first touch + point received by the action + + + + return location for the X delta + + + + return location for the Y delta + + + + + + Retrieves the axis constraint set by clutter_pan_action_set_pan_axis() + + the axis constraint + + + + + a #ClutterPanAction + + + + + + Factor applied to the momentum velocity at the time of releasing the +pointer when generating interpolated ::pan events. + + + + + + A #ClutterPanAction + + + + The acceleration factor + + + + + + Sets the deceleration rate of the interpolated ::pan events generated +after a pan gesture. This is approximately the value that the momentum +at the time of releasing the pointer is divided by every 60th of a second. + + + + + + A #ClutterPanAction + + + + The deceleration rate + + + + + + Sets whether the action should emit interpolated ::pan events +after the drag has ended, to emulate the gesture kinetic inertia. + + + + + + a #ClutterPanAction + + + + whether to enable interpolated pan events + + + + + + Restricts the panning action to a specific axis + + + + + + a #ClutterPanAction + + + + the axis to constraint the panning to + + + + + + The initial acceleration factor + +The kinetic momentum measured at the time of releasing the pointer will +be multiplied by the factor specified by this property before being used +to generate interpolated ::pan events. + + + + The rate at which the interpolated panning will decelerate in + +#ClutterPanAction will emit interpolated ::pan events with decreasing +scroll deltas, using the rate specified by this property. + + + + Whether interpolated events emission is enabled. + + + + Constraints the panning action to the specified axis + + + + + + + + + + The ::pan signal is emitted to keep track of the motion during +a pan gesture. @is_interpolated is set to %TRUE during the +interpolation phase of the pan, after the drag has ended and +the :interpolate property was set to %TRUE. + + %TRUE if the pan should continue, and %FALSE if + the pan should be cancelled. + + + + + the #ClutterActor attached to the @action + + + + if the event is the result of interpolating + the motion velocity at the end of the drag + + + + + + The ::pan-stopped signal is emitted at the end of the interpolation +phase of the pan action, only when :interpolate is set to %TRUE. + + + + + + the #ClutterActor attached to the @action + + + + + + + The #ClutterPanActionClass structure contains +only private data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The axis of the constraint that should be applied on the +panning action + + No constraint + + + Set a constraint on the X axis + + + Set a constraint on the Y axis + + + Constrain panning automatically based on initial + movement (available since 1.24) + + + + A #GParamSpec subclass for defining properties holding +a #ClutterColor. + + + + + default color value + + + + + + + #GParamSpec subclass for unit based properties. + + + + + default type + + + + default value + + + + lower boundary + + + + higher boundary + + + + + + + + The #ClutterPath struct contains only private data and should +be accessed with the functions below. + + Creates a new #ClutterPath instance with no nodes. + +The object has a floating reference so if you add it to a +#ClutterBehaviourPath then you do not need to unref it. + + the newly created #ClutterPath + + + + + Creates a new #ClutterPath instance with the nodes described in +@desc. See clutter_path_add_string() for details of the format of +the string. + +The object has a floating reference so if you add it to a +#ClutterBehaviourPath then you do not need to unref it. + + the newly created #ClutterPath + + + + + a string describing the path + + + + + + Add the nodes of the Cairo path to the end of @path. + + + + + + a #ClutterPath + + + + a Cairo path + + + + + + Adds a %CLUTTER_PATH_CLOSE type node to the path. This creates a +straight line from the last node to the last %CLUTTER_PATH_MOVE_TO +type node. + + + + + + a #ClutterPath + + + + + + Adds a %CLUTTER_PATH_CURVE_TO type node to the path. This causes +the actor to follow a bezier from the last node to (@x_3, @y_3) using +(@x_1, @y_1) and (@x_2,@y_2) as control points. + + + + + + a #ClutterPath + + + + the x coordinate of the first control point + + + + the y coordinate of the first control point + + + + the x coordinate of the second control point + + + + the y coordinate of the second control point + + + + the x coordinate of the third control point + + + + the y coordinate of the third control point + + + + + + Adds a %CLUTTER_PATH_LINE_TO type node to the path. This causes the +actor to move to the new coordinates in a straight line. + + + + + + a #ClutterPath + + + + the x coordinate + + + + the y coordinate + + + + + + Adds a %CLUTTER_PATH_MOVE_TO type node to the path. This is usually +used as the first node in a path. It can also be used in the middle +of the path to cause the actor to jump to the new coordinate. + + + + + + a #ClutterPath + + + + the x coordinate + + + + the y coordinate + + + + + + Adds @node to the end of the path. + + + + + + a #ClutterPath + + + + a #ClutterPathNode + + + + + + Same as clutter_path_add_curve_to() except the coordinates are +relative to the previous node. + + + + + + a #ClutterPath + + + + the x coordinate of the first control point + + + + the y coordinate of the first control point + + + + the x coordinate of the second control point + + + + the y coordinate of the second control point + + + + the x coordinate of the third control point + + + + the y coordinate of the third control point + + + + + + Same as clutter_path_add_line_to() except the coordinates are +relative to the previous node. + + + + + + a #ClutterPath + + + + the x coordinate + + + + the y coordinate + + + + + + Same as clutter_path_add_move_to() except the coordinates are +relative to the previous node. + + + + + + a #ClutterPath + + + + the x coordinate + + + + the y coordinate + + + + + + Adds new nodes to the end of the path as described in @str. The +format is a subset of the SVG path format. Each node is represented +by a letter and is followed by zero, one or three pairs of +coordinates. The coordinates can be separated by spaces or a +comma. The types are: + + - `M`: Adds a %CLUTTER_PATH_MOVE_TO node. Takes one pair of coordinates. + - `L`: Adds a %CLUTTER_PATH_LINE_TO node. Takes one pair of coordinates. + - `C`: Adds a %CLUTTER_PATH_CURVE_TO node. Takes three pairs of coordinates. + - `z`: Adds a %CLUTTER_PATH_CLOSE node. No coordinates are needed. + +The M, L and C commands can also be specified in lower case which +means the coordinates are relative to the previous node. + +For example, to move an actor in a 100 by 100 pixel square centered +on the point 300,300 you could use the following path: + +|[ + M 250,350 l 0 -100 L 350,250 l 0 100 z +]| + +If the path description isn't valid %FALSE will be returned and no +nodes will be added. + + %TRUE is the path description was valid or %FALSE +otherwise. + + + + + a #ClutterPath + + + + a string describing the new nodes + + + + + + Removes all nodes from the path. + + + + + + a #ClutterPath + + + + + + Calls a function for each node of the path. + + + + + + a #ClutterPath + + + + the function to call with each node + + + + user data to pass to the function + + + + + + Returns a newly allocated string describing the path in the same +format as used by clutter_path_add_string(). + + a string description of the path. Free with g_free(). + + + + + a #ClutterPath + + + + + + Retrieves an approximation of the total length of the path. + + the length of the path. + + + + + a #ClutterPath + + + + + + Retrieves the number of nodes in the path. + + the number of nodes. + + + + + a #ClutterPath + + + + + + Retrieves the node of the path indexed by @index. + + + + + + a #ClutterPath + + + + the node number to retrieve + + + + a location to store a copy of the node + + + + + + Returns a #GSList of #ClutterPathNode<!-- -->s. The list should be +freed with g_slist_free(). The nodes are owned by the path and +should not be freed. Altering the path may cause the nodes in the +list to become invalid so you should copy them if you want to keep +the list. + + a + list of nodes in the path. + + + + + + + a #ClutterPath + + + + + + The value in @progress represents a position along the path where +0.0 is the beginning and 1.0 is the end of the path. An +interpolated position is then stored in @position. + + index of the node used to calculate the position. + + + + + a #ClutterPath + + + + a position along the path as a fraction of its length + + + + location to store the position + + + + + + Inserts @node into the path before the node at the given offset. If +@index_ is negative it will append the node to the end of the path. + + + + + + a #ClutterPath + + + + offset of where to insert the node + + + + the node to insert + + + + + + Removes the node at the given offset from the path. + + + + + + a #ClutterPath + + + + index of the node to remove + + + + + + Replaces the node at offset @index_ with @node. + + + + + + a #ClutterPath + + + + index to the existing node + + + + the replacement node + + + + + + Replaces all of the nodes in the path with nodes described by +@str. See clutter_path_add_string() for details of the format. + +If the string is invalid then %FALSE is returned and the path is +unaltered. + + %TRUE is the path was valid, %FALSE otherwise. + + + + + a #ClutterPath + + + + a string describing the path + + + + + + Add the nodes of the ClutterPath to the path in the Cairo context. + + + + + + a #ClutterPath + + + + a Cairo context + + + + + + + + + + + + + + + + + + + This function is passed to clutter_path_foreach() and will be +called for each node contained in the path. + + + + + + the node + + + + optional data passed to the function + + + + + + The #ClutterPathClass struct contains only private data. + + + + + + #ClutterPathConstraint is an opaque structure +whose members cannot be directly accessed + + Creates a new #ClutterPathConstraint with the given @path and @offset + + the newly created #ClutterPathConstraint + + + + + a #ClutterPath, or %NULL + + + + the offset along the #ClutterPath + + + + + + Retrieves the offset along the #ClutterPath used by @constraint. + + the offset + + + + + a #ClutterPathConstraint + + + + + + Retrieves a pointer to the #ClutterPath used by @constraint. + + the #ClutterPath used by the + #ClutterPathConstraint, or %NULL. The returned #ClutterPath is owned + by the constraint and it should not be unreferenced + + + + + a #ClutterPathConstraint + + + + + + Sets the offset along the #ClutterPath used by @constraint. + + + + + + a #ClutterPathConstraint + + + + the offset along the path + + + + + + Sets the @path to be followed by the #ClutterPathConstraint. + +The @constraint will take ownership of the #ClutterPath passed to this +function. + + + + + + a #ClutterPathConstraint + + + + a #ClutterPath + + + + + + The offset along the #ClutterPathConstraint:path, between -1.0 and 2.0. + + + + The #ClutterPath used to constrain the position of an actor. + + + + The ::node-reached signal is emitted each time a +#ClutterPathConstraint:offset value results in the actor +passing a #ClutterPathNode + + + + + + the #ClutterActor using the @constraint + + + + the index of the node that has been reached + + + + + + + + + Represents a single node of a #ClutterPath. + +Some of the coordinates in @points may be unused for some node +types. %CLUTTER_PATH_MOVE_TO and %CLUTTER_PATH_LINE_TO use only one +pair of coordinates, %CLUTTER_PATH_CURVE_TO uses all three and +%CLUTTER_PATH_CLOSE uses none. + + the node's type + + + + the coordinates of the node + + + + + + Makes an allocated copy of a node. + + the copied node. + + + + + a #ClutterPathNode + + + + + + Compares two nodes and checks if they are the same type with the +same coordinates. + + %TRUE if the nodes are the same. + + + + + First node + + + + Second node + + + + + + Frees the memory of an allocated node. + + + + + + a #ClutterPathNode + + + + + + + Types of nodes in a #ClutterPath. + + jump to the given position + + + create a line from the last node to the + given position + + + bezier curve using the last position and + three control points. + + + create a line from the last node to the last + %CLUTTER_PATH_MOVE_TO node. + + + same as %CLUTTER_PATH_MOVE_TO but with + coordinates relative to the last node. + + + same as %CLUTTER_PATH_LINE_TO but with + coordinates relative to the last node. + + + same as %CLUTTER_PATH_CURVE_TO but with + coordinates relative to the last node. + + + + + + + + + Stage perspective definition. #ClutterPerspective is only used by +the fixed point version of clutter_stage_set_perspective(). + + the field of view angle, in degrees, in the y direction + + + + the aspect ratio that determines the field of view in the x + direction. The aspect ratio is the ratio of x (width) to y (height) + + + + the distance from the viewer to the near clipping + plane (always positive) + + + + the distance from the viewer to the far clipping + plane (always positive) + + + + + + + + + + + Controls the paint cycle of the scene graph when in pick mode + + Do not paint any actor + + + Paint only the reactive actors + + + Paint all actors + + + + + + + The #ClutterTextNode structure is an opaque +type whose members cannot be directly accessed. + + Creates a new #ClutterPaintNode that will use the @pipeline to +paint its contents. + +This function will acquire a reference on the passed @pipeline, +so it is safe to call cogl_object_unref() when it returns. + + the newly created #ClutterPaintNode. + Use clutter_paint_node_unref() when done. + + + + + a Cogl pipeline state object, or %NULL + + + + + + + The `ClutterPipelineNodeClass` structure is an opaque +type whose members cannot be directly accessed. + + + A point in 2D space. + + X coordinate, in pixels + + + + Y coordinate, in pixels + + + + Allocates a new #ClutterPoint. + + the newly allocated #ClutterPoint. + Use clutter_point_free() to free its resources. + + + + + Creates a new #ClutterPoint with the same coordinates of @point. + + a newly allocated #ClutterPoint. + Use clutter_point_free() to free its resources. + + + + + a #ClutterPoint + + + + + + Computes the distance between two #ClutterPoint. + + the distance between the points. + + + + + a #ClutterPoint + + + + a #ClutterPoint + + + + return location for the horizontal + distance between the points + + + + return location for the vertical + distance between the points + + + + + + Compares two #ClutterPoint for equality. + + %TRUE if the #ClutterPoints are equal + + + + + the first #ClutterPoint to compare + + + + the second #ClutterPoint to compare + + + + + + Frees the resources allocated for @point. + + + + + + a #ClutterPoint + + + + + + Initializes @point with the given coordinates. + + the initialized #ClutterPoint + + + + + a #ClutterPoint + + + + the X coordinate of the point + + + + the Y coordinate of the point + + + + + + A point centered at (0, 0). + +The returned value can be used as a guard. + + a point centered in (0, 0); the returned #ClutterPoint + is owned by Clutter and it should not be modified or freed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Prototype of the progress function used to compute the value +between the two ends @a and @b of an interval depending on +the value of @progress. + +The #GValue in @retval is already initialized with the same +type as @a and @b. + +This function will be called by #ClutterInterval if the +type of the values of the interval was registered using +clutter_interval_register_progress_func(). + + %TRUE if the function successfully computed + the value and stored it inside @retval + + + + + the initial value of an interval + + + + the final value of an interval + + + + the progress factor, between 0 and 1 + + + + the value used to store the progress + + + + + + The #ClutterPropertyTransition structure contains +private data and should only be accessed using the provided API. + + + Creates a new #ClutterPropertyTransition. + + the newly created #ClutterPropertyTransition. + Use g_object_unref() when done + + + + + a property of @animatable, or %NULL + + + + + + Retrieves the value of the #ClutterPropertyTransition:property-name +property. + + the name of the property being animated, or %NULL if + none is set. The returned string is owned by the @transition and + it should not be freed. + + + + + a #ClutterPropertyTransition + + + + + + Sets the #ClutterPropertyTransition:property-name property of @transition. + + + + + + a #ClutterPropertyTransition + + + + a property name + + + + + + The name of the property of a #ClutterAnimatable to animate. + + + + + + + + + + + The #ClutterPropertyTransitionClass structure +contains private data. + + + + + + + + + + + + + Event for tool proximity in tablet devices + + event type + + + + event time + + + + event flags + + + + event source stage + + + + event source actor + + + + the device that originated the event. If you want the physical +device the event originated from, use clutter_event_get_source_device() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The location and size of a rectangle. + +The width and height of a #ClutterRect can be negative; Clutter considers +a rectangle with an origin of [ 0.0, 0.0 ] and a size of [ 10.0, 10.0 ] to +be equivalent to a rectangle with origin of [ 10.0, 10.0 ] and size of +[ -10.0, -10.0 ]. + +Application code can normalize rectangles using clutter_rect_normalize(): +this function will ensure that the width and height of a #ClutterRect are +positive values. All functions taking a #ClutterRect as an argument will +implicitly normalize it before computing eventual results. For this reason +it is safer to access the contents of a #ClutterRect by using the provided +API at all times, instead of directly accessing the structure members. + + the origin of the rectangle + + + + the size of the rectangle + + + + Creates a new, empty #ClutterRect. + +You can use clutter_rect_init() to initialize the returned rectangle, +for instance: + +|[ + rect = clutter_rect_init (clutter_rect_alloc (), x, y, width, height); +]| + + the newly allocated #ClutterRect. + Use clutter_rect_free() to free its resources + + + + + Rounds the origin of @rect downwards to the nearest integer, and rounds +the size of @rect upwards to the nearest integer, so that @rect is +updated to the smallest rectangle capable of fully containing the +original, fractional rectangle. + + + + + + a #ClutterRect + + + + + + Checks whether @point is contained by @rect, after normalizing the +rectangle. + + %TRUE if the @point is contained by @rect. + + + + + a #ClutterRect + + + + the point to check + + + + + + Checks whether @a contains @b. + +The first rectangle contains the second if the union of the +two #ClutterRect is equal to the first rectangle. + + %TRUE if the first rectangle contains the second. + + + + + a #ClutterRect + + + + a #ClutterRect + + + + + + Copies @rect into a new #ClutterRect instance. + + the newly allocate copy of @rect. + Use clutter_rect_free() to free the associated resources + + + + + a #ClutterRect + + + + + + Checks whether @a and @b are equals. + +This function will normalize both @a and @b before comparing +their origin and size. + + %TRUE if the rectangles match in origin and size. + + + + + a #ClutterRect + + + + a #ClutterRect + + + + + + Frees the resources allocated by @rect. + + + + + + a #ClutterRect + + + + + + Retrieves the center of @rect, after normalizing the rectangle, +and updates @center with the correct coordinates. + + + + + + a #ClutterRect + + + + a #ClutterPoint + + + + + + Retrieves the height of @rect. + + the height of the rectangle + + + + + a #ClutterRect + + + + + + Retrieves the width of @rect. + + the width of the rectangle + + + + + a #ClutterRect + + + + + + Retrieves the X coordinate of the origin of @rect. + + the X coordinate of the origin of the rectangle + + + + + a #ClutterRect + + + + + + Retrieves the Y coordinate of the origin of @rect. + + the Y coordinate of the origin of the rectangle + + + + + a #ClutterRect + + + + + + Initializes a #ClutterRect with the given origin and size. + + the updated rectangle + + + + + a #ClutterRect + + + + X coordinate of the origin + + + + Y coordinate of the origin + + + + width of the rectangle + + + + height of the rectangle + + + + + + Normalizes the @rect and offsets its origin by the @d_x and @d_y values; +the size is adjusted by (2 * @d_x, 2 * @d_y). + +If @d_x and @d_y are positive the size of the rectangle is decreased; if +the values are negative, the size of the rectangle is increased. + +If the resulting rectangle has a negative width or height, the size is +set to 0. + + + + + + a #ClutterRect + + + + an horizontal value; a positive @d_x will create an inset rectangle, + and a negative value will create a larger rectangle + + + + a vertical value; a positive @d_x will create an inset rectangle, + and a negative value will create a larger rectangle + + + + + + Computes the intersection of @a and @b, and places it in @res, if @res +is not %NULL. + +This function will normalize both @a and @b prior to computing their +intersection. + +This function can be used to simply check if the intersection of @a and @b +is not empty, by using %NULL for @res. + + %TRUE if the intersection of @a and @b is not empty + + + + + a #ClutterRect + + + + a #ClutterRect + + + + a #ClutterRect, or %NULL + + + + + + Normalizes a #ClutterRect. + +A #ClutterRect is defined by the area covered by its size; this means +that a #ClutterRect with #ClutterRect.origin in [ 0, 0 ] and a +#ClutterRect.size of [ 10, 10 ] is equivalent to a #ClutterRect with +#ClutterRect.origin in [ 10, 10 ] and a #ClutterRect.size of [ -10, -10 ]. + +This function is useful to ensure that a rectangle has positive width +and height; it will modify the passed @rect and normalize its size. + + + + + + a #ClutterRect + + + + + + Offsets the origin of @rect by the given values, after normalizing +the rectangle. + + + + + + a #ClutterRect + + + + the horizontal offset value + + + + the vertical offset value + + + + + + Computes the smallest possible rectangle capable of fully containing +both @a and @b, and places it into @res. + +This function will normalize both @a and @b prior to computing their +union. + + + + + + a #ClutterRect + + + + a #ClutterRect + + + + a #ClutterRect + + + + + + A #ClutterRect with #ClutterRect.origin set at (0, 0) and a size +of 0. + +The returned value can be used as a guard. + + a rectangle with origin in (0, 0) and a size of 0. + The returned #ClutterRect is owned by Clutter and it should not + be modified or freed. + + + + + + The #ClutterRectangle structure contains only private data +and should be accessed using the provided API + + + + + + Creates a new #ClutterActor with a rectangular shape. + Use clutter_actor_new() instead + + a new #ClutterRectangle + + + + + Creates a new #ClutterActor with a rectangular shape +and of the given @color. + Use clutter_actor_new() and + clutter_actor_set_background_color() instead + + a new #ClutterRectangle + + + + + a #ClutterColor + + + + + + Gets the color of the border used by @rectangle and places +it into @color. + Use #ClutterActor and a #ClutterCanvas to draw + the border with Cairo + + + + + + a #ClutterRectangle + + + + return location for a #ClutterColor + + + + + + Gets the width (in pixels) of the border used by @rectangle + Use #ClutterActor and a #ClutterCanvas content + to draw the border using Cairo + + the border's width + + + + + a #ClutterRectangle + + + + + + Retrieves the color of @rectangle. + Use #ClutterActor and clutter_actor_get_background_color() + instead + + + + + + a #ClutterRectangle + + + + return location for a #ClutterColor + + + + + + Sets the color of the border used by @rectangle using @color + Use #ClutterActor and a #ClutterCanvas to draw + the border with Cairo + + + + + + a #ClutterRectangle + + + + the color of the border + + + + + + Sets the width (in pixel) of the border used by @rectangle. +A @width of 0 will unset the border. + Use #ClutterActor and a #ClutterCanvas content + to draw the border using Cairo + + + + + + a #ClutterRectangle + + + + the width of the border + + + + + + Sets the color of @rectangle. + Use #ClutterActor and clutter_actor_set_background_color() + instead + + + + + + a #ClutterRectangle + + + + a #ClutterColor + + + + + + The color of the border of the rectangle. + + + + The width of the border of the rectangle, in pixels. + + + + The color of the rectangle. + + + + Whether the #ClutterRectangle should be displayed with a border. + + + + + + + + + + + The #ClutterRectangleClass structure contains only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Flags to pass to clutter_threads_add_repaint_func_full(). + + Run the repaint function prior to + painting the stages + + + Run the repaint function after + painting the stages + + + Ensure that a new frame + is queued after adding the repaint function + + + + + + + + + + Specifies the type of requests for a #ClutterActor. + + Height for width requests + + + Width for height requests + + + Use the preferred size of the + #ClutterContent, if it has any (available since 1.22) + + + + + + + + + + + + + + + + + + + + + + The #ClutterRotateAction structure contains +only private data and should be accessed using the provided API + + Creates a new #ClutterRotateAction instance + + the newly created #ClutterRotateAction + + + + + + + + + + + + + + + + + + + + + + + + + + + The ::rotate signal is emitted when a rotate gesture is +recognized on the attached actor and when the gesture is +cancelled (in this case with an angle value of 0). + + %TRUE if the rotation should continue, and %FALSE if + the rotation should be cancelled. + + + + + the #ClutterActor attached to the @action + + + + the difference of angle of rotation between the initial +rotation and the current rotation + + + + + + + The #ClutterRotateActionClass structure contains +only private data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Axis of a rotation. + + Rotate around the X axis + + + Rotate around the Y axis + + + Rotate around the Z axis + + + + Direction of a rotation. + + Clockwise rotation + + + Counter-clockwise rotation + + + + + + + + + + + + + + + + + + + + + + The default GObject type for the Clutter stage. + The macro evaluates to "deprecated" as Clutter can + be compiled against multiple windowing systems. You can use the + CLUTTER_WINDOWING_* macros for compile-time checks, and the type + check macros for run-time checks. + + + + + + + + + + + + + The scaling filters to be used with the #ClutterActor:minification-filter +and #ClutterActor:magnification-filter properties. + + Linear interpolation filter + + + Nearest neighbor interpolation filter + + + Trilinear minification filter, with + mipmap generation; this filter linearly interpolates on every axis, + as well as between mipmap levels. + + + + + + + + + + + + + The #ClutterScore structure contains only private data +and should be accessed using the provided API + + Creates a new #ClutterScore. A #ClutterScore is an object that can +hold multiple #ClutterTimeline<!-- -->s in a sequential order. + + the newly created #ClutterScore. Use g_object_unref() + when done. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Appends a timeline to another one existing in the score; the newly +appended timeline will be started when @parent is complete. + +If @parent is %NULL, the new #ClutterTimeline will be started when +clutter_score_start() is called. + +#ClutterScore will take a reference on @timeline. + + the id of the #ClutterTimeline inside the score, or + 0 on failure. The returned id can be used with clutter_score_remove() + or clutter_score_get_timeline(). + + + + + a #ClutterScore + + + + a #ClutterTimeline in the score, or %NULL + + + + a #ClutterTimeline + + + + + + Appends @timeline at the given @marker_name on the @parent +#ClutterTimeline. + +If you want to append @timeline at the end of @parent, use +clutter_score_append(). + +The #ClutterScore will take a reference on @timeline. + + the id of the #ClutterTimeline inside the score, or + 0 on failure. The returned id can be used with clutter_score_remove() + or clutter_score_get_timeline(). + + + + + a #ClutterScore + + + + the parent #ClutterTimeline + + + + the name of the marker to use + + + + the #ClutterTimeline to append + + + + + + Gets whether @score is looping + + %TRUE if the score is looping + + + + + a #ClutterScore + + + + + + Retrieves the #ClutterTimeline for @id_ inside @score. + + the requested timeline, or %NULL. This + function does not increase the reference count on the returned + #ClutterTimeline + + + + + a #ClutterScore + + + + the id of the timeline + + + + + + Query state of a #ClutterScore instance. + + %TRUE if score is currently playing + + + + + A #ClutterScore + + + + + + Retrieves a list of all the #ClutterTimelines managed by @score. + + a + #GSList containing all the timelines in the score. This function does + not increase the reference count of the returned timelines. Use + g_slist_free() on the returned list to deallocate its resources. + + + + + + + a #ClutterScore + + + + + + Pauses a playing score @score. + + + + + + a #ClutterScore + + + + + + Removes the #ClutterTimeline with the given id inside @score. If +the timeline has other timelines attached to it, those are removed +as well. + + + + + + a #ClutterScore + + + + the id of the timeline to remove + + + + + + Removes all the timelines inside @score. + + + + + + a #ClutterScore + + + + + + Rewinds a #ClutterScore to its initial state. + + + + + + A #ClutterScore + + + + + + Sets whether @score should loop. A looping #ClutterScore will start +from its initial state after the ::complete signal has been fired. + + + + + + a #ClutterScore + + + + %TRUE for enable looping + + + + + + Starts the score. + + + + + + A #ClutterScore + + + + + + Stops and rewinds a playing #ClutterScore instance. + + + + + + A #ClutterScore + + + + + + Whether the #ClutterScore should restart once finished. + + + + + + + + + + The ::completed signal is emitted each time a #ClutterScore terminates. + + + + + + The ::paused signal is emitted each time a #ClutterScore +is paused. + + + + + + The ::started signal is emitted each time a #ClutterScore starts playing. + + + + + + The ::timeline-completed signal is emitted each time a timeline +inside a #ClutterScore terminates. + + + + + + the completed timeline + + + + + + The ::timeline-started signal is emitted each time a new timeline +inside a #ClutterScore starts playing. + + + + + + the current timeline + + + + + + + The #ClutterScoreClass structure contains only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterScript structure contains only private data +and should be accessed using the provided API + + Creates a new #ClutterScript instance. #ClutterScript can be used +to load objects definitions for scenegraph elements, like actors, +or behavioural elements, like behaviours and timelines. The +definitions must be encoded using the JavaScript Object Notation (JSON) +language. + + the newly created #ClutterScript instance. Use + g_object_unref() when done. + + + + + Looks up a type by name, using the virtual function that +#ClutterScript has for that purpose. This function should +rarely be used. + + the type for the requested type name, or + %G_TYPE_INVALID if not corresponding type was found. + + + + + a #ClutterScript + + + + name of the type to look up + + + + + + Adds @paths to the list of search paths held by @script. + +The search paths are used by clutter_script_lookup_filename(), which +can be used to define search paths for the textures source file name +or other custom, file-based properties. + + + + + + a #ClutterScript + + + + an array of strings containing + different search paths + + + + + + the length of the passed array + + + + + + Associates a #ClutterState to the #ClutterScript instance using the given +name. + +The #ClutterScript instance will use @state to resolve target states when +connecting signal handlers. + +The #ClutterScript instance will take a reference on the #ClutterState +passed to this function. + + + + + + a #ClutterScript + + + + a name for the @state, or %NULL to + set the default #ClutterState + + + + a #ClutterState + + + + + + Connects all the signals defined into a UI definition file to their +handlers. + +This method invokes clutter_script_connect_signals_full() internally +and uses #GModule's introspective features (by opening the current +module's scope) to look at the application's symbol table. + +Note that this function will not work if #GModule is not supported by +the platform Clutter is running on. + + + + + + a #ClutterScript + + + + data to be passed to the signal handlers, or %NULL + + + + + + Connects all the signals defined into a UI definition file to their +handlers. + +This function allows to control how the signal handlers are +going to be connected to their respective signals. It is meant +primarily for language bindings to allow resolving the function +names using the native API, but it can also be used on platforms +that do not support GModule. + +Applications should use clutter_script_connect_signals(). + + + + + + a #ClutterScript + + + + signal connection function + + + + data to be passed to the signal handlers, or %NULL + + + + + + Ensure that every object defined inside @script is correctly +constructed. You should rarely need to use this function. + + + + + + a #ClutterScript + + + + + + Retrieves the object bound to @name. This function does not increment +the reference count of the returned object. + + the named object, or %NULL if no object + with the given name was available + + + + + a #ClutterScript + + + + the name of the object to retrieve + + + + + + Retrieves a list of objects for the given names. After @script, object +names/return location pairs should be listed, with a %NULL pointer +ending the list, like: + +|[ + GObject *my_label, *a_button, *main_timeline; + + clutter_script_get_objects (script, + "my-label", &my_label, + "a-button", &a_button, + "main-timeline", &main_timeline, + NULL); +]| + +Note: This function does not increment the reference count of the +returned objects. + + the number of objects returned. + + + + + a #ClutterScript + + + + the name of the first object to retrieve + + + + return location for a #GObject, then additional names, ending + with %NULL + + + + + + Retrieves the #ClutterState for the given @state_name. + +If @name is %NULL, this function will return the default +#ClutterState instance. + + a pointer to the #ClutterState for the + given name. The #ClutterState is owned by the #ClutterScript instance + and it should not be unreferenced + + + + + a #ClutterScript + + + + the name of the #ClutterState, or %NULL + + + + + + Retrieves the translation domain set using +clutter_script_set_translation_domain(). + + the translation domain, if any is set, + or %NULL + + + + + a #ClutterScript + + + + + + Looks up a type by name, using the virtual function that +#ClutterScript has for that purpose. This function should +rarely be used. + + the type for the requested type name, or + %G_TYPE_INVALID if not corresponding type was found. + + + + + a #ClutterScript + + + + name of the type to look up + + + + + + Retrieves all the objects created by @script. + +Note: this function does not increment the reference count of the +objects it returns. + + a list + of #GObject<!-- -->s, or %NULL. The objects are owned by the + #ClutterScript instance. Use g_list_free() on the returned list when + done. + + + + + + + a #ClutterScript + + + + + + Loads the definitions from @data into @script and merges with +the currently loaded ones, if any. + + on error, zero is returned and @error is set + accordingly. On success, the merge id for the UI definitions is + returned. You can use the merge id with clutter_script_unmerge_objects(). + + + + + a #ClutterScript + + + + a buffer containing the definitions + + + + the length of the buffer, or -1 if @data is a NUL-terminated + buffer + + + + + + Loads the definitions from @filename into @script and merges with +the currently loaded ones, if any. + + on error, zero is returned and @error is set + accordingly. On success, the merge id for the UI definitions is + returned. You can use the merge id with clutter_script_unmerge_objects(). + + + + + a #ClutterScript + + + + the full path to the definition file + + + + + + Loads the definitions from a resource file into @script and merges with +the currently loaded ones, if any. + + on error, zero is returned and @error is set + accordingly. On success, the merge id for the UI definitions is + returned. You can use the merge id with clutter_script_unmerge_objects(). + + + + + a #ClutterScript + + + + the resource path of the file to parse + + + + + + Looks up @filename inside the search paths of @script. If @filename +is found, its full path will be returned . + + the full path of @filename or %NULL if no path was + found. + + + + + a #ClutterScript + + + + the name of the file to lookup + + + + + + Sets the translation domain for @script. + + + + + + a #ClutterScript + + + + the translation domain, or %NULL + + + + + + Unmerges the objects identified by @merge_id. + + + + + + a #ClutterScript + + + + merge id returned when loading a UI definition + + + + + + The path of the currently parsed file. If #ClutterScript:filename-set +is %FALSE then the value of this property is undefined. + + + + Whether the #ClutterScript:filename property is set. If this property +is %TRUE then the currently parsed data comes from a file, and the +file name is stored inside the #ClutterScript:filename property. + + + + The translation domain, used to localize strings marked as translatable +inside a UI definition. + +If #ClutterScript:translation-domain is set to %NULL, #ClutterScript +will use gettext(), otherwise g_dgettext() will be used. + + + + + + + + + + + The #ClutterScriptClass structure contains only private data + + + + + + + the type for the requested type name, or + %G_TYPE_INVALID if not corresponding type was found. + + + + + a #ClutterScript + + + + name of the type to look up + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This is the signature of a function used to connect signals. It is used +by the clutter_script_connect_signals_full() function. It is mainly +intended for interpreted language bindings, but could be useful where the +programmer wants more control over the signal connection process. + + + + + + a #ClutterScript + + + + the object to connect + + + + the name of the signal + + + + the name of the signal handler + + + + the object to connect the signal to, or %NULL + + + + signal connection flags + + + + user data to pass to the signal handler + + + + + + #ClutterScript error enumeration. + + Type function not found + or invalid + + + Property not found or invalid + + + Invalid value + + + + + + + + + + + #ClutterScriptable is an opaque structure whose members cannot be directly +accessed + + Retrieves the id of @scriptable set using clutter_scriptable_set_id(). + + the id of the object. The returned string is owned by + the scriptable object and should never be modified of freed + + + + + a #ClutterScriptable + + + + + + Parses the passed JSON node. The implementation must set the type +of the passed #GValue pointer using g_value_init(). + + %TRUE if the node was successfully parsed, %FALSE otherwise. + + + + + a #ClutterScriptable + + + + the #ClutterScript creating the scriptable instance + + + + the generic value to be set + + + + the name of the node + + + + the JSON node to be parsed + + + + + + Overrides the common properties setting. The underlying virtual +function should be used when implementing custom properties. + + + + + + a #ClutterScriptable + + + + the #ClutterScript creating the scriptable instance + + + + the name of the property + + + + the value of the property + + + + + + Sets @id_ as the unique Clutter script it for this instance of +#ClutterScriptableIface. + +This name can be used by user interface designer applications to +define a unique name for an object constructable using the UI +definition language parsed by #ClutterScript. + + + + + + a #ClutterScriptable + + + + the #ClutterScript id of the object + + + + + + Retrieves the id of @scriptable set using clutter_scriptable_set_id(). + + the id of the object. The returned string is owned by + the scriptable object and should never be modified of freed + + + + + a #ClutterScriptable + + + + + + Parses the passed JSON node. The implementation must set the type +of the passed #GValue pointer using g_value_init(). + + %TRUE if the node was successfully parsed, %FALSE otherwise. + + + + + a #ClutterScriptable + + + + the #ClutterScript creating the scriptable instance + + + + the generic value to be set + + + + the name of the node + + + + the JSON node to be parsed + + + + + + Overrides the common properties setting. The underlying virtual +function should be used when implementing custom properties. + + + + + + a #ClutterScriptable + + + + the #ClutterScript creating the scriptable instance + + + + the name of the property + + + + the value of the property + + + + + + Sets @id_ as the unique Clutter script it for this instance of +#ClutterScriptableIface. + +This name can be used by user interface designer applications to +define a unique name for an object constructable using the UI +definition language parsed by #ClutterScript. + + + + + + a #ClutterScriptable + + + + the #ClutterScript id of the object + + + + + + + Interface for implementing "scriptable" objects. An object implementing +this interface can override the parsing and properties setting sequence +when loading a UI definition data with #ClutterScript + + + + + + + + + + + a #ClutterScriptable + + + + the #ClutterScript id of the object + + + + + + + + + the id of the object. The returned string is owned by + the scriptable object and should never be modified of freed + + + + + a #ClutterScriptable + + + + + + + + + %TRUE if the node was successfully parsed, %FALSE otherwise. + + + + + a #ClutterScriptable + + + + the #ClutterScript creating the scriptable instance + + + + the generic value to be set + + + + the name of the node + + + + the JSON node to be parsed + + + + + + + + + + + + + a #ClutterScriptable + + + + the #ClutterScript creating the scriptable instance + + + + the name of the property + + + + the value of the property + + + + + + + + The #ClutterScrollActor structure contains only +private data, and should be accessed using the provided API. + + + + + + Creates a new #ClutterScrollActor. + + The newly created #ClutterScrollActor + instance. + + + + + Retrieves the #ClutterScrollActor:scroll-mode property + + the scrolling mode + + + + + a #ClutterScrollActor + + + + + + Scrolls the contents of @actor so that @point is the new origin +of the visible area. + +The coordinates of @point must be relative to the @actor. + +This function will use the currently set easing state of the @actor +to transition from the current scroll origin to the new one. + + + + + + a #ClutterScrollActor + + + + a #ClutterPoint + + + + + + Scrolls @actor so that @rect is in the visible portion. + + + + + + a #ClutterScrollActor + + + + a #ClutterRect + + + + + + Sets the #ClutterScrollActor:scroll-mode property. + + + + + + a #ClutterScrollActor + + + + a #ClutterScrollMode + + + + + + The scrollin direction. + + + + + + + + + + + The #ClutterScrollActor structure contains only +private data. + + + + + + + + + + + + + + + + Direction of a pointer scroll event. + +The %CLUTTER_SCROLL_SMOOTH value implies that the #ClutterScrollEvent +has precise scrolling delta information. + + Scroll up + + + Scroll down + + + Scroll left + + + Scroll right + + + Precise scrolling delta (available in 1.10) + + + + + + + Scroll wheel (or similar device) event + + event type + + + + event time + + + + event flags + + + + event source stage + + + + event source actor + + + + event X coordinate + + + + event Y coordinate + + + + direction of the scrolling + + + + button modifiers + + + + reserved for future use + + + + the device that originated the event. If you want the physical +device the event originated from, use clutter_event_get_source_device() + + + + the source of scroll events. This field is available since 1.26 + + + + the axes that were stopped in this event. This field is available since 1.26 + + + + + Flags used to notify the axes that were stopped in a #ClutterScrollEvent. +These can be used to trigger post-scroll effects like kinetic scrolling. + + no axis was stopped. + + + The horizontal axis stopped. + + + The vertical axis stopped. + + + + Scroll modes. + + Ignore scrolling + + + Scroll only horizontally + + + Scroll only vertically + + + Scroll in both directions + + + + The scroll source determines the source of the scroll event. Keep in mind +that the source device #ClutterInputDeviceType is not enough to infer +the scroll source. + + Source of scroll events is unknown. + + + The scroll event is originated by a mouse wheel. + + + The scroll event is originated by one or more + fingers on the device (eg. touchpads). + + + The scroll event is originated by the + motion of some device (eg. a scroll button is set). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + `ClutterSettings` is an opaque structure whose +members cannot be directly accessed. + + Retrieves the singleton instance of #ClutterSettings + + the instance of #ClutterSettings. The + returned object is owned by Clutter and it should not be unreferenced + directly + + + + + A back pointer to the #ClutterBackend + + + + The default distance that the cursor of a pointer device +should travel before a drag operation should start. + + + + The maximum distance, in pixels, between button-press events that +determines whether or not to increase the click count by 1. + + + + The time, in milliseconds, that should elapse between button-press +events in order to increase the click count by 1. + + + + Whether or not to use antialiasing when rendering text; a value +of 1 enables it unconditionally; a value of 0 disables it +unconditionally; and -1 will use the system's default. + + + + The DPI used when rendering text, as a value of 1024 * dots/inch. + +If set to -1, the system's default will be used instead + + + + The style of the hinting used when rendering text. Valid values +are: + + - hintnone + - hintslight + - hintmedium + - hintfull + + + + Whether or not to use hinting when rendering text; a value of 1 +unconditionally enables it; a value of 0 unconditionally disables +it; and a value of -1 will use the system's default. + + + + The default font name that should be used by text actors, as +a string that can be passed to pango_font_description_from_string(). + + + + The type of sub-pixel antialiasing used when rendering text. Valid +values are: + + - none + - rgb + - bgr + - vrgb + - vbgr + + + + + + + Sets the minimum duration for a press to be recognized as a long press +gesture. The duration is expressed in milliseconds. + +See also #ClutterClickAction:long-press-duration. + + + + + + + + + + + + + The #ClutterShader structure contains only private data +and should be accessed using the provided API + Use #ClutterShaderEffect instead + + Create a new #ClutterShader instance. + Use #ClutterShaderEffect instead. + + a new #ClutterShader. + + + + + Compiles and links GLSL sources set for vertex and fragment shaders for +a #ClutterShader. If the compilation fails and a #GError return location is +provided the error will contain the errors from the compiler, if any. + Use #ClutterShaderEffect instead. + + returns TRUE if the shader was succesfully compiled. + + + + + a #ClutterShader + + + + + + Retrieves the underlying #CoglHandle for the fragment shader. + Use #ClutterShaderEffect instead. + + A #CoglHandle for the fragment + shader, or %NULL. The handle is owned by the #ClutterShader + and it should not be unreferenced + + + + + a #ClutterShader + + + + + + Retrieves the underlying #CoglHandle for the shader program. + Use #ClutterShaderEffect instead. + + A #CoglHandle for the shader program, + or %NULL. The handle is owned by the #ClutterShader and it should + not be unreferenced + + + + + a #ClutterShader + + + + + + Retrieves the underlying #CoglHandle for the vertex shader. + Use #ClutterShaderEffect instead. + + A #CoglHandle for the vertex + shader, or %NULL. The handle is owned by the #ClutterShader + and it should not be unreferenced + + + + + a #ClutterShader + + + + + + Query the current GLSL fragment source set on @shader. + Use #ClutterShaderEffect instead. + + the source of the fragment shader for this +ClutterShader object or %NULL. The returned string is owned by the +shader object and should never be modified or freed + + + + + a #ClutterShader + + + + + + Checks whether @shader is enabled. + Use #ClutterShaderEffect instead. + + %TRUE if the shader is enabled. + + + + + a #ClutterShader + + + + + + Query the current GLSL vertex source set on @shader. + Use #ClutterShaderEffect instead. + + the source of the vertex shader for this +ClutterShader object or %NULL. The returned string is owned by the +shader object and should never be modified or freed + + + + + a #ClutterShader + + + + + + Checks whether @shader is is currently compiled, linked and bound +to the GL context. + Use #ClutterShaderEffect instead. + + %TRUE if the shader is compiled, linked and ready for use. + + + + + a #ClutterShader + + + + + + Frees up any GL context resources held by the shader. + Use #ClutterShaderEffect instead. + + + + + + a #ClutterShader + + + + + + Sets the GLSL source code to be used by a #ClutterShader for the fragment +program. + Use #ClutterShaderEffect instead. + + + + + + a #ClutterShader + + + + GLSL source code. + + + + length of source buffer (currently ignored) + + + + + + Enables a shader. This function will attempt to compile and link +the shader, if it isn't already. + +When @enabled is %FALSE the default state of the GL pipeline will be +used instead. + Use #ClutterShaderEffect instead. + + + + + + a #ClutterShader + + + + The new state of the shader. + + + + + + Sets a user configurable variable in the GLSL shader programs attached to +a #ClutterShader. + Use #ClutterShaderEffect instead. + + + + + + a #ClutterShader. + + + + name of uniform in GLSL shader program to set. + + + + a #ClutterShaderFloat, #ClutterShaderInt or #ClutterShaderMatrix + #GValue. + + + + + + Sets the GLSL source code to be used by a #ClutterShader for the vertex +program. + Use #ClutterShaderEffect instead. + + + + + + a #ClutterShader + + + + GLSL source code. + + + + length of source buffer (currently ignored) + + + + + + Whether the shader is compiled and linked, ready for use +in the GL context. + Use #ClutterShaderEffect instead. + + + + Whether the shader is currently used in the GL rendering pipeline. + Use #ClutterShaderEffect instead. + + + + GLSL source code for the fragment shader part of the shader program. + Use #ClutterShaderEffect instead. + + + + GLSL source code for the vertex shader part of the shader +program, if any + Use #ClutterShaderEffect instead. + + + + + + + + + + + The #ClutterShaderClass structure contains only private data + Use #ClutterShaderEffectClass instead + + + + + + The #ClutterShaderEffect structure contains +only private data and should be accessed using the provided API + + Creates a new #ClutterShaderEffect, to be applied to an actor using +clutter_actor_add_effect(). + +The effect will be empty until clutter_shader_effect_set_shader_source() +is called. + + the newly created #ClutterShaderEffect. + Use g_object_unref() when done. + + + + + the type of the shader, either %CLUTTER_FRAGMENT_SHADER, + or %CLUTTER_VERTEX_SHADER + + + + + + + + + + + + + + + + Retrieves a pointer to the program's handle + + a pointer to the program's handle, + or %COGL_INVALID_HANDLE + + + + + a #ClutterShaderEffect + + + + + + Retrieves a pointer to the shader's handle + + a pointer to the shader's handle, + or %COGL_INVALID_HANDLE + + + + + a #ClutterShaderEffect + + + + + + Sets the source of the GLSL shader used by @effect + +This function should only be called by implementations of +the #ClutterShaderEffect class, and not by application code. + +This function can only be called once; subsequent calls will +yield no result. + + %TRUE if the source was set + + + + + a #ClutterShaderEffect + + + + the source of a GLSL shader + + + + + + Sets a list of values as the payload for the uniform @name inside +the shader effect + +The @gtype must be one of: %G_TYPE_INT, for 1 or more integer values; +%G_TYPE_FLOAT, for 1 or more floating point values; +%CLUTTER_TYPE_SHADER_INT, for a pointer to an array of integer values; +%CLUTTER_TYPE_SHADER_FLOAT, for a pointer to an array of floating point +values; and %CLUTTER_TYPE_SHADER_MATRIX, for a pointer to an array of +floating point values mapping a matrix + +The number of values interepreted is defined by the @n_value +argument, and by the @gtype argument. For instance, a uniform named +"sampler0" and containing a single integer value is set using: + +|[<!-- language="C" --> + clutter_shader_effect_set_uniform (effect, "sampler0", + G_TYPE_INT, 1, + 0); +]| + +While a uniform named "components" and containing a 3-elements vector +of floating point values (a "vec3") can be set using: + +|[<!-- language="C" --> + gfloat component_r, component_g, component_b; + + clutter_shader_effect_set_uniform (effect, "components", + G_TYPE_FLOAT, 3, + component_r, + component_g, + component_b); +]| + +or can be set using: + +|[<!-- language="C" --> + gfloat component_vec[3]; + + clutter_shader_effect_set_uniform (effect, "components", + CLUTTER_TYPE_SHADER_FLOAT, 3, + component_vec); +]| + +Finally, a uniform named "map" and containing a matrix can be set using: + +|[<!-- language="C" --> + clutter_shader_effect_set_uniform (effect, "map", + CLUTTER_TYPE_SHADER_MATRIX, 1, + cogl_matrix_get_array (&matrix)); +]| + + + + + + a #ClutterShaderEffect + + + + the name of the uniform to set + + + + the type of the uniform to set + + + + the number of values + + + + a list of values + + + + + + Sets @value as the payload for the uniform @name inside the shader +effect + +The #GType of the @value must be one of: %G_TYPE_INT, for a single +integer value; %G_TYPE_FLOAT, for a single floating point value; +%CLUTTER_TYPE_SHADER_INT, for an array of integer values; +%CLUTTER_TYPE_SHADER_FLOAT, for an array of floating point values; +and %CLUTTER_TYPE_SHADER_MATRIX, for a matrix of floating point +values. It also accepts %G_TYPE_DOUBLE for compatibility with other +languages than C. + + + + + + a #ClutterShaderEffect + + + + the name of the uniform to set + + + + a #GValue with the value of the uniform to set + + + + + + The type of shader that is used by the effect. This property +should be set by the constructor of #ClutterShaderEffect +sub-classes. + + + + + + + + + + + The #ClutterShaderEffectClass structure contains +only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #ClutterShader error enumeration + + No ASM shaders support + + + No GLSL shaders support + + + Compilation error + + + + + + + + + + + + + + + + + The type of GLSL shader program + + a vertex shader + + + a fragment shader + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A size, in 2D space. + + the width, in pixels + + + + the height, in pixels + + + + Allocates a new #ClutterSize. + + the newly allocated #ClutterSize. + Use clutter_size_free() to free its resources. + + + + + Creates a new #ClutterSize and duplicates @size. + + the newly allocated #ClutterSize. + Use clutter_size_free() to free its resources. + + + + + a #ClutterSize + + + + + + Compares two #ClutterSize for equality. + + %TRUE if the two #ClutterSize are equal + + + + + a #ClutterSize to compare + + + + a #ClutterSize to compare + + + + + + Frees the resources allocated for @size. + + + + + + a #ClutterSize + + + + + + Initializes a #ClutterSize with the given dimensions. + + the initialized #ClutterSize + + + + + a #ClutterSize + + + + the width + + + + the height + + + + + + + + + + + + + #ClutterSnapConstraint is an opaque structure +whose members cannot be directly accesses + + Creates a new #ClutterSnapConstraint that will snap a #ClutterActor +to the @edge of @source, with the given @offset. + + the newly created #ClutterSnapConstraint + + + + + the #ClutterActor to use as the source of + the constraint, or %NULL + + + + the edge of the actor to use in the constraint + + + + the edge of @source to use in the constraint + + + + the offset to apply to the constraint, in pixels + + + + + + Retrieves the edges used by the @constraint + + + + + + a #ClutterSnapConstraint + + + + return location for the actor's edge, or %NULL + + + + return location for the source's edge, or %NULL + + + + + + Retrieves the offset set using clutter_snap_constraint_set_offset() + + the offset, in pixels + + + + + a #ClutterSnapConstraint + + + + + + Retrieves the #ClutterActor set using clutter_snap_constraint_set_source() + + a pointer to the source actor + + + + + a #ClutterSnapConstraint + + + + + + Sets the edges to be used by the @constraint + +The @from_edge is the edge on the #ClutterActor to which @constraint +has been added. The @to_edge is the edge of the #ClutterActor inside +the #ClutterSnapConstraint:source property. + + + + + + a #ClutterSnapConstraint + + + + the edge on the actor + + + + the edge on the source + + + + + + Sets the offset to be applied to the constraint + + + + + + a #ClutterSnapConstraint + + + + the offset to apply, in pixels + + + + + + Sets the source #ClutterActor for the constraint + + + + + + a #ClutterSnapConstraint + + + + a #ClutterActor, or %NULL to unset the source + + + + + + The edge of the #ClutterActor that should be snapped + + + + The offset, in pixels, between #ClutterSnapConstraint:from-edge +and #ClutterSnapConstraint:to-edge + + + + The #ClutterActor used as the source for the constraint + + + + The edge of the #ClutterSnapConstraint:source that should be snapped + + + + + + + The edge to snap + + the top edge + + + the right edge + + + the bottom edge + + + the left edge + + + + + + + + + + The #ClutterStage structure contains only private data +and should be accessed using the provided API + + + + + + Creates a new, non-default stage. A non-default stage is a new +top-level actor which can be used as another container. It works +exactly like the default stage, but while clutter_stage_get_default() +will always return the same instance, you will have to keep a pointer +to any #ClutterStage returned by clutter_stage_new(). + +The ability to support multiple stages depends on the current +backend. Use clutter_feature_available() and +%CLUTTER_FEATURE_STAGE_MULTIPLE to check at runtime whether a +backend supports multiple stages. + + a new stage, or %NULL if the default backend does + not support multiple stages. Use clutter_actor_destroy() to + programmatically close the returned stage. + + + + + Retrieves a #ClutterStage singleton. + +This function is not as useful as it sounds, and will most likely +by deprecated in the future. Application code should only create +a #ClutterStage instance using clutter_stage_new(), and manage the +lifetime of the stage manually. + +The default stage singleton has a platform-specific behaviour: on +platforms without the %CLUTTER_FEATURE_STAGE_MULTIPLE feature flag +set, the first #ClutterStage instance will also be set to be the +default stage instance, and this function will always return a +pointer to it. + +On platforms with the %CLUTTER_FEATURE_STAGE_MULTIPLE feature flag +set, the default stage will be created by the first call to this +function, and every following call will return the same pointer to +it. + Use clutter_stage_new() instead. + + the main + #ClutterStage. You should never destroy or unref the returned + actor. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This function essentially makes sure the right GL context is +current for the passed stage. It is not intended to +be used by applications. + mutter: This function does not do anything. + + + + + + the #ClutterStage + + + + + + Ensures that @stage is redrawn + +This function should not be called by applications: it is +used when embedding a #ClutterStage into a toolkit with +another windowing system, like GTK+. + + + + + + a #ClutterStage + + + + + + Ensures that the GL viewport is updated with the current +stage window size. + +This function will queue a redraw of @stage. + +This function should not be called by applications; it is used +when embedding a #ClutterStage into a toolkit with another +windowing system, like GTK+. + + + + + + a #ClutterStage + + + + + + This function is used to emit an event on the main stage. + +You should rarely need to use this function, except for +synthetised events. + + the return value from the signal emission + + + + + a #ClutterStage + + + + a #ClutterEvent + + + + + + Retrieves the value set with clutter_stage_set_accept_focus(). + + %TRUE if the #ClutterStage should accept focus, and %FALSE + otherwise + + + + + a #ClutterStage + + + + + + Checks the scene at the coordinates @x and @y and returns a pointer +to the #ClutterActor at those coordinates. + +By using @pick_mode it is possible to control which actors will be +painted and thus available. + + the actor at the specified coordinates, + if any + + + + + a #ClutterStage + + + + how the scene graph should be painted + + + + X coordinate to check + + + + Y coordinate to check + + + + + + Retrieves the stage color. + Use clutter_actor_get_background_color() instead. + + + + + + A #ClutterStage + + + + return location for a #ClutterColor + + + + + + Retrieves the current depth cueing settings from the stage. + This function will always return the default + values of #ClutterFog + + + + + + the #ClutterStage + + + + return location for a #ClutterFog structure + + + + + + + + + + + + + + + + Retrieves whether the stage is full screen or not + + %TRUE if the stage is full screen + + + + + a #ClutterStage + + + + + + Retrieves the actor that is currently under key focus. + + the actor with key focus, or the stage + + + + + the #ClutterStage + + + + + + Retrieves the minimum size for a stage window as set using +clutter_stage_set_minimum_size(). + +The returned size may not correspond to the actual minimum size and +it is specific to the #ClutterStage implementation inside the +Clutter backend + + + + + + a #ClutterStage + + + + return location for the minimum width, in pixels, + or %NULL + + + + return location for the minimum height, in pixels, + or %NULL + + + + + + Retrieves the value set using clutter_stage_set_motion_events_enabled(). + + %TRUE if the per-actor motion event delivery is enabled + and %FALSE otherwise + + + + + a #ClutterStage + + + + + + Retrieves the hint set with clutter_stage_set_no_clear_hint() + + %TRUE if the stage should not clear itself on every paint + cycle, and %FALSE otherwise + + + + + a #ClutterStage + + + + + + Retrieves the stage perspective. + + + + + + A #ClutterStage + + + + return location for a + #ClutterPerspective + + + + + + Gets the bounds of the current redraw for @stage in stage pixel +coordinates. E.g., if only a single actor has queued a redraw then +Clutter may redraw the stage with a clip so that it doesn't have to +paint every pixel in the stage. This function would then return the +bounds of that clip. An application can use this information to +avoid some extra work if it knows that some regions of the stage +aren't going to be painted. This should only be called while the +stage is being painted. If there is no current redraw clip then +this function will set @clip to the full extents of the stage. + + + + + + A #ClutterStage + + + + Return location for the clip bounds + + + + + + Retrieves the value set with clutter_stage_set_throttle_motion_events() + + %TRUE if the motion events are being throttled, + and %FALSE otherwise + + + + + a #ClutterStage + + + + + + Gets the stage title. + + pointer to the title string for the stage. The +returned string is owned by the actor and should not +be modified or freed. + + + + + A #ClutterStage + + + + + + Retrieves the value set using clutter_stage_set_use_alpha() + + %TRUE if the stage should honour the opacity and the + alpha channel of the stage color + + + + + a #ClutterStage + + + + + + Gets whether the depth cueing effect is enabled on @stage. + This function will always return %FALSE + + %TRUE if the depth cueing effect is enabled + + + + + the #ClutterStage + + + + + + Retrieves the value set with clutter_stage_set_user_resizable(). + + %TRUE if the stage is resizable by the user. + + + + + a #ClutterStage + + + + + + Makes the cursor invisible on the stage window + + + + + + a #ClutterStage + + + + + + Checks if @stage is the default stage, or an instance created using +clutter_stage_new() but internally using the same implementation. + Track the stage pointer inside your application + code, or use clutter_actor_get_stage() to retrieve the stage for + a given actor. + + %TRUE if the passed stage is the default one + + + + + a #ClutterStage + + + + + + Queues a redraw for the passed stage. + +Applications should call clutter_actor_queue_redraw() and not +this function. + Use clutter_actor_queue_redraw() instead. + + + + + + the #ClutterStage + + + + + + Makes a screenshot of the stage in RGBA 8bit data, returns a +linear buffer with @width * 4 as rowstride. + +The alpha data contained in the returned buffer is driver-dependent, +and not guaranteed to hold any sensible value. + + a pointer to newly allocated memory with the buffer + or %NULL if the read failed. Use g_free() on the returned data + to release the resources it has allocated. + + + + + + + A #ClutterStage + + + + x coordinate of the first pixel that is read from stage + + + + y coordinate of the first pixel that is read from stage + + + + Width dimention of pixels to be read, or -1 for the + entire stage width + + + + Height dimention of pixels to be read, or -1 for the + entire stage height + + + + + + Sets whether the @stage should accept the key focus when shown. + +This function should be called before showing @stage using +clutter_actor_show(). + + + + + + a #ClutterStage + + + + %TRUE to accept focus on show + + + + + + Sets the stage color. + Use clutter_actor_set_background_color() instead. + + + + + + A #ClutterStage + + + + A #ClutterColor + + + + + + Sets the fog (also known as "depth cueing") settings for the @stage. + +A #ClutterStage will only use a linear fog progression, which +depends solely on the distance from the viewer. The cogl_set_fog() +function in COGL exposes more of the underlying implementation, +and allows changing the for progression function. It can be directly +used by disabling the #ClutterStage:use-fog property and connecting +a signal handler to the #ClutterActor::paint signal on the @stage, +like: + +|[ + clutter_stage_set_use_fog (stage, FALSE); + g_signal_connect (stage, "paint", G_CALLBACK (on_stage_paint), NULL); +]| + +The paint signal handler will call cogl_set_fog() with the +desired settings: + +|[ + static void + on_stage_paint (ClutterActor *actor) + { + ClutterColor stage_color = { 0, }; + CoglColor fog_color = { 0, }; + + // set the fog color to the stage background color + clutter_stage_get_color (CLUTTER_STAGE (actor), &stage_color); + cogl_color_init_from_4ub (&fog_color, + stage_color.red, + stage_color.green, + stage_color.blue, + stage_color.alpha); + + // enable fog // + cogl_set_fog (&fog_color, + COGL_FOG_MODE_EXPONENTIAL, // mode + 0.5, // density + 5.0, 30.0); // z_near and z_far + } +]| + +The fogging functions only work correctly when the visible actors use +unmultiplied alpha colors. By default Cogl will premultiply textures and +cogl_set_source_color() will premultiply colors, so unless you explicitly +load your textures requesting an unmultiplied internal format and use +cogl_material_set_color() you can only use fogging with fully opaque actors. +Support for premultiplied colors will improve in the future when we can +depend on fragment shaders. + Fog settings are ignored. + + + + + + the #ClutterStage + + + + a #ClutterFog structure + + + + + + Asks to place the stage window in the fullscreen or unfullscreen +states. + + ( Note that you shouldn't assume the window is definitely full screen +afterward, because other entities (e.g. the user or window manager) +could unfullscreen it again, and not all window managers honor +requests to fullscreen windows. + +If you want to receive notification of the fullscreen state you +should either use the #ClutterStage::fullscreen and +#ClutterStage::unfullscreen signals, or use the notify signal +for the #ClutterStage:fullscreen-set property + + + + + + a #ClutterStage + + + + %TRUE to to set the stage fullscreen + + + + + + Sets the key focus on @actor. An actor with key focus will receive +all the key events. If @actor is %NULL, the stage will receive +focus. + + + + + + the #ClutterStage + + + + the actor to set key focus to, or %NULL + + + + + + Sets the minimum size for a stage window, if the default backend +uses #ClutterStage inside a window + +This is a convenience function, and it is equivalent to setting the +#ClutterActor:min-width and #ClutterActor:min-height on @stage + +If the current size of @stage is smaller than the minimum size, the +@stage will be resized to the new @width and @height + +This function has no effect if @stage is fullscreen + + + + + + a #ClutterStage + + + + width, in pixels + + + + height, in pixels + + + + + + Sets whether per-actor motion events (and relative crossing +events) should be disabled or not. + +The default is %TRUE. + +If @enable is %FALSE the following signals will not be emitted +by the actors children of @stage: + + - #ClutterActor::motion-event + - #ClutterActor::enter-event + - #ClutterActor::leave-event + +The events will still be delivered to the #ClutterStage. + +The main side effect of this function is that disabling the motion +events will disable picking to detect the #ClutterActor underneath +the pointer for each motion event. This is useful, for instance, +when dragging a #ClutterActor across the @stage: the actor underneath +the pointer is not going to change, so it's meaningless to perform +a pick. + + + + + + a #ClutterStage + + + + %TRUE to enable the motion events delivery, and %FALSE + otherwise + + + + + + Sets whether the @stage should clear itself at the beginning +of each paint cycle or not. + +Clearing the #ClutterStage can be a costly operation, especially +if the stage is always covered - for instance, in a full-screen +video player or in a game with a background texture. + +This setting is a hint; Clutter might discard this hint +depending on its internal state. + +If parts of the stage are visible and you disable clearing you +might end up with visual artifacts while painting the contents of +the stage. + + + + + + a #ClutterStage + + + + %TRUE if the @stage should not clear itself on every + repaint cycle + + + + + + Sets the stage perspective. Using this function is not recommended +because it will disable Clutter's attempts to generate an +appropriate perspective based on the size of the stage. + + + + + + A #ClutterStage + + + + A #ClutterPerspective + + + + + + Sets whether motion events received between redraws should +be throttled or not. If motion events are throttled, those +events received by the windowing system between redraws will +be compressed so that only the last event will be propagated +to the @stage and its actors. + +This function should only be used if you want to have all +the motion events delivered to your application code. + + + + + + a #ClutterStage + + + + %TRUE to throttle motion events + + + + + + Sets the stage title. + + + + + + A #ClutterStage + + + + A utf8 string for the stage windows title. + + + + + + Sets whether the @stage should honour the #ClutterActor:opacity and +the alpha channel of the #ClutterStage:color + + + + + + a #ClutterStage + + + + whether the stage should honour the opacity or the + alpha channel of the stage color + + + + + + Sets whether the depth cueing effect on the stage should be enabled +or not. + +Depth cueing is a 3D effect that makes actors farther away from the +viewing point less opaque, by fading them with the stage color. + +The parameters of the GL fog used can be changed using the +clutter_stage_set_fog() function. + Calling this function produces no visible effect + + + + + + the #ClutterStage + + + + %TRUE for enabling the depth cueing effect + + + + + + Sets if the stage is resizable by user interaction (e.g. via +window manager controls) + + + + + + a #ClutterStage + + + + whether the stage should be user resizable. + + + + + + Shows the cursor on the stage window + + + + + + a #ClutterStage + + + + + + Whether the #ClutterStage should accept key focus when shown. + + + + The background color of the main stage. + Use the #ClutterActor:background-color property of + #ClutterActor instead. + + + + Whether the mouse pointer should be visible + + + + The settings for the GL "fog", used only if #ClutterStage:use-fog +is set to %TRUE + This property does not do anything. + + + + + + + The #ClutterActor that will receive key events from the underlying +windowing system. + +If %NULL, the #ClutterStage will receive the events. + + + + Whether or not the #ClutterStage should clear its contents +before each paint cycle. + +See clutter_stage_set_no_clear_hint() for further information. + + + + Whether the stage should be rendered in an offscreen buffer. + This property does not do anything. + + + + The parameters used for the perspective projection from 3D +coordinates to 2D + + + + The stage's title - usually displayed in stage windows title decorations. + + + + Whether the #ClutterStage should honour the alpha component of the +#ClutterStage:color property when painting. If Clutter is run under +a compositing manager this will result in the stage being blended +with the underlying window(s) + + + + Whether the stage should use a linear GL "fog" in creating the +depth-cueing effect, to enhance the perception of depth by fading +actors farther from the viewpoint. + This property does not do anything. + + + + Whether the stage is resizable via user interaction. + + + + + + + + + + The ::activate signal is emitted when the stage receives key focus +from the underlying window system. + + + + + + The ::after-paint signal is emitted after the stage is painted, +but before the results are displayed on the screen. + + + + + + The ::deactivate signal is emitted when the stage loses key focus +from the underlying window system. + + + + + + The ::delete-event signal is emitted when the user closes a +#ClutterStage window using the window controls. + +Clutter by default will call clutter_main_quit() if @stage is +the default stage, and clutter_actor_destroy() for any other +stage. + +It is possible to override the default behaviour by connecting +a new handler and returning %TRUE there. + +This signal is emitted only on Clutter backends that +embed #ClutterStage in native windows. It is not emitted for +backends that use a static frame buffer. + + + + + + a #ClutterEvent of type %CLUTTER_DELETE + + + + + + The ::fullscreen signal is emitted when the stage is made fullscreen. + + + + + + + + + + + a #CoglFrameEvent + + + + a #ClutterFrameInfo + + + + + + The ::unfullscreen signal is emitted when the stage leaves a fullscreen +state. + + + + + + + The #ClutterStageClass structure contains only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterStageManager structure is private. + + Returns the default #ClutterStageManager. + + the default stage manager instance. The returned + object is owned by Clutter and you should not reference or unreference it. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns the default #ClutterStage. + + the default stage. The returned object + is owned by Clutter and you should never reference or unreference it + + + + + a #ClutterStageManager + + + + + + Lists all currently used stages. + + a newly + allocated list of #ClutterStage objects. Use g_slist_free() to + deallocate it when done. + + + + + + + a #ClutterStageManager + + + + + + Lists all currently used stages. + + a pointer + to the internal list of #ClutterStage objects. The returned list + is owned by the #ClutterStageManager and should never be modified + or freed + + + + + + + a #ClutterStageManager + + + + + + Sets @stage as the default stage. + Calling this function has no effect + + + + + + a #ClutterStageManager + + + + a #ClutterStage + + + + + + The default stage used by Clutter. + + + + The ::stage-added signal is emitted each time a new #ClutterStage +has been added to the stage manager. + + + + + + the added stage + + + + + + The ::stage-removed signal is emitted each time a #ClutterStage +has been removed from the stage manager. + + + + + + the removed stage + + + + + + + The #ClutterStageManagerClass structure contains only private data +and should be accessed using the provided API + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Stage state masks, used by the #ClutterEvent of type %CLUTTER_STAGE_STATE. + + Fullscreen mask + + + Offscreen mask (deprecated) + + + Activated mask + + + + Event signalling a change in the #ClutterStage state. + + event type + + + + event time + + + + event flags + + + + event source stage + + + + event source actor (unused) + + + + bitwise OR of the changed flags + + + + bitwise OR of the current state flags + + + + + + + + + + + The #ClutterState structure contains only +private data and should be accessed using the provided API + + + Creates a new #ClutterState + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + the newly create #ClutterState instance + + + + + + + + + + + + + + + Retrieves the #ClutterAnimator that is being used for transitioning +between the two states, if any has been set + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + a #ClutterAnimator instance, or %NULL + + + + + a #ClutterState instance. + + + + the name of a source state + + + + the name of a target state + + + + + + Queries the duration used for transitions between a source and +target state pair + +The semantics for the query are the same as the semantics used for +setting the duration with clutter_state_set_duration() + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + the duration, in milliseconds + + + + + a #ClutterState + + + + the name of the source state to + get the duration of, or %NULL + + + + the name of the source state to + get the duration of, or %NULL + + + + + + Returns a list of pointers to opaque structures with accessor functions +that describe the keys added to an animator. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + a + newly allocated #GList of #ClutterStateKey<!-- -->s. The contents of + the returned list are owned by the #ClutterState and should not be + modified or freed. Use g_list_free() to free the resources allocated + by the returned list when done using it + + + + + + + a #ClutterState instance. + + + + the source transition name to query, + or %NULL for all source states + + + + the target transition name to query, + or %NULL for all target states + + + + the specific object instance to list keys for, + or %NULL for all managed objects + + + + the property name to search for, or %NULL + for all properties. + + + + + + Queries the currently set target state. + +During a transition this function will return the target of the transition. + +This function is useful when called from handlers of the +#ClutterState::completed signal. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + a string containing the target state. The returned string + is owned by the #ClutterState and should not be modified or freed + + + + + a #ClutterState + + + + + + Gets a list of all the state names managed by this #ClutterState. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + a newly allocated + #GList of state names. The contents of the returned #GList are owned + by the #ClutterState and should not be modified or freed. Use + g_list_free() to free the resources allocated by the returned list when + done using it + + + + + + + a #ClutterState instance. + + + + + + Gets the timeline driving the #ClutterState + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + the #ClutterTimeline that drives + the state change animations. The returned timeline is owned + by the #ClutterState and it should not be unreferenced directly + + + + + a #ClutterState + + + + + + Removes all keys matching the search criteria passed in arguments. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + + + + a #ClutterState instance. + + + + the source state name to query, + or %NULL for all source states + + + + the target state name to query, + or %NULL for all target states + + + + the specific object instance to list keys for, + or %NULL for all managed objects + + + + the property name to search for, + or %NULL for all properties. + + + + + + Adds multiple keys to a named state of a #ClutterState instance, specifying +the easing mode and value a given property of an object should have at a +given progress of the animation. + +The mode specified is the easing mode used when going to from the previous +key to the specified key. + +For instance, the code below: + +|[ + clutter_state_set (state, NULL, "hover", + button, "opacity", CLUTTER_LINEAR, 255, + button, "scale-x", CLUTTER_EASE_OUT_CUBIC, 1.2, + button, "scale-y", CLUTTER_EASE_OUT_CUBIC, 1.2, + NULL); +]| + +will create a transition from any state (a @source_state_name or NULL is +treated as a wildcard) and a state named "hover"; the +button object will have the #ClutterActor:opacity +property animated to a value of 255 using %CLUTTER_LINEAR as the animation +mode, and the #ClutterActor:scale-x and #ClutterActor:scale-y properties +animated to a value of 1.2 using %CLUTTER_EASE_OUT_CUBIC as the animation +mode. To change the state (and start the transition) you can use the +clutter_state_set_state() function: + +|[ + clutter_state_set_state (state, "hover"); +]| + +If a given object, state_name, property tuple already exist in the +#ClutterState instance, then the mode and value will be replaced with +the new specified values. + +If a property name is prefixed with "delayed::" two additional +arguments per key are expected: a value relative to the full state time +to pause before transitioning and a similar value to pause after +transitioning, e.g.: + +|[ + clutter_state_set (state, "hover", "toggled", + button, "delayed::scale-x", CLUTTER_LINEAR, 1.0, 0.2, 0.2, + button, "delayed::scale-y", CLUTTER_LINEAR, 1.0, 0.2, 0.2, + NULL); +]| + +will pause for 20% of the duration of the transition before animating, +and 20% of the duration after animating. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + + + + a #ClutterState instance. + + + + the name of the source state keys are being added for + + + + the name of the target state keys are being added for + + + + a #GObject + + + + a property of @first_object to specify a key for + + + + the id of the alpha function to use + + + + the value @first_property_name should have in @target_state_name, + followed by object, property name, mode, value tuples, terminated + by %NULL + + + + + + Specifies a #ClutterAnimator to be used when transitioning between +the two named states. + +The @animator allows specifying a transition between the state that is +more elaborate than the basic transitions allowed by the tweening of +properties defined in the #ClutterState keys. + +If @animator is %NULL it will unset an existing animator. + +#ClutterState will take a reference on the passed @animator, if any + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + + + + a #ClutterState instance. + + + + the name of a source state + + + + the name of a target state + + + + a #ClutterAnimator instance, or %NULL to + unset an existing #ClutterAnimator + + + + + + Sets the duration of a transition. + +If both state names are %NULL the default duration for @state is set. + +If only @target_state_name is specified, the passed @duration becomes +the default duration for transitions to the target state. + +If both states names are specified, the passed @duration only applies +to the specified transition. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + + + + a #ClutterState + + + + the name of the source state, or %NULL + + + + the name of the target state, or %NULL + + + + the duration of the transition, in milliseconds + + + + + + Sets one specific end key for a state name, @object, @property_name +combination. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + the #ClutterState instance, allowing + chaining of multiple calls + + + + + a #ClutterState instance. + + + + the source transition to specify + transition for, or %NULL to specify the default fallback when a + more specific source state doesn't exist. + + + + the name of the transition to set a key value for. + + + + the #GObject to set a key for + + + + the property to set a key for + + + + the id of the alpha function to use + + + + the value for property_name of object in state_name + + + + relative time of the transition to be idle in the beginning + of the transition + + + + relative time of the transition to be idle in the end of + the transition + + + + + + Change the current state of #ClutterState to @target_state_name. + +The state will animate during its transition, see +#clutter_state_warp_to_state for animation-free state switching. + +Setting a %NULL state will stop the current animation and unset +the current state, but keys will be left intact. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + the #ClutterTimeline that drives the + state transition. The returned timeline is owned by the #ClutterState + and it should not be unreferenced + + + + + a #ClutterState + + + + the state to transition to + + + + + + Change to the specified target state immediately with no animation. + +See clutter_state_set_state(). + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + the #ClutterTimeline that drives the + state transition. The returned timeline is owned by the #ClutterState + and it should not be unreferenced + + + + + a #ClutterState + + + + the state to transition to + + + + + + Default duration used if an duration has not been specified for a specific +source/target state pair. The values is in milliseconds. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + + The currently set target state, setting it causes the +state machine to transition to the new state, use +clutter_state_warp_to_state() to change state without +a transition. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + + + + + + + + The ::completed signal is emitted when a #ClutterState reaches +the target state specified by clutter_state_set_state() or +clutter_state_warp_to_state(). + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + + + + + The #ClutterStateClass structure contains +only private data + + + + + + + + + + + + + + + + + + + + + + + #ClutterStateKey is an opaque structure whose +members cannot be accessed directly + + Retrieves the easing mode used for @state_key. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + the mode of a #ClutterStateKey + + + + + a #ClutterStateKey + + + + + + Retrieves the object instance this #ClutterStateKey applies to. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + the object this state key applies to. + + + + + a #ClutterStateKey + + + + + + Retrieves the duration of the pause after transitioning is complete +as a fraction of the total transition time. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + the post delay, used after doing the transition. + + + + + a #ClutterStateKey + + + + + + Retrieves the pause before transitioning starts as a fraction of +the total transition time. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + the pre delay used before starting the transition. + + + + + a #ClutterStateKey + + + + + + Retrieves the name of the property this #ClutterStateKey applies to + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + the name of the property. The returned string is owned + by the #ClutterStateKey and should never be modified or freed + + + + + a #ClutterStateKey + + + + + + Retrieves the #GType of the property a key applies to + +You can use this type to initialize the #GValue to pass to +clutter_state_key_get_value() + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + the #GType of the property + + + + + a #ClutterStateKey + + + + + + Retrieves the name of the source state of the @state_key + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + the name of the source state for this key, or %NULL + if this is the generic state key for the given property when + transitioning to the target state. The returned string is owned + by the #ClutterStateKey and should never be modified or freed + + + + + a #ClutterStateKey + + + + + + Get the name of the source state this #ClutterStateKey contains, +or NULL if this is the generic state key for the given property +when transitioning to the target state. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + the name of the source state for this key, or NULL if + the key is generic + + + + + a #ClutterStateKey + + + + + + Retrieves a copy of the value for a #ClutterStateKey. + +The #GValue needs to be already initialized for the value type +of the property or to a type that allow transformation from the value +type of the key. + +Use g_value_unset() when done. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + %TRUE if the value was successfully retrieved, + and %FALSE otherwise + + + + + a #ClutterStateKey + + + + a #GValue initialized with the correct type for the @state_key + + + + + + + + + Named colors, for accessing global colors defined by Clutter + + White color (ffffffff) + + + Black color (000000ff) + + + Red color (ff0000ff) + + + Dark red color (800000ff) + + + Green color (00ff00ff) + + + Dark green color (008000ff) + + + Blue color (0000ffff) + + + Dark blue color (000080ff) + + + Cyan color (00ffffff) + + + Dark cyan color (008080ff) + + + Magenta color (ff00ffff) + + + Dark magenta color (800080ff) + + + Yellow color (ffff00ff) + + + Dark yellow color (808000ff) + + + Gray color (a0a0a4ff) + + + Dark Gray color (808080ff) + + + Light gray color (c0c0c0ff) + + + Butter color (edd400ff) + + + Light butter color (fce94fff) + + + Dark butter color (c4a000ff) + + + Orange color (f57900ff) + + + Light orange color (fcaf3fff) + + + Dark orange color (ce5c00ff) + + + Chocolate color (c17d11ff) + + + Light chocolate color (e9b96eff) + + + Dark chocolate color (8f5902ff) + + + Chameleon color (73d216ff) + + + Light chameleon color (8ae234ff) + + + Dark chameleon color (4e9a06ff) + + + Sky color (3465a4ff) + + + Light sky color (729fcfff) + + + Dark sky color (204a87ff) + + + Plum color (75507bff) + + + Light plum color (ad7fa8ff) + + + Dark plum color (5c3566ff) + + + Scarlet red color (cc0000ff) + + + Light scarlet red color (ef2929ff) + + + Dark scarlet red color (a40000ff) + + + Aluminium, first variant (eeeeecff) + + + Aluminium, second variant (d3d7cfff) + + + Aluminium, third variant (babdb6ff) + + + Aluminium, fourth variant (888a85ff) + + + Aluminium, fifth variant (555753ff) + + + Aluminium, sixth variant (2e3436ff) + + + Transparent color (00000000) + + + + Change the value transition of a step function. + +See clutter_timeline_set_step_progress(). + + The change in the value of a + %CLUTTER_STEP progress mode should occur at the start of + the transition + + + The change in the value of a + %CLUTTER_STEP progress mode should occur at the end of + the transition + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterSwipeAction structure contains +only private data and should be accessed using the provided API + + Creates a new #ClutterSwipeAction instance + + the newly created #ClutterSwipeAction + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The ::swept signal is emitted when a swipe gesture is recognized on the +attached actor. + Use the ::swipe signal instead. + + + + + + the #ClutterActor attached to the @action + + + + the main direction of the swipe gesture + + + + + + The ::swipe signal is emitted when a swipe gesture is recognized on the +attached actor. + + %TRUE if the swipe should continue, and %FALSE if + the swipe should be cancelled. + + + + + the #ClutterActor attached to the @action + + + + the main direction of the swipe gesture + + + + + + + The #ClutterSwipeActionClass structure contains +only private data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The main direction of the swipe gesture + + Upwards swipe gesture + + + Downwards swipe gesture + + + Leftwards swipe gesture + + + Rightwards swipe gesture + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The alignment policies available on each axis of the #ClutterTableLayout + Use the alignment properties of #ClutterActor + + Align the child to the top or to the + left of a cell in the table, depending on the axis + + + Align the child to the center of + a cell in the table + + + Align the child to the bottom or to the + right of a cell in the table, depending on the axis + + + + The #ClutterTableLayout structure contains only private data +and should be accessed using the provided API + Use #ClutterGridLayout instead + + Creates a new #ClutterTableLayout layout manager + Use #ClutterGridLayout instead + + the newly created #ClutterTableLayout + + + + + Retrieves the horizontal and vertical alignment policies for @actor +as set using clutter_table_layout_pack() or +clutter_table_layout_set_alignment(). + Use clutter_actor_get_x_align() and + clutter_actor_get_y_align() instead. + + + + + + a #ClutterTableLayout + + + + a #ClutterActor child of @layout + + + + return location for the horizontal alignment policy + + + + return location for the vertical alignment policy + + + + + + Retrieve the current number of columns in @layout + No direct replacement is available + + the number of columns + + + + + A #ClutterTableLayout + + + + + + Retrieves the spacing set using clutter_table_layout_set_column_spacing() + Use #ClutterGridLayout:column-spacing + + the spacing between columns of the #ClutterTableLayout + + + + + a #ClutterTableLayout + + + + + + Retrieves the duration set using clutter_table_layout_set_easing_duration() + #ClutterTableLayout will honour the easing state + of the children when allocating them. See clutter_actor_set_easing_mode() + and clutter_actor_set_easing_duration(). + + the duration of the animations, in milliseconds + + + + + a #ClutterTableLayout + + + + + + Retrieves the easing mode set using clutter_table_layout_set_easing_mode() + #ClutterTableLayout will honour the easing state + of the children when allocating them. See clutter_actor_set_easing_mode() + and clutter_actor_set_easing_duration(). + + an easing mode + + + + + a #ClutterTableLayout + + + + + + Retrieves the horizontal and vertical expand policies for @actor +as set using clutter_table_layout_pack() or clutter_table_layout_set_expand() + Use clutter_actor_get_x_expand() and + clutter_actor_get_y_expand() instead. + + + + + + a #ClutterTableLayout + + + + a #ClutterActor child of @layout + + + + return location for the horizontal expand policy + + + + return location for the vertical expand policy + + + + + + Retrieves the horizontal and vertical fill policies for @actor +as set using clutter_table_layout_pack() or clutter_table_layout_set_fill() + Use clutter_actor_get_x_align() and + clutter_actor_get_y_align() instead. + + + + + + a #ClutterTableLayout + + + + a #ClutterActor child of @layout + + + + return location for the horizontal fill policy + + + + return location for the vertical fill policy + + + + + + Retrieve the current number rows in the @layout + No direct replacement is available + + the number of rows + + + + + A #ClutterTableLayout + + + + + + Retrieves the spacing set using clutter_table_layout_set_row_spacing() + Use #ClutterGridLayout:row-spacing instead + + the spacing between rows of the #ClutterTableLayout + + + + + a #ClutterTableLayout + + + + + + Retrieves the row and column span for @actor as set using +clutter_table_layout_pack() or clutter_table_layout_set_span() + Use the `width` and `height` layout properties + of #ClutterGridLayout instead + + + + + + a #ClutterTableLayout + + + + a #ClutterActor child of @layout + + + + return location for the col span + + + + return location for the row span + + + + + + Retrieves whether @layout should animate changes in the layout properties + +Since clutter_table_layout_set_use_animations() + #ClutterTableLayout will honour the easing state + of the children when allocating them. See clutter_actor_set_easing_mode() + and clutter_actor_set_easing_duration(). + + %TRUE if the animations should be used, %FALSE otherwise + + + + + a #ClutterTableLayout + + + + + + Packs @actor inside the #ClutterContainer associated to @layout +at the given row and column. + Use clutter_grid_layout_attach_child() instead + + + + + + a #ClutterTableLayout + + + + a #ClutterActor + + + + the column the @actor should be put, or -1 to append + + + + the row the @actor should be put, or -1 to append + + + + + + Sets the horizontal and vertical alignment policies for @actor +inside @layout + Use clutter_actor_set_x_align() and + clutter_actor_set_y_align() instead. + + + + + + a #ClutterTableLayout + + + + a #ClutterActor child of @layout + + + + Horizontal alignment policy for @actor + + + + Vertical alignment policy for @actor + + + + + + Sets the spacing between columns of @layout + Use #ClutterGridLayout:column-spacing instead + + + + + + a #ClutterTableLayout + + + + the spacing between columns of the layout, in pixels + + + + + + Sets the duration of the animations used by @layout when animating changes +in the layout properties + +Use clutter_table_layout_set_use_animations() to enable and disable the +animations + #ClutterTableLayout will honour the easing state + of the children when allocating them. See clutter_actor_set_easing_mode() + and clutter_actor_set_easing_duration(). + + + + + + a #ClutterTableLayout + + + + the duration of the animations, in milliseconds + + + + + + Sets the easing mode to be used by @layout when animating changes in layout +properties + +Use clutter_table_layout_set_use_animations() to enable and disable the +animations + #ClutterTableLayout will honour the easing state + of the children when allocating them. See clutter_actor_set_easing_mode() + and clutter_actor_set_easing_duration(). + + + + + + a #ClutterTableLayout + + + + an easing mode, either from #ClutterAnimationMode or a logical id + from clutter_alpha_register_func() + + + + + + Sets the horizontal and vertical expand policies for @actor +inside @layout + Use clutter_actor_set_x_expand() or + clutter_actor_set_y_expand() instead. + + + + + + a #ClutterTableLayout + + + + a #ClutterActor child of @layout + + + + whether @actor should allocate extra space horizontally + + + + whether @actor should allocate extra space vertically + + + + + + Sets the horizontal and vertical fill policies for @actor +inside @layout + Use clutter_actor_set_x_align() and + clutter_actor_set_y_align() instead. + + + + + + a #ClutterTableLayout + + + + a #ClutterActor child of @layout + + + + whether @actor should fill horizontally the allocated space + + + + whether @actor should fill vertically the allocated space + + + + + + Sets the spacing between rows of @layout + Use #ClutterGridLayout:row-spacing instead + + + + + + a #ClutterTableLayout + + + + the spacing between rows of the layout, in pixels + + + + + + Sets the row and column span for @actor +inside @layout + Use the `width` and `height` layout properties + of #ClutterGridLayout instead + + + + + + a #ClutterTableLayout + + + + a #ClutterActor child of @layout + + + + Column span for @actor + + + + Row span for @actor + + + + + + Sets whether @layout should animate changes in the layout properties + +The duration of the animations is controlled by +clutter_table_layout_set_easing_duration(); the easing mode to be used +by the animations is controlled by clutter_table_layout_set_easing_mode() + #ClutterTableLayout will honour the easing state + of the children when allocating them. See clutter_actor_set_easing_mode() + and clutter_actor_set_easing_duration(). + + + + + + a #ClutterTableLayout + + + + %TRUE if the @layout should use animations + + + + + + The spacing between columns of the #ClutterTableLayout, in pixels + Use #ClutterGridLayout:column-spacing instead + + + + The duration of the animations, in case #ClutterTableLayout:use-animations +is set to %TRUE. + +The duration is expressed in milliseconds. + #ClutterTableLayout will honour the easing state + of the children when allocating them + + + + The easing mode for the animations, in case +#ClutterTableLayout:use-animations is set to %TRUE. + +The easing mode has the same semantics of #ClutterAnimation:mode: it can +either be a value from the #ClutterAnimationMode enumeration, like +%CLUTTER_EASE_OUT_CUBIC, or a logical id as returned by +clutter_alpha_register_func(). + +The default value is %CLUTTER_EASE_OUT_CUBIC. + #ClutterTableLayout will honour the easing state + of the children when allocating them + + + + The spacing between rows of the #ClutterTableLayout, in pixels + Use #ClutterGridLayout:row-spacing instead + + + + Whether the #ClutterTableLayout should animate changes in the +layout properties. + +By default, #ClutterTableLayout will honour the easing state of +the children when allocating them. Setting this property to +%TRUE will override the easing state with the layout manager's +#ClutterTableLayout:easing-mode and #ClutterTableLayout:easing-duration +properties. + #ClutterTableLayout will honour the easing state + of the children when allocating them + + + + + + + + + + + The #ClutterTableLayoutClass structure contains only private +data and should be accessed using the provided API + Use #ClutterGridLayout instead + + + + + + + + + + + The #ClutterTapAction structure contains +only private data and should be accessed using the provided API + + Creates a new #ClutterTapAction instance + + the newly created #ClutterTapAction + + + + + + + + + + + + + + + + + + + + + The ::tap signal is emitted when the tap gesture is complete. + + + + + + the #ClutterActor attached to the @action + + + + + + + The #ClutterTapActionClass structure contains +only private data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterText struct contains only private data. + + + + + + Creates a new #ClutterText actor. This actor can be used to +display and edit text. + + the newly created #ClutterText actor + + + + + Creates a new #ClutterText actor, using @font_name as the font +description; @text will be used to set the contents of the actor; +and @color will be used as the color to render @text. + +This function is equivalent to calling clutter_text_new(), +clutter_text_set_font_name(), clutter_text_set_text() and +clutter_text_set_color(). + + the newly created #ClutterText actor + + + + + a string with a font description + + + + the contents of the actor + + + + the color to be used to render @text + + + + + + Creates a new entry with the specified text buffer. + + a new #ClutterText + + + + + The buffer to use for the new #ClutterText. + + + + + + Creates a new #ClutterText actor, using @font_name as the font +description; @text will be used to set the contents of the actor. + +This function is equivalent to calling clutter_text_new(), +clutter_text_set_font_name(), and clutter_text_set_text(). + + the newly created #ClutterText actor + + + + + a string with a font description + + + + the contents of the actor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Emits the #ClutterText::activate signal, if @self has been set +as activatable using clutter_text_set_activatable(). + +This function can be used to emit the ::activate signal inside +a #ClutterActor::captured-event or #ClutterActor::key-press-event +signal handlers before the default signal handler for the +#ClutterText is invoked. + + %TRUE if the ::activate signal has been emitted, + and %FALSE otherwise + + + + + a #ClutterText + + + + + + Retrieves the position of the character at the given coordinates. + + the position of the character + + + + + a #ClutterText + + + + the X coordinate, relative to the actor + + + + the Y coordinate, relative to the actor + + + + + + Deletes @n_chars inside a #ClutterText actor, starting from the +current cursor position. + +Somewhat awkwardly, the cursor position is decremented by the same +number of characters you've deleted. + + + + + + a #ClutterText + + + + the number of characters to delete + + + + + + Deletes the currently selected text + +This function is only useful in subclasses of #ClutterText + + %TRUE if text was deleted or if the text actor + is empty, and %FALSE otherwise + + + + + a #ClutterText + + + + + + Deletes the text inside a #ClutterText actor between @start_pos +and @end_pos. + +The starting and ending positions are expressed in characters, +not in bytes. + + + + + + a #ClutterText + + + + starting position + + + + ending position + + + + + + Retrieves whether a #ClutterText is activatable or not. + + %TRUE if the actor is activatable + + + + + a #ClutterText + + + + + + Gets the attribute list that was set on the #ClutterText actor +clutter_text_set_attributes(), if any. + + the attribute list, or %NULL if none was set. The + returned value is owned by the #ClutterText and should not be unreferenced. + + + + + a #ClutterText + + + + + + Get the #ClutterTextBuffer object which holds the text for +this widget. + + A #GtkEntryBuffer object. + + + + + a #ClutterText + + + + + + Retrieves the contents of the #ClutterText actor between +@start_pos and @end_pos, but not including @end_pos. + +The positions are specified in characters, not in bytes. + + a newly allocated string with the contents of + the text actor between the specified positions. Use g_free() + to free the resources when done + + + + + a #ClutterText + + + + start of text, in characters + + + + end of text, in characters + + + + + + Retrieves the text color as set by clutter_text_set_color(). + + + + + + a #ClutterText + + + + return location for a #ClutterColor + + + + + + Retrieves the color of the cursor of a #ClutterText actor. + + + + + + a #ClutterText + + + + return location for a #ClutterColor + + + + + + Retrieves the cursor position. + + the cursor position, in characters + + + + + a #ClutterText + + + + + + Retrieves the rectangle that contains the cursor. + +The coordinates of the rectangle's origin are in actor-relative +coordinates. + + + + + + a #ClutterText + + + + return location of a #ClutterRect + + + + + + Retrieves the size of the cursor of a #ClutterText actor. + + the size of the cursor, in pixels + + + + + a #ClutterText + + + + + + Retrieves whether the cursor of a #ClutterText actor is visible. + + %TRUE if the cursor is visible + + + + + a #ClutterText + + + + + + Retrieves whether a #ClutterText is editable or not. + + %TRUE if the actor is editable + + + + + a #ClutterText + + + + + + Returns the ellipsizing position of a #ClutterText actor, as +set by clutter_text_set_ellipsize(). + + #PangoEllipsizeMode + + + + + a #ClutterText + + + + + + Retrieves the #PangoFontDescription used by @self + + a #PangoFontDescription. The returned value is owned + by the #ClutterText actor and it should not be modified or freed + + + + + a #ClutterText + + + + + + Retrieves the font name as set by clutter_text_set_font_name(). + + a string containing the font name. The returned + string is owned by the #ClutterText actor and should not be + modified or freed + + + + + a #ClutterText + + + + + + + + + + + + + + + + + + + + + + + + + + Retrieves whether the #ClutterText actor should justify its contents +on both margins. + + %TRUE if the text should be justified + + + + + a #ClutterText + + + + + + Retrieves the current #PangoLayout used by a #ClutterText actor. + + a #PangoLayout. The returned object is owned by + the #ClutterText actor and should not be modified or freed + + + + + a #ClutterText + + + + + + Obtains the coordinates where the #ClutterText will draw the #PangoLayout +representing the text. + + + + + + a #ClutterText + + + + location to store X offset of layout, or %NULL + + + + location to store Y offset of layout, or %NULL + + + + + + Retrieves the alignment of a #ClutterText, as set by +clutter_text_set_line_alignment(). + + a #PangoAlignment + + + + + a #ClutterText + + + + + + Retrieves the value set using clutter_text_set_line_wrap(). + + %TRUE if the #ClutterText actor should wrap + its contents + + + + + a #ClutterText + + + + + + Retrieves the line wrap mode used by the #ClutterText actor. + +See clutter_text_set_line_wrap_mode (). + + the wrap mode used by the #ClutterText + + + + + a #ClutterText + + + + + + Gets the maximum length of text that can be set into a text actor. + +See clutter_text_set_max_length(). + + the maximum number of characters. + + + + + a #ClutterText + + + + + + Retrieves the character to use in place of the actual text +as set by clutter_text_set_password_char(). + + a Unicode character or 0 if the password + character is not set + + + + + a #ClutterText + + + + + + Retrieves whether a #ClutterText is selectable or not. + + %TRUE if the actor is selectable + + + + + a #ClutterText + + + + + + Retrieves the color of selected text of a #ClutterText actor. + + + + + + a #ClutterText + + + + return location for a #ClutterColor + + + + + + Retrieves the currently selected text. + + a newly allocated string containing the currently + selected text, or %NULL. Use g_free() to free the returned + string. + + + + + a #ClutterText + + + + + + Retrieves the other end of the selection of a #ClutterText actor, +in characters from the current cursor position. + + the position of the other end of the selection + + + + + a #ClutterText + + + + + + Retrieves the color of the selection of a #ClutterText actor. + + + + + + a #ClutterText + + + + return location for a #ClutterColor + + + + + + Retrieves whether the #ClutterText actor is in single line mode. + + %TRUE if the #ClutterText actor is in single line mode + + + + + a #ClutterText + + + + + + Retrieves a pointer to the current contents of a #ClutterText +actor. + +If you need a copy of the contents for manipulating, either +use g_strdup() on the returned string, or use: + +|[ + copy = clutter_text_get_chars (text, 0, -1); +]| + +Which will return a newly allocated string. + +If the #ClutterText actor is empty, this function will return +an empty string, and not %NULL. + + the contents of the actor. The returned + string is owned by the #ClutterText actor and should never be modified + or freed + + + + + a #ClutterText + + + + + + Retrieves whether the contents of the #ClutterText actor should be +parsed for the Pango text markup. + + %TRUE if the contents will be parsed for markup + + + + + a #ClutterText + + + + + + + + + + + + + + + + Inserts @text into a #ClutterActor at the given position. + +If @position is a negative number, the text will be appended +at the end of the current contents of the #ClutterText. + +The position is expressed in characters, not in bytes. + + + + + + a #ClutterText + + + + the text to be inserted + + + + the position of the insertion, or -1 + + + + + + Inserts @wc at the current cursor position of a +#ClutterText actor. + + + + + + a #ClutterText + + + + a Unicode character + + + + + + Retrieves the coordinates of the given @position. + + %TRUE if the conversion was successful + + + + + a #ClutterText + + + + position in characters + + + + return location for the X coordinate, or %NULL + + + + return location for the Y coordinate, or %NULL + + + + return location for the line height, or %NULL + + + + + + Sets whether a #ClutterText actor should be activatable. + +An activatable #ClutterText actor will emit the #ClutterText::activate +signal whenever the 'Enter' (or 'Return') key is pressed; if it is not +activatable, a new line will be appended to the current content. + +An activatable #ClutterText must also be set as editable using +clutter_text_set_editable(). + + + + + + a #ClutterText + + + + whether the #ClutterText actor should be activatable + + + + + + Sets the attributes list that are going to be applied to the +#ClutterText contents. + +The #ClutterText actor will take a reference on the #PangoAttrList +passed to this function. + + + + + + a #ClutterText + + + + a #PangoAttrList or %NULL to unset the attributes + + + + + + Set the #ClutterTextBuffer object which holds the text for +this widget. + + + + + + a #ClutterText + + + + a #ClutterTextBuffer + + + + + + Sets the color of the contents of a #ClutterText actor. + +The overall opacity of the #ClutterText actor will be the +result of the alpha value of @color and the composited +opacity of the actor itself on the scenegraph, as returned +by clutter_actor_get_paint_opacity(). + + + + + + a #ClutterText + + + + a #ClutterColor + + + + + + Sets the color of the cursor of a #ClutterText actor. + +If @color is %NULL, the cursor color will be the same as the +text color. + + + + + + a #ClutterText + + + + the color of the cursor, or %NULL to unset it + + + + + + Sets the cursor of a #ClutterText actor at @position. + +The position is expressed in characters, not in bytes. + + + + + + a #ClutterText + + + + the new cursor position, in characters + + + + + + Sets the size of the cursor of a #ClutterText. The cursor +will only be visible if the #ClutterText:cursor-visible property +is set to %TRUE. + + + + + + a #ClutterText + + + + the size of the cursor, in pixels, or -1 to use the + default value + + + + + + Sets whether the cursor of a #ClutterText actor should be +visible or not. + +The color of the cursor will be the same as the text color +unless clutter_text_set_cursor_color() has been called. + +The size of the cursor can be set using clutter_text_set_cursor_size(). + +The position of the cursor can be changed programmatically using +clutter_text_set_cursor_position(). + + + + + + a #ClutterText + + + + whether the cursor should be visible + + + + + + Sets whether the #ClutterText actor should be editable. + +An editable #ClutterText with key focus set using +clutter_actor_grab_key_focus() or clutter_stage_set_key_focus() +will receive key events and will update its contents accordingly. + + + + + + a #ClutterText + + + + whether the #ClutterText should be editable + + + + + + Sets the mode used to ellipsize (add an ellipsis: "...") to the +text if there is not enough space to render the entire contents +of a #ClutterText actor + + + + + + a #ClutterText + + + + a #PangoEllipsizeMode + + + + + + Sets @font_desc as the font description for a #ClutterText + +The #PangoFontDescription is copied by the #ClutterText actor +so you can safely call pango_font_description_free() on it after +calling this function. + + + + + + a #ClutterText + + + + a #PangoFontDescription + + + + + + Sets the font used by a #ClutterText. The @font_name string +must either be %NULL, which means that the font name from the +default #ClutterBackend will be used; or be something that can +be parsed by the pango_font_description_from_string() function, +like: + +|[ + // Set the font to the system's Sans, 10 points + clutter_text_set_font_name (text, "Sans 10"); + + // Set the font to the system's Serif, 16 pixels + clutter_text_set_font_name (text, "Serif 16px"); + + // Set the font to Helvetica, 10 points + clutter_text_set_font_name (text, "Helvetica 10"); +]| + + + + + + a #ClutterText + + + + a font name, or %NULL to set the default font name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sets whether the text of the #ClutterText actor should be justified +on both margins. This setting is ignored if Clutter is compiled +against Pango &lt; 1.18. + + + + + + a #ClutterText + + + + whether the text should be justified + + + + + + Sets the way that the lines of a wrapped label are aligned with +respect to each other. This does not affect the overall alignment +of the label within its allocated or specified width. + +To align a #ClutterText actor you should add it to a container +that supports alignment, or use the anchor point. + + + + + + a #ClutterText + + + + A #PangoAlignment + + + + + + Sets whether the contents of a #ClutterText actor should wrap, +if they don't fit the size assigned to the actor. + + + + + + a #ClutterText + + + + whether the contents should wrap + + + + + + If line wrapping is enabled (see clutter_text_set_line_wrap()) this +function controls how the line wrapping is performed. The default is +%PANGO_WRAP_WORD which means wrap on word boundaries. + + + + + + a #ClutterText + + + + the line wrapping mode + + + + + + Sets @markup as the contents of a #ClutterText. + +This is a convenience function for setting a string containing +Pango markup, and it is logically equivalent to: + +|[ + /&ast; the order is important &ast;/ + clutter_text_set_text (CLUTTER_TEXT (actor), markup); + clutter_text_set_use_markup (CLUTTER_TEXT (actor), TRUE); +]| + + + + + + a #ClutterText + + + + a string containing Pango markup. + Passing %NULL is the same as passing "" (the empty string) + + + + + + Sets the maximum allowed length of the contents of the actor. If the +current contents are longer than the given length, then they will be +truncated to fit. + + + + + + a #ClutterText + + + + the maximum number of characters allowed in the text actor; 0 + to disable or -1 to set the length of the current string + + + + + + Sets the character to use in place of the actual text in a +password text actor. + +If @wc is 0 the text will be displayed as it is entered in the +#ClutterText actor. + + + + + + a #ClutterText + + + + a Unicode character, or 0 to unset the password character + + + + + + Sets, or unsets, the pre-edit string. This function is useful +for input methods to display a string (with eventual specific +Pango attributes) before it is entered inside the #ClutterText +buffer. + +The preedit string and attributes are ignored if the #ClutterText +actor is not editable. + +This function should not be used by applications + + + + + + a #ClutterText + + + + the pre-edit string, or %NULL to unset it + + + + the pre-edit string attributes + + + + the cursor position for the pre-edit string + + + + + + Sets whether a #ClutterText actor should be selectable. + +A selectable #ClutterText will allow selecting its contents using +the pointer or the keyboard. + + + + + + a #ClutterText + + + + whether the #ClutterText actor should be selectable + + + + + + Sets the selected text color of a #ClutterText actor. + +If @color is %NULL, the selected text color will be the same as the +selection color, which then falls back to cursor, and then text color. + + + + + + a #ClutterText + + + + the selected text color, or %NULL to unset it + + + + + + Selects the region of text between @start_pos and @end_pos. + +This function changes the position of the cursor to match +@start_pos and the selection bound to match @end_pos. + + + + + + a #ClutterText + + + + start of the selection, in characters + + + + end of the selection, in characters + + + + + + Sets the other end of the selection, starting from the current +cursor position. + +If @selection_bound is -1, the selection unset. + + + + + + a #ClutterText + + + + the position of the end of the selection, in characters + + + + + + Sets the color of the selection of a #ClutterText actor. + +If @color is %NULL, the selection color will be the same as the +cursor color, or if no cursor color is set either then it will be +the same as the text color. + + + + + + a #ClutterText + + + + the color of the selection, or %NULL to unset it + + + + + + Sets whether a #ClutterText actor should be in single line mode +or not. Only editable #ClutterText<!-- -->s can be in single line +mode. + +A text actor in single line mode will not wrap text and will clip +the visible area to the predefined size. The contents of the +text actor will scroll to display the end of the text if its length +is bigger than the allocated width. + +When setting the single line mode the #ClutterText:activatable +property is also set as a side effect. Instead of entering a new +line character, the text actor will emit the #ClutterText::activate +signal. + + + + + + a #ClutterText + + + + whether to enable single line mode + + + + + + Sets the contents of a #ClutterText actor. + +If the #ClutterText:use-markup property was set to %TRUE it +will be reset to %FALSE as a side effect. If you want to +maintain the #ClutterText:use-markup you should use the +clutter_text_set_markup() function instead + + + + + + a #ClutterText + + + + the text to set. Passing %NULL is the same + as passing "" (the empty string) + + + + + + Sets whether the contents of the #ClutterText actor contains markup +in <link linkend="PangoMarkupFormat">Pango's text markup language</link>. + +Setting #ClutterText:use-markup on an editable #ClutterText will +not have any effect except hiding the markup. + +See also #ClutterText:use-markup. + + + + + + a #ClutterText + + + + %TRUE if the text should be parsed for markup. + + + + + + Toggles whether return invokes the activate signal or not. + + + + A list of #PangoStyleAttribute<!-- -->s to be applied to the +contents of the #ClutterText actor. + + + + The buffer which stores the text for this #ClutterText. + +If set to %NULL, a default buffer will be created. + + + + The color used to render the text. + + + + The color of the cursor. + + + + Will be set to %TRUE if #ClutterText:cursor-color has been set. + + + + The current input cursor position. -1 is taken to be the end of the text + + + + The size of the cursor, in pixels. If set to -1 the size used will +be the default cursor size of 2 pixels. + + + + Whether the input cursor is visible or not. + +The cursor will only be visible if this property and either +the #ClutterText:editable or the #ClutterText:selectable properties +are set to %TRUE. + + + + Whether key events delivered to the actor causes editing. + + + + The preferred place to ellipsize the contents of the #ClutterText actor + + + + The #PangoFontDescription that should be used by the #ClutterText + +If you have a string describing the font then you should look at +#ClutterText:font-name instead + + + + The font to be used by the #ClutterText, as a string +that can be parsed by pango_font_description_from_string(). + +If set to %NULL, the default system font will be used instead. + + + + + + + + + + Whether the contents of the #ClutterText should be justified +on both margins. + + + + The preferred alignment for the text. This property controls +the alignment of multi-line paragraphs. + + + + Whether to wrap the lines of #ClutterText:text if the contents +exceed the available allocation. The wrapping strategy is +controlled by the #ClutterText:line-wrap-mode property. + + + + If #ClutterText:line-wrap is set to %TRUE, this property will +control how the text is wrapped. + + + + The maximum length of the contents of the #ClutterText actor. + + + + If non-zero, the character that should be used in place of +the actual text in a password text actor. + + + + The current input cursor position. -1 is taken to be the end of the text + Use ClutterText:cursor-position instead. + + + + Whether it is possible to select text, either using the pointer +or the keyboard. + +This property depends on the #ClutterActor:reactive property being +set to %TRUE. + + + + The color of selected text. + + + + Will be set to %TRUE if #ClutterText:selected-text-color has been set. + + + + The current input cursor position. -1 is taken to be the end of the text + + + + The color of the selection. + + + + Will be set to %TRUE if #ClutterText:selection-color has been set. + + + + Whether the #ClutterText actor should be in single line mode +or not. A single line #ClutterText actor will only contain a +single line of text, scrolling it in case its length is bigger +than the allocated size. + +Setting this property will also set the #ClutterText:activatable +property as a side-effect. + +The #ClutterText:single-line-mode property is used only if the +#ClutterText:editable property is set to %TRUE. + + + + The text to render inside the actor. + + + + Whether the text includes Pango markup. + +For more informations about the Pango markup format, see +pango_layout_set_markup() in the Pango documentation. + +It is not possible to round-trip this property between +%TRUE and %FALSE. Once a string with markup has been set on +a #ClutterText actor with :use-markup set to %TRUE, the markup +is stripped from the string. + + + + + + + + + + The ::activate signal is emitted each time the actor is 'activated' +by the user, normally by pressing the 'Enter' key. The signal is +emitted only if #ClutterText:activatable is set to %TRUE. + + + + + + The ::cursor-changed signal is emitted whenever the cursor +position or size changes. + + + + + + The ::cursor-event signal is emitted whenever the cursor position +changes inside a #ClutterText actor. Inside @geometry it is stored +the current position and size of the cursor, relative to the actor +itself. + Use the #ClutterText::cursor-changed signal instead + + + + + + the coordinates of the cursor + + + + + + This signal is emitted when text is deleted from the actor by +the user. It is emitted before @self text changes. + + + + + + the starting position + + + + the end position + + + + + + This signal is emitted when text is inserted into the actor by +the user. It is emitted before @self text changes. + + + + + + the new text to insert + + + + the length of the new text, in bytes, or -1 if + new_text is nul-terminated + + + + the position, in characters, at which to insert the + new text. this is an in-out parameter. After the signal + emission is finished, it should point after the newly + inserted text. + + + + + + The ::text-changed signal is emitted after @actor's text changes + + + + + + + The #ClutterTextBuffer structure contains private +data and it should only be accessed using the provided API. + + Create a new ClutterTextBuffer object. + + A new ClutterTextBuffer object. + + + + + Create a new ClutterTextBuffer object with some text. + + A new ClutterTextBuffer object. + + + + + initial buffer text + + + + initial buffer text length, or -1 for null-terminated. + + + + + + Deletes a sequence of characters from the buffer. @n_chars characters are +deleted starting at @position. If @n_chars is negative, then all characters +until the end of the text are deleted. + +If @position or @n_chars are out of bounds, then they are coerced to sane +values. + +Note that the positions are specified in characters, not bytes. + + The number of characters deleted. + + + + + a #ClutterTextBuffer + + + + position at which to delete text + + + + number of characters to delete + + + + + + + + + + + + + + + + + + + + + + Retrieves the length in characters of the buffer. + + The number of characters in the buffer. + + + + + a #ClutterTextBuffer + + + + + + + + + + + + + + + + + + + Inserts @n_chars characters of @chars into the contents of the +buffer, at position @position. + +If @n_chars is negative, then characters from chars will be inserted +until a null-terminator is found. If @position or @n_chars are out of +bounds, or the maximum buffer text length is exceeded, then they are +coerced to sane values. + +Note that the position and length are in characters, not in bytes. + + The number of characters actually inserted. + + + + + a #ClutterTextBuffer + + + + the position at which to insert text. + + + + the text to insert into the buffer. + + + + the length of the text in characters, or -1 + + + + + + + + + + + + + + + + + + + + + + + + + Deletes a sequence of characters from the buffer. @n_chars characters are +deleted starting at @position. If @n_chars is negative, then all characters +until the end of the text are deleted. + +If @position or @n_chars are out of bounds, then they are coerced to sane +values. + +Note that the positions are specified in characters, not bytes. + + The number of characters deleted. + + + + + a #ClutterTextBuffer + + + + position at which to delete text + + + + number of characters to delete + + + + + + Emits the #ClutterTextBuffer::deleted-text signal on @buffer. + +Used when subclassing #ClutterTextBuffer + + + + + + a #ClutterTextBuffer + + + + position at which text was deleted + + + + number of characters deleted + + + + + + Emits the #ClutterTextBuffer::inserted-text signal on @buffer. + +Used when subclassing #ClutterTextBuffer + + + + + + a #ClutterTextBuffer + + + + position at which text was inserted + + + + text that was inserted + + + + number of characters inserted + + + + + + Retrieves the length in bytes of the buffer. +See clutter_text_buffer_get_length(). + + The byte length of the buffer. + + + + + a #ClutterTextBuffer + + + + + + Retrieves the length in characters of the buffer. + + The number of characters in the buffer. + + + + + a #ClutterTextBuffer + + + + + + Retrieves the maximum allowed length of the text in +@buffer. See clutter_text_buffer_set_max_length(). + + the maximum allowed number of characters + in #ClutterTextBuffer, or 0 if there is no maximum. + + + + + a #ClutterTextBuffer + + + + + + Retrieves the contents of the buffer. + +The memory pointer returned by this call will not change +unless this object emits a signal, or is finalized. + + a pointer to the contents of the widget as a + string. This string points to internally allocated + storage in the buffer and must not be freed, modified or + stored. + + + + + a #ClutterTextBuffer + + + + + + Inserts @n_chars characters of @chars into the contents of the +buffer, at position @position. + +If @n_chars is negative, then characters from chars will be inserted +until a null-terminator is found. If @position or @n_chars are out of +bounds, or the maximum buffer text length is exceeded, then they are +coerced to sane values. + +Note that the position and length are in characters, not in bytes. + + The number of characters actually inserted. + + + + + a #ClutterTextBuffer + + + + the position at which to insert text. + + + + the text to insert into the buffer. + + + + the length of the text in characters, or -1 + + + + + + Sets the maximum allowed length of the contents of the buffer. If +the current contents are longer than the given length, then they +will be truncated to fit. + + + + + + a #ClutterTextBuffer + + + + the maximum length of the entry buffer, or 0 for no maximum. + (other than the maximum length of entries.) The value passed in will + be clamped to the range [ 0, %CLUTTER_TEXT_BUFFER_MAX_SIZE ]. + + + + + + Sets the text in the buffer. + +This is roughly equivalent to calling clutter_text_buffer_delete_text() +and clutter_text_buffer_insert_text(). + +Note that @n_chars is in characters, not in bytes. + + + + + + a #ClutterTextBuffer + + + + the new text + + + + the number of characters in @text, or -1 + + + + + + The length (in characters) of the text in buffer. + + + + The maximum length (in characters) of the text in the buffer. + + + + The contents of the buffer. + + + + + + + + + + This signal is emitted after text is deleted from the buffer. + + + + + + the position the text was deleted at. + + + + The number of characters that were deleted. + + + + + + This signal is emitted after text is inserted into the buffer. + + + + + + the position the text was inserted at. + + + + The text that was inserted. + + + + The number of characters that were inserted. + + + + + + + The #ClutterTextBufferClass structure contains +only private data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The number of characters in the buffer. + + + + + a #ClutterTextBuffer + + + + + + + + + The number of characters actually inserted. + + + + + a #ClutterTextBuffer + + + + the position at which to insert text. + + + + the text to insert into the buffer. + + + + the length of the text in characters, or -1 + + + + + + + + + The number of characters deleted. + + + + + a #ClutterTextBuffer + + + + position at which to delete text + + + + number of characters to delete + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterTextClass struct contains only private data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The text direction to be used by #ClutterActor<!-- -->s + + Use the default setting, as returned + by clutter_get_default_text_direction() + + + Use left-to-right text direction + + + Use right-to-left text direction + + + + The #ClutterTextNode structure is an opaque +type whose members cannot be directly accessed. + + Creates a new #ClutterPaintNode that will paint a #PangoLayout +with the given color. + +This function takes a reference on the passed @layout, so it +is safe to call g_object_unref() after it returns. + + the newly created #ClutterPaintNode. + Use clutter_paint_node_unref() when done + + + + + a #PangoLayout, or %NULL + + + + the color used to paint the layout, + or %NULL + + + + + + + The `ClutterTextNodeClass` structure is an opaque +type whose contents cannot be directly accessed. + + + + + The #ClutterTexture structure contains only private data +and should be accessed using the provided API + + + + + + Creates a new empty #ClutterTexture object. + Use #ClutterImage instead + + A newly created #ClutterTexture object. + + + + + Creates a new #ClutterTexture object with its source a prexisting +actor (and associated children). The textures content will contain +'live' redirected output of the actors scene. + +Note this function is intented as a utility call for uniformly applying +shaders to groups and other potential visual effects. It requires that +the %CLUTTER_FEATURE_OFFSCREEN feature is supported by the current backend +and the target system. + +Some tips on usage: + + - The source actor must be visible + - The source actor must have a parent in order for it to be + allocated a size from the layouting mechanism. If the source + actor does not have a parent when this function is called then + the ClutterTexture will adopt it and allocate it at its + preferred size. Using this you can clone an actor that is + otherwise not displayed. Because of this feature if you do + intend to display the source actor then you must make sure that + the actor is parented before calling + clutter_texture_new_from_actor() or that you unparent it before + adding it to a container. + - When getting the image for the clone texture, Clutter + will attempt to render the source actor exactly as it would + appear if it was rendered on screen. The source actor's parent + transformations are taken into account. Therefore if your + source actor is rotated along the X or Y axes so that it has + some depth, the texture will appear differently depending on + the on-screen location of the source actor. While painting the + source actor, Clutter will set up a temporary asymmetric + perspective matrix as the projection matrix so that the source + actor will be projected as if a small section of the screen was + being viewed. Before version 0.8.2, an orthogonal identity + projection was used which meant that the source actor would be + clipped if any part of it was not on the zero Z-plane. + - Avoid reparenting the source with the created texture. + - A group can be padded with a transparent rectangle as to + provide a border to contents for shader output (blurring text + for example). + - The texture will automatically resize to contain a further + transformed source. However, this involves overhead and can be + avoided by placing the source actor in a bounding group + sized large enough to contain any child tranformations. + - Uploading pixel data to the texture (e.g by using + clutter_texture_set_from_file()) will destroy the offscreen texture + data and end redirection. + - cogl_texture_get_data() with the handle returned by + clutter_texture_get_cogl_texture() can be used to read the + offscreen texture pixels into a pixbuf. + Use the #ClutterOffscreenEffect and #ClutterShaderEffect + directly on the intended #ClutterActor to replace the functionality of + this function. + + A newly created #ClutterTexture object, or %NULL on failure. + + + + + A source #ClutterActor + + + + + + Creates a new ClutterTexture actor to display the image contained a +file. If the image failed to load then NULL is returned and @error +is set. + No direct replacement is available. Use #ClutterImage + and platform-specific image loading API, like GdkPixbuf, instead + + A newly created #ClutterTexture object or NULL on +error. + + + + + The name of an image file to load. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets the size in pixels of the untransformed underlying image + Use #ClutterImage and clutter_content_get_preferred_size() + instead + + + + + + a #ClutterTexture + + + + return location for the width, or %NULL + + + + return location for the height, or %NULL + + + + + + Returns a handle to the underlying COGL material used for drawing +the actor. + No replacement is available; it's not advisable + to modify the Cogl pipeline of an actor. Use a #ClutterContent + implementation and modify the pipeline during the paint sequence + + a handle for a #CoglMaterial. The + material is owned by the #ClutterTexture and it should not be + unreferenced + + + + + A #ClutterTexture + + + + + + Retrieves the handle to the underlying COGL texture used for drawing +the actor. No extra reference is taken so if you need to keep the +handle then you should call cogl_handle_ref() on it. + +The texture handle returned is the first layer of the material +handle used by the #ClutterTexture. If you need to access the other +layers you should use clutter_texture_get_cogl_material() instead +and use the #CoglMaterial API. + No replacement available; it's not advisable to + modify the Cogl pipeline of an actor. Use a #ClutterContent + implementation and set up the pipeline during the paint sequence + instead. + + a #CoglHandle for the texture. The returned + handle is owned by the #ClutterTexture and it should not be unreferenced + + + + + A #ClutterTexture + + + + + + Gets the filter quality used when scaling a texture. + Use #ClutterImage and clutter_actor_get_content_scaling_filters() + instead + + The filter quality value. + + + + + A #ClutterTexture + + + + + + Retrieves the value set using clutter_texture_set_keep_aspect_ratio() + Use #ClutterImage and clutter_actor_get_content_gravity() + instead + + %TRUE if the #ClutterTexture should maintain the + aspect ratio of the underlying image + + + + + a #ClutterTexture + + + + + + Retrieves the value set using clutter_texture_set_load_async() + There is no direct replacement for this function + + %TRUE if the #ClutterTexture should load the data from + disk asynchronously + + + + + a #ClutterTexture + + + + + + Retrieves the value set by clutter_texture_set_load_data_async() + There is no direct replacement for this function + + %TRUE if the #ClutterTexture should load the image + data from a file asynchronously + + + + + a #ClutterTexture + + + + + + Gets the maximum waste that will be used when creating a texture or +-1 if slicing is disabled. + No replacement is available + + The maximum waste or -1 if the texture waste is + unlimited. + + + + + A #ClutterTexture + + + + + + Retrieves the value set by clutter_texture_set_load_data_async() + There is no direct replacement for this function + + %TRUE if the #ClutterTexture should define its shape +using the alpha channel when picking. + + + + + a #ClutterTexture + + + + + + Retrieves the horizontal and vertical repeat values set +using clutter_texture_set_repeat() + Use #ClutterImage and clutter_actor_get_content_repeat() + instead + + + + + + a #ClutterTexture + + + + return location for the horizontal repeat + + + + return location for the vertical repeat + + + + + + Retrieves the value set with clutter_texture_set_sync_size() + There is no direct replacement + + %TRUE if the #ClutterTexture should have the same + preferred size of the underlying image data + + + + + a #ClutterTexture + + + + + + Updates a sub-region of the pixel data in a #ClutterTexture. + Use #ClutterImage and clutter_image_set_area() instead + + %TRUE on success, %FALSE on failure. + + + + + A #ClutterTexture + + + + Image data in RGB type colorspace. + + + + + + Set to TRUE if image data has an alpha channel. + + + + X coordinate of upper left corner of region to update. + + + + Y coordinate of upper left corner of region to update. + + + + Width in pixels of region to update. + + + + Height in pixels of region to update. + + + + Distance in bytes between row starts on source buffer. + + + + bytes per pixel (Currently only 3 and 4 supported, + depending on @has_alpha) + + + + #ClutterTextureFlags + + + + + + Replaces the underlying Cogl material drawn by this actor with +@cogl_material. A reference to the material is taken so if the +handle is no longer needed it should be deref'd with +cogl_handle_unref. Texture data is attached to the material so +calling this function also replaces the Cogl +texture. #ClutterTexture requires that the material have a texture +layer so you should set one on the material before calling this +function. + No replacement is available; it's not advisable + to modify the Cogl pipeline of an actor. Use a #ClutterContent + implementation and modify the pipeline during the paint sequence + + + + + + A #ClutterTexture + + + + A CoglHandle for a material + + + + + + Replaces the underlying COGL texture drawn by this actor with +@cogl_tex. A reference to the texture is taken so if the handle is +no longer needed it should be deref'd with cogl_handle_unref. + No replacement available; it's not advisable to + modify the Cogl pipeline of an actor. Use a #ClutterContent + implementation and set up the pipeline during the paint sequence + instead. + + + + + + A #ClutterTexture + + + + A CoglHandle for a texture + + + + + + Sets the filter quality when scaling a texture. The quality is an +enumeration currently the following values are supported: +%CLUTTER_TEXTURE_QUALITY_LOW which is fast but only uses nearest neighbour +interpolation. %CLUTTER_TEXTURE_QUALITY_MEDIUM which is computationally a +bit more expensive (bilinear interpolation), and +%CLUTTER_TEXTURE_QUALITY_HIGH which uses extra texture memory resources to +improve scaled down rendering as well (by using mipmaps). The default value +is %CLUTTER_TEXTURE_QUALITY_MEDIUM. + Use #ClutterImage and clutter_actor_set_content_scaling_filters() + instead + + + + + + a #ClutterTexture + + + + new filter quality value + + + + + + Sets the #ClutterTexture image data from an image file. In case of +failure, %FALSE is returned and @error is set. + +If #ClutterTexture:load-async is set to %TRUE, this function +will return as soon as possible, and the actual image loading +from disk will be performed asynchronously. #ClutterTexture::size-change +will be emitten when the size of the texture is available and +#ClutterTexture::load-finished will be emitted when the image has been +loaded or if an error occurred. + Use #ClutterImage and platform-specific image + loading API, like GdkPixbuf, instead + + %TRUE if the image was successfully loaded and set + + + + + A #ClutterTexture + + + + The filename of the image in GLib file name encoding + + + + + + Sets #ClutterTexture image data. + Use #ClutterImage and clutter_image_set_data() instead + + %TRUE on success, %FALSE on failure. + + + + + a #ClutterTexture + + + + image data in RGBA type colorspace. + + + + + + set to %TRUE if image data has an alpha channel. + + + + width in pixels of image data. + + + + height in pixels of image data + + + + distance in bytes between row starts. + + + + bytes per pixel (currently only 3 and 4 supported, depending + on the value of @has_alpha) + + + + #ClutterTextureFlags + + + + + + Sets a #ClutterTexture from YUV image data. If an error occurred, +%FALSE is returned and @error is set. + +The YUV support depends on the driver; the format supported by the +few drivers exposing this capability are not really useful. + +The proper way to convert image data in any YUV colorspace to any +RGB colorspace is to use a fragment shader associated with the +#ClutterTexture material. + Use a custom #ClutterContent implementation and + set up the Cogl pipeline using a #ClutterPipelineNode with a + fragment shader instead. + + %TRUE if the texture was successfully updated + + + + + A #ClutterTexture + + + + Image data in YUV type colorspace. + + + + + + Width in pixels of image data. + + + + Height in pixels of image data + + + + #ClutterTextureFlags + + + + + + Sets whether @texture should have a preferred size maintaining +the aspect ratio of the underlying image + Use #ClutterImage and clutter_actor_set_content_gravity() + with %CLUTTER_CONTENT_GRAVITY_RESIZE_ASPECT instead + + + + + + a #ClutterTexture + + + + %TRUE to maintain aspect ratio + + + + + + Sets whether @texture should use a worker thread to load the data +from disk asynchronously. Setting @load_async to %TRUE will make +clutter_texture_set_from_file() return immediately. + +See the #ClutterTexture:load-async property documentation, and +clutter_texture_set_load_data_async(). + There is no direct replacement for this function. + Use #ClutterImage and platform-specific API for loading image data + asynchronously, like GdkPixbuf + + + + + + a #ClutterTexture + + + + %TRUE if the texture should asynchronously load data + from a filename + + + + + + Sets whether @texture should use a worker thread to load the data +from disk asynchronously. Setting @load_async to %TRUE will make +clutter_texture_set_from_file() block until the #ClutterTexture has +determined the width and height of the image data. + +See the #ClutterTexture:load-async property documentation, and +clutter_texture_set_load_async(). + There is no direct replacement for this function. + Use #ClutterImage and platform-specific API for loading image data + asynchronously, like GdkPixbuf + + + + + + a #ClutterTexture + + + + %TRUE if the texture should asynchronously load data + from a filename + + + + + + Sets whether @texture should have it's shape defined by the alpha +channel when picking. + +Be aware that this is a bit more costly than the default picking +due to the texture lookup, extra test against the alpha value and +the fact that it will also interrupt the batching of geometry done +internally. + +Also there is currently no control over the threshold used to +determine what value of alpha is considered pickable, and so only +fully opaque parts of the texture will react to picking. + There is no direct replacement for this function + + + + + + a #ClutterTexture + + + + %TRUE if the alpha channel should affect the + picking shape + + + + + + Sets whether the @texture should repeat horizontally or +vertically when the actor size is bigger than the image size + Use #ClutterImage and clutter_actor_set_content_repeat() + instead + + + + + + a #ClutterTexture + + + + %TRUE if the texture should repeat horizontally + + + + %TRUE if the texture should repeat vertically + + + + + + Sets whether @texture should have the same preferred size as the +underlying image data. + No replacement is available. A #ClutterActor using + #ClutterImage with a %CLUTTER_REQUEST_CONTENT_SIZE request mode + will automatically bind the preferred size of the content to the + preferred size of the actor + + + + + + a #ClutterTexture + + + + %TRUE if the texture should have the same size of the + underlying image data + + + + + + + + + + + + + + + The path of the file containing the image data to be displayed by +the texture. + +This property is unset when using the clutter_texture_set_from_*_data() +family of functions. + Use #ClutterImage and platform-specific image loading + API, like GdkPixbuf + + + + + + + + + + Tries to load a texture from a filename by using a local thread to perform +the read operations. The initially created texture has dimensions 0x0 when +the true size becomes available the #ClutterTexture::size-change signal is +emitted and when the image has completed loading the +#ClutterTexture::load-finished signal is emitted. + +Threading is only enabled if g_thread_init() has been called prior to +clutter_init(), otherwise #ClutterTexture will use the main loop to load +the image. + +The upload of the texture data on the GL pipeline is not asynchronous, as +it must be performed from within the same thread that called +clutter_main(). + Use platform-specific image loading API, like GdkPixbuf + + + + Like #ClutterTexture:load-async but loads the width and height +synchronously causing some blocking. + Use platform-specific image loading API, like GdkPixbuf + + + + + + + + + + + + + + + + + + + + + + + + + The ::load-finished signal is emitted when a texture load has +completed. If there was an error during loading, @error will +be set, otherwise it will be %NULL + No replacement is available + + + + + + A set error, or %NULL + + + + + + The ::pixbuf-change signal is emitted each time the pixbuf +used by @texture changes. + No replacement is available + + + + + + The ::size-change signal is emitted each time the size of the +pixbuf used by @texture changes. The new size is given as +argument to the callback. + No replacement is available + + + + + + the width of the new texture + + + + the height of the new texture + + + + + + + The #ClutterTextureClass structure contains only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Error enumeration for #ClutterTexture + + OOM condition + + + YUV operation attempted but no YUV support + found + + + The requested format for +clutter_texture_set_from_rgb_data or +clutter_texture_set_from_yuv_data is unsupported. + + + + + + + + + Flags for clutter_texture_set_from_rgb_data() and +clutter_texture_set_from_yuv_data(). + The #ClutterTexture class was the only user of + this API + + No flags + + + Unused flag + + + Unused flag + + + Unused flag + + + + The #ClutterTextNode structure is an opaque +type whose members cannot be directly accessed. + + Creates a new #ClutterPaintNode that will paint the passed @texture. + +This function will take a reference on @texture, so it is safe to +call cogl_object_unref() on @texture when it returns. + +The @color must not be pre-multiplied with its #ClutterColor.alpha +channel value; if @color is %NULL, a fully opaque white color will +be used for blending. + + the newly created #ClutterPaintNode. + Use clutter_paint_node_unref() when done + + + + + a #CoglTexture + + + + a #ClutterColor used for blending, or %NULL + + + + the minification filter for the texture + + + + the magnification filter for the texture + + + + + + + The `ClutterTextureNodeClass` structure is an +opaque type whose members cannot be directly accessed. + + + + + Enumaration controlling the texture quality. + The #ClutterTexture class was the only used ot + this API; use #ClutterImage and clutter_actor_set_content_scaling_filters() + instead. + + fastest rendering will use nearest neighbour + interpolation when rendering. good setting. + + + higher quality rendering without using + extra resources. + + + render the texture with the best quality + available using extra memory. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterTimeline structure contains only private data +and should be accessed using the provided API + + + Creates a new #ClutterTimeline with a duration of @msecs. + + the newly created #ClutterTimeline instance. Use + g_object_unref() when done using it + + + + + Duration of the timeline in milliseconds + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Adds a named marker that will be hit when the timeline has reached +the specified @progress. + +Markers are unique string identifiers for a given position on the +timeline. Once @timeline reaches the given @progress of its duration, +if will emit a ::marker-reached signal for each marker attached to +that particular point. + +A marker can be removed with clutter_timeline_remove_marker(). The +timeline can be advanced to a marker using +clutter_timeline_advance_to_marker(). + +See also: clutter_timeline_add_marker_at_time() + + + + + + a #ClutterTimeline + + + + the unique name for this marker + + + + the normalized value of the position of the martke + + + + + + Adds a named marker that will be hit when the timeline has been +running for @msecs milliseconds. + +Markers are unique string identifiers for a given position on the +timeline. Once @timeline reaches the given @msecs, it will emit +a ::marker-reached signal for each marker attached to that position. + +A marker can be removed with clutter_timeline_remove_marker(). The +timeline can be advanced to a marker using +clutter_timeline_advance_to_marker(). + +See also: clutter_timeline_add_marker() + + + + + + a #ClutterTimeline + + + + the unique name for this marker + + + + position of the marker in milliseconds + + + + + + Advance timeline to the requested point. The point is given as a +time in milliseconds since the timeline started. + +The @timeline will not emit the #ClutterTimeline::new-frame +signal for the given time. The first ::new-frame signal after the call to +clutter_timeline_advance() will be emit the skipped markers. + + + + + + A #ClutterTimeline + + + + Time to advance to + + + + + + Advances @timeline to the time of the given @marker_name. + +Like clutter_timeline_advance(), this function will not +emit the #ClutterTimeline::new-frame for the time where @marker_name +is set, nor it will emit #ClutterTimeline::marker-reached for +@marker_name. + + + + + + a #ClutterTimeline + + + + the name of the marker + + + + + + Create a new #ClutterTimeline instance which has property values +matching that of supplied timeline. The cloned timeline will not +be started and will not be positioned to the current position of +the original @timeline: you will have to start it with +clutter_timeline_start(). + +The only cloned properties are: + + - #ClutterTimeline:duration + - #ClutterTimeline:loop + - #ClutterTimeline:delay + - #ClutterTimeline:direction + Use clutter_timeline_new() or g_object_new() + instead + + a new #ClutterTimeline, cloned + from @timeline + + + + + #ClutterTimeline to duplicate. + + + + + + Retrieves the value set by clutter_timeline_set_auto_reverse(). + + %TRUE if the timeline should automatically reverse, and + %FALSE otherwise + + + + + a #ClutterTimeline + + + + + + Retrieves the control points for the cubic bezier progress mode. + + %TRUE if the @timeline is using a cubic bezier progress + more, and %FALSE otherwise + + + + + a #ClutterTimeline + + + + return location for the first control + point of the cubic bezier, or %NULL + + + + return location for the second control + point of the cubic bezier, or %NULL + + + + + + Retrieves the current repeat for a timeline. + +Repeats start at 0. + + the current repeat + + + + + a #ClutterTimeline + + + + + + Retrieves the delay set using clutter_timeline_set_delay(). + + the delay in milliseconds. + + + + + a #ClutterTimeline + + + + + + Retrieves the amount of time elapsed since the last +ClutterTimeline::new-frame signal. + +This function is only useful inside handlers for the ::new-frame +signal, and its behaviour is undefined if the timeline is not +playing. + + the amount of time in milliseconds elapsed since the +last frame + + + + + a #ClutterTimeline + + + + + + Retrieves the direction of the timeline set with +clutter_timeline_set_direction(). + + the direction of the timeline + + + + + a #ClutterTimeline + + + + + + Retrieves the duration of a #ClutterTimeline in milliseconds. +See clutter_timeline_set_duration(). + + the duration of the timeline, in milliseconds. + + + + + a #ClutterTimeline + + + + + + Retrieves the full duration of the @timeline, taking into account the +current value of the #ClutterTimeline:repeat-count property. + +If the #ClutterTimeline:repeat-count property is set to -1, this function +will return %G_MAXINT64. + +The returned value is to be considered a hint, and it's only valid +as long as the @timeline hasn't been changed. + + the full duration of the #ClutterTimeline + + + + + a #ClutterTimeline + + + + + + Request the current time position of the timeline. + + current elapsed time in milliseconds. + + + + + A #ClutterTimeline + + + + + + Gets whether @timeline is looping + Use clutter_timeline_get_repeat_count() instead. + + %TRUE if the timeline is looping + + + + + a #ClutterTimeline + + + + + + The position of the timeline in a normalized [-1, 2] interval. + +The return value of this function is determined by the progress +mode set using clutter_timeline_set_progress_mode(), or by the +progress function set using clutter_timeline_set_progress_func(). + + the normalized current position in the timeline. + + + + + a #ClutterTimeline + + + + + + Retrieves the progress mode set using clutter_timeline_set_progress_mode() +or clutter_timeline_set_progress_func(). + + a #ClutterAnimationMode + + + + + a #ClutterTimeline + + + + + + Retrieves the number set using clutter_timeline_set_repeat_count(). + + the number of repeats + + + + + a #ClutterTimeline + + + + + + Retrieves the parameters of the step progress mode used by @timeline. + + %TRUE if the @timeline is using a step progress + mode, and %FALSE otherwise + + + + + a #ClutterTimeline + + + + return location for the number of steps, or %NULL + + + + return location for the value change policy, + or %NULL + + + + + + Checks whether @timeline has a marker set with the given name. + + %TRUE if the marker was found + + + + + a #ClutterTimeline + + + + the name of the marker + + + + + + Queries state of a #ClutterTimeline. + + %TRUE if timeline is currently playing + + + + + A #ClutterTimeline + + + + + + Retrieves the list of markers at time @msecs. If @msecs is a +negative integer, all the markers attached to @timeline will be +returned. + + + a newly allocated, %NULL terminated string array containing the names + of the markers. Use g_strfreev() when done. + + + + + + + a #ClutterTimeline + + + + the time to check, or -1 + + + + the number of markers returned + + + + + + Pauses the #ClutterTimeline on current frame + + + + + + A #ClutterTimeline + + + + + + Removes @marker_name, if found, from @timeline. + + + + + + a #ClutterTimeline + + + + the name of the marker to remove + + + + + + Rewinds #ClutterTimeline to the first frame if its direction is +%CLUTTER_TIMELINE_FORWARD and the last frame if it is +%CLUTTER_TIMELINE_BACKWARD. + + + + + + A #ClutterTimeline + + + + + + Sets whether @timeline should reverse the direction after the +emission of the #ClutterTimeline::completed signal. + +Setting the #ClutterTimeline:auto-reverse property to %TRUE is the +equivalent of connecting a callback to the #ClutterTimeline::completed +signal and changing the direction of the timeline from that callback; +for instance, this code: + +|[ +static void +reverse_timeline (ClutterTimeline *timeline) +{ + ClutterTimelineDirection dir = clutter_timeline_get_direction (timeline); + + if (dir == CLUTTER_TIMELINE_FORWARD) + dir = CLUTTER_TIMELINE_BACKWARD; + else + dir = CLUTTER_TIMELINE_FORWARD; + + clutter_timeline_set_direction (timeline, dir); +} +... + timeline = clutter_timeline_new (1000); + clutter_timeline_set_repeat_count (timeline, -1); + g_signal_connect (timeline, "completed", + G_CALLBACK (reverse_timeline), + NULL); +]| + +can be effectively replaced by: + +|[ + timeline = clutter_timeline_new (1000); + clutter_timeline_set_repeat_count (timeline, -1); + clutter_timeline_set_auto_reverse (timeline); +]| + + + + + + a #ClutterTimeline + + + + %TRUE if the @timeline should reverse the direction + + + + + + Sets the #ClutterTimeline:progress-mode of @timeline +to %CLUTTER_CUBIC_BEZIER, and sets the two control +points for the cubic bezier. + +The cubic bezier curve is between (0, 0) and (1, 1). The X coordinate +of the two control points must be in the [ 0, 1 ] range, while the +Y coordinate of the two control points can exceed this range. + + + + + + a #ClutterTimeline + + + + the first control point for the cubic bezier + + + + the second control point for the cubic bezier + + + + + + Sets the delay, in milliseconds, before @timeline should start. + + + + + + a #ClutterTimeline + + + + delay in milliseconds + + + + + + Sets the direction of @timeline, either %CLUTTER_TIMELINE_FORWARD or +%CLUTTER_TIMELINE_BACKWARD. + + + + + + a #ClutterTimeline + + + + the direction of the timeline + + + + + + Sets the duration of the timeline, in milliseconds. The speed +of the timeline depends on the ClutterTimeline:fps setting. + + + + + + a #ClutterTimeline + + + + duration of the timeline in milliseconds + + + + + + Sets whether @timeline should loop. + +This function is equivalent to calling clutter_timeline_set_repeat_count() +with -1 if @loop is %TRUE, and with 0 if @loop is %FALSE. + Use clutter_timeline_set_repeat_count() instead. + + + + + + a #ClutterTimeline + + + + %TRUE for enable looping + + + + + + Sets a custom progress function for @timeline. The progress function will +be called by clutter_timeline_get_progress() and will be used to compute +the progress value based on the elapsed time and the total duration of the +timeline. + +If @func is not %NULL, the #ClutterTimeline:progress-mode property will +be set to %CLUTTER_CUSTOM_MODE. + +If @func is %NULL, any previously set progress function will be unset, and +the #ClutterTimeline:progress-mode property will be set to %CLUTTER_LINEAR. + + + + + + a #ClutterTimeline + + + + a progress function, or %NULL + + + + data to pass to @func + + + + a function to be called when the progress function is removed + or the timeline is disposed + + + + + + Sets the progress function using a value from the #ClutterAnimationMode +enumeration. The @mode cannot be %CLUTTER_CUSTOM_MODE or bigger than +%CLUTTER_ANIMATION_LAST. + + + + + + a #ClutterTimeline + + + + the progress mode, as a #ClutterAnimationMode + + + + + + Sets the number of times the @timeline should repeat. + +If @count is 0, the timeline never repeats. + +If @count is -1, the timeline will always repeat until +it's stopped. + + + + + + a #ClutterTimeline + + + + the number of times the timeline should repeat + + + + + + Sets the #ClutterTimeline:progress-mode of the @timeline to %CLUTTER_STEPS +and provides the parameters of the step function. + + + + + + a #ClutterTimeline + + + + the number of steps + + + + whether the change should happen at the start + or at the end of the step + + + + + + Advance timeline by the requested time in milliseconds + + + + + + A #ClutterTimeline + + + + Amount of time to skip + + + + + + Starts the #ClutterTimeline playing. + + + + + + A #ClutterTimeline + + + + + + Stops the #ClutterTimeline and moves to frame 0 + + + + + + A #ClutterTimeline + + + + + + If the direction of the timeline should be automatically reversed +when reaching the end. + + + + A delay, in milliseconds, that should be observed by the +timeline before actually starting. + + + + The direction of the timeline, either %CLUTTER_TIMELINE_FORWARD or +%CLUTTER_TIMELINE_BACKWARD. + + + + Duration of the timeline in milliseconds, depending on the +ClutterTimeline:fps value. + + + + Whether the timeline should automatically rewind and restart. + +As a side effect, setting this property to %TRUE will set the +#ClutterTimeline:repeat-count property to -1, while setting this +property to %FALSE will set the #ClutterTimeline:repeat-count +property to 0. + Use the #ClutterTimeline:repeat-count property instead. + + + + Controls the way a #ClutterTimeline computes the normalized progress. + + + + Defines how many times the timeline should repeat. + +If the repeat count is 0, the timeline does not repeat. + +If the repeat count is set to -1, the timeline will repeat until it is +stopped. + + + + + + + + + + The #ClutterTimeline::completed signal is emitted when the timeline's +elapsed time reaches the value of the #ClutterTimeline:duration +property. + +This signal will be emitted even if the #ClutterTimeline is set to be +repeating. + +If you want to get notification on whether the #ClutterTimeline has +been stopped or has finished its run, including its eventual repeats, +you should use the #ClutterTimeline::stopped signal instead. + + + + + + The ::marker-reached signal is emitted each time a timeline +reaches a marker set with +clutter_timeline_add_marker_at_time(). This signal is detailed +with the name of the marker as well, so it is possible to connect +a callback to the ::marker-reached signal for a specific marker +with: + +<informalexample><programlisting> + clutter_timeline_add_marker_at_time (timeline, "foo", 500); + clutter_timeline_add_marker_at_time (timeline, "bar", 750); + + g_signal_connect (timeline, "marker-reached", + G_CALLBACK (each_marker_reached), NULL); + g_signal_connect (timeline, "marker-reached::foo", + G_CALLBACK (foo_marker_reached), NULL); + g_signal_connect (timeline, "marker-reached::bar", + G_CALLBACK (bar_marker_reached), NULL); +</programlisting></informalexample> + +In the example, the first callback will be invoked for both +the "foo" and "bar" marker, while the second and third callbacks +will be invoked for the "foo" or "bar" markers, respectively. + + + + + + the name of the marker reached + + + + the elapsed time + + + + + + The ::new-frame signal is emitted for each timeline running +timeline before a new frame is drawn to give animations a chance +to update the scene. + + + + + + the elapsed time between 0 and duration + + + + + + The ::paused signal is emitted when clutter_timeline_pause() is invoked. + + + + + + The ::started signal is emitted when the timeline starts its run. +This might be as soon as clutter_timeline_start() is invoked or +after the delay set in the ClutterTimeline:delay property has +expired. + + + + + + The #ClutterTimeline::stopped signal is emitted when the timeline +has been stopped, either because clutter_timeline_stop() has been +called, or because it has been exhausted. + +This is different from the #ClutterTimeline::completed signal, +which gets emitted after every repeat finishes. + +If the #ClutterTimeline has is marked as infinitely repeating, +this signal will never be emitted. + + + + + + %TRUE if the signal was emitted at the end of the + timeline. + + + + + + + The #ClutterTimelineClass structure contains only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The direction of a #ClutterTimeline + + forward direction for a timeline + + + backward direction for a timeline + + + + + + A function for defining a custom progress. + + the progress, as a floating point value between -1.0 and 2.0. + + + + + a #ClutterTimeline + + + + the elapsed time, in milliseconds + + + + the total duration of the timeline, in milliseconds, + + + + data passed to the function + + + + + + #ClutterTimeoutPool is an opaque structure +whose members cannot be directly accessed. + + Sets a function to be called at regular intervals, and puts it inside +the @pool. The function is repeatedly called until it returns %FALSE, +at which point the timeout is automatically destroyed and the function +won't be called again. If @notify is not %NULL, the @notify function +will be called. The first call to @func will be at the end of @interval. + +Since Clutter 0.8 this will try to compensate for delays. For +example, if @func takes half the interval time to execute then the +function will be called again half the interval time after it +finished. Before version 0.8 it would not fire until a full +interval after the function completes so the delay between calls +would be @interval * 1.5. This function does not however try to +invoke the function multiple times to catch up missing frames if +@func takes more than @interval ms to execute. + There is no direct replacement for this API + + the ID (greater than 0) of the timeout inside the pool. + Use clutter_timeout_pool_remove() to stop the timeout. + + + + + a #ClutterTimeoutPool + + + + the time between calls to the function, in frames per second + + + + function to call + + + + data to pass to the function, or %NULL + + + + function to call when the timeout is removed, or %NULL + + + + + + Removes a timeout function with @id_ from the timeout pool. The id +is the same returned when adding a function to the timeout pool with +clutter_timeout_pool_add(). + There is no direct replacement for this API + + + + + + a #ClutterTimeoutPool + + + + the id of the timeout to remove + + + + + + Creates a new timeout pool source. A timeout pool should be used when +multiple timeout functions, running at the same priority, are needed and +the g_timeout_add() API might lead to starvation of the time slice of +the main loop. A timeout pool allocates a single time slice of the main +loop and runs every timeout function inside it. The timeout pool is +always sorted, so that the extraction of the next timeout function is +a constant time operation. + There is no direct replacement for this API + + the newly created #ClutterTimeoutPool. The created pool + is owned by the GLib default context and will be automatically + destroyed when the context is destroyed. It is possible to force + the destruction of the timeout pool using g_source_destroy() + + + + + the priority of the timeout pool. Typically this will + be #G_PRIORITY_DEFAULT + + + + + + + + + + + + + + + + Used for touch events. + +The @type field will be one of %CLUTTER_TOUCH_BEGIN, %CLUTTER_TOUCH_END, +%CLUTTER_TOUCH_UPDATE, or %CLUTTER_TOUCH_CANCEL. + +Touch events are grouped into sequences; each touch sequence will begin +with a %CLUTTER_TOUCH_BEGIN event, progress with %CLUTTER_TOUCH_UPDATE +events, and end either with a %CLUTTER_TOUCH_END event or with a +%CLUTTER_TOUCH_CANCEL event. + +With multi-touch capable devices there can be multiple event sequence +running at the same time. + + event type + + + + event time + + + + event flags + + + + event source stage + + + + event source actor (unused) + + + + the X coordinate of the pointer, relative to the stage + + + + the Y coordinate of the pointer, relative to the stage + + + + the event sequence that this event belongs to + + + + a bit-mask representing the state + of modifier keys (e.g. Control, Shift, and Alt) and the pointer + buttons. See #ClutterModifierType + + + + reserved + + + + the device that originated the event. If you want the physical +device the event originated from, use clutter_event_get_source_device() + + + + + The phase of a touchpad gesture event. All gestures are guaranteed to +begin with an event of type %CLUTTER_TOUCHPAD_GESTURE_PHASE_BEGIN, +followed by a number of %CLUTTER_TOUCHPAD_GESTURE_PHASE_UPDATE (possibly 0). + +A finished gesture may have 2 possible outcomes, an event with phase +%CLUTTER_TOUCHPAD_GESTURE_PHASE_END will be emitted when the gesture is +considered successful, this should be used as the hint to perform any +permanent changes. + +Cancelled gestures may be so for a variety of reasons, due to hardware, +or due to the gesture recognition layers hinting the gesture did not +finish resolutely (eg. a 3rd finger being added during a pinch gesture). +In these cases, the last event with report the phase +%CLUTTER_TOUCHPAD_GESTURE_PHASE_CANCEL, this should be used as a hint +to undo any visible/permanent changes that were done throughout the +progress of the gesture. + +See also #ClutterTouchpadPinchEvent and #ClutterTouchpadPinchEvent. + + The gesture has begun. + + + The gesture has been updated. + + + The gesture was finished, changes + should be permanently applied. + + + The gesture was cancelled, all + changes should be undone. + + + + + + + + + + Used for touchpad pinch gesture events. The current state of the +gesture will be determined by the @phase field. + +Each event with phase %CLUTTER_TOUCHPAD_GESTURE_PHASE_BEGIN +will report a @scale of 1.0, all later phases in the gesture +report the current scale relative to the initial 1.0 value +(eg. 0.5 being half the size, 2.0 twice as big). + + event type + + + + event time + + + + event flags + + + + event source stage + + + + event source actor (unused) + + + + the current phase of the gesture + + + + the X coordinate of the pointer, relative to the stage + + + + the Y coordinate of the pointer, relative to the stage + + + + movement delta of the pinch focal point in the X axis + + + + movement delta of the pinch focal point in the Y axis + + + + angle delta in degrees, clockwise rotations are + represented by positive deltas + + + + the current scale + + + + + + + + Used for touchpad swipe gesture events. The current state of the +gesture will be determined by the @phase field. + + event type + + + + event time + + + + event flags + + + + event source stage + + + + event source actor (unused) + + + + the current phase of the gesture + + + + the number of fingers triggering the swipe + + + + the X coordinate of the pointer, relative to the stage + + + + the Y coordinate of the pointer, relative to the stage + + + + movement delta of the pinch focal point in the X axis + + + + movement delta of the pinch focal point in the Y axis + + + + + + + + + + + The #ClutterTransition structure contains private +data and should only be accessed using the provided API. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Retrieves the #ClutterAnimatable set using clutter_transition_set_animatable(). + + a #ClutterAnimatable, or %NULL; the returned + animatable is owned by the #ClutterTransition, and it should not be freed + directly. + + + + + a #ClutterTransition + + + + + + Retrieves the interval set using clutter_transition_set_interval() + + a #ClutterInterval, or %NULL; the returned + interval is owned by the #ClutterTransition and it should not be freed + directly + + + + + a #ClutterTransition + + + + + + Retrieves the value of the #ClutterTransition:remove-on-complete property. + + %TRUE if the @transition should be detached when complete, + and %FALSE otherwise + + + + + a #ClutterTransition + + + + + + Sets the #ClutterTransition:animatable property. + +The @transition will acquire a reference to the @animatable instance, +and will call the #ClutterTransitionClass.attached() virtual function. + +If an existing #ClutterAnimatable is attached to @transition, the +reference will be released, and the #ClutterTransitionClass.detached() +virtual function will be called. + + + + + + a #ClutterTransition + + + + a #ClutterAnimatable, or %NULL + + + + + + Sets the initial value of the transition. + +This is a convenience function that will either create the +#ClutterInterval used by @transition, or will update it if +the #ClutterTransition:interval is already set. + +If @transition already has a #ClutterTransition:interval set, +then @value must hold the same type, or a transformable type, +as the interval's #ClutterInterval:value-type property. + +This is a convenience function for the C API; language bindings +should use clutter_transition_set_from_value() instead. + + + + + + a #ClutterTransition + + + + the type of the value to set + + + + the initial value + + + + + + Sets the initial value of the transition. + +This is a convenience function that will either create the +#ClutterInterval used by @transition, or will update it if +the #ClutterTransition:interval is already set. + +This function will copy the contents of @value, so it is +safe to call g_value_unset() after it returns. + +If @transition already has a #ClutterTransition:interval set, +then @value must hold the same type, or a transformable type, +as the interval's #ClutterInterval:value-type property. + +This function is meant to be used by language bindings. + + + + + + a #ClutterTransition + + + + a #GValue with the initial value of the transition + + + + + + Sets the #ClutterTransition:interval property using @interval. + +The @transition will acquire a reference on the @interval, sinking +the floating flag on it if necessary. + + + + + + a #ClutterTransition + + + + a #ClutterInterval, or %NULL + + + + + + Sets whether @transition should be detached from the #ClutterAnimatable +set using clutter_transition_set_animatable() when the +#ClutterTimeline::completed signal is emitted. + + + + + + a #ClutterTransition + + + + whether to detach @transition when complete + + + + + + Sets the final value of the transition. + +This is a convenience function that will either create the +#ClutterInterval used by @transition, or will update it if +the #ClutterTransition:interval is already set. + +If @transition already has a #ClutterTransition:interval set, +then @value must hold the same type, or a transformable type, +as the interval's #ClutterInterval:value-type property. + +This is a convenience function for the C API; language bindings +should use clutter_transition_set_to_value() instead. + + + + + + a #ClutterTransition + + + + the type of the value to set + + + + the final value + + + + + + Sets the final value of the transition. + +This is a convenience function that will either create the +#ClutterInterval used by @transition, or will update it if +the #ClutterTransition:interval is already set. + +This function will copy the contents of @value, so it is +safe to call g_value_unset() after it returns. + +If @transition already has a #ClutterTransition:interval set, +then @value must hold the same type, or a transformable type, +as the interval's #ClutterInterval:value-type property. + +This function is meant to be used by language bindings. + + + + + + a #ClutterTransition + + + + a #GValue with the final value of the transition + + + + + + The #ClutterAnimatable instance currently being animated. + + + + The #ClutterInterval used to describe the initial and final states +of the transition. + + + + Whether the #ClutterTransition should be automatically detached +from the #ClutterTransition:animatable instance whenever the +#ClutterTimeline::stopped signal is emitted. + +The #ClutterTransition:remove-on-complete property takes into +account the value of the #ClutterTimeline:repeat-count property, +and it only detaches the transition if the transition is not +repeating. + + + + + + + + + + + The #ClutterTransitionClass structure contains +private data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterTransitionGroup structure contains +private data and should only be accessed using the provided API. + + + Creates a new #ClutterTransitionGroup instance. + + the newly created #ClutterTransitionGroup. Use + g_object_unref() when done to deallocate the resources it + uses + + + + + Adds @transition to @group. + +This function acquires a reference on @transition that will be released +when calling clutter_transition_group_remove_transition(). + + + + + + a #ClutterTransitionGroup + + + + a #ClutterTransition + + + + + + Removes all transitions from @group. + +This function releases the reference acquired when calling +clutter_transition_group_add_transition(). + + + + + + a #ClutterTransitionGroup + + + + + + Removes @transition from @group. + +This function releases the reference acquired on @transition when +calling clutter_transition_group_add_transition(). + + + + + + a #ClutterTransitionGroup + + + + a #ClutterTransition + + + + + + + + + + + + + The #ClutterTransitionGroupClass structure +contains only private data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The type of unit in which a value is expressed + +This enumeration might be expanded at later date + + Unit expressed in pixels (with subpixel precision) + + + Unit expressed in em + + + Unit expressed in millimeters + + + Unit expressed in points + + + Unit expressed in centimeters + + + + An opaque structure, to be used to store sizing and positioning +values along with their unit. + + + + + + + + + + + + + + + + + + + + + + + Copies @units + + the newly created copy of a + #ClutterUnits structure. Use clutter_units_free() to free + the allocated resources + + + + + the #ClutterUnits to copy + + + + + + Frees the resources allocated by @units + +You should only call this function on a #ClutterUnits +created using clutter_units_copy() + + + + + + the #ClutterUnits to free + + + + + + Retrieves the unit type of the value stored inside @units + + a unit type + + + + + a #ClutterUnits + + + + + + Retrieves the value stored inside @units + + the value stored inside a #ClutterUnits + + + + + a #ClutterUnits + + + + + + Converts a value in #ClutterUnits to pixels + + the value in pixels + + + + + units to convert + + + + + + Converts @units into a string + +See clutter_units_from_string() for the units syntax and for +examples of output + +Fractional values are truncated to the second decimal +position for em, mm and cm, and to the first decimal position for +typographic points. Pixels are integers. + + a newly allocated string containing the encoded + #ClutterUnits value. Use g_free() to free the string + + + + + a #ClutterUnits + + + + + + Stores a value in centimeters inside @units + + + + + + a #ClutterUnits + + + + centimeters + + + + + + Stores a value in em inside @units, using the default font +name as returned by clutter_backend_get_font_name() + + + + + + a #ClutterUnits + + + + em + + + + + + Stores a value in em inside @units using @font_name + + + + + + a #ClutterUnits + + + + the font name and size + + + + em + + + + + + Stores a value in millimiters inside @units + + + + + + a #ClutterUnits + + + + millimeters + + + + + + Stores a value in pixels inside @units + + + + + + a #ClutterUnits + + + + pixels + + + + + + Stores a value in typographic points inside @units + + + + + + a #ClutterUnits + + + + typographic points + + + + + + Parses a value and updates @units with it + +A #ClutterUnits expressed in string should match: + +|[ + units: wsp* unit-value wsp* unit-name? wsp* + unit-value: number + unit-name: 'px' | 'pt' | 'mm' | 'em' | 'cm' + number: digit+ + | digit* sep digit+ + sep: '.' | ',' + digit: '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' + wsp: (#0x20 | #0x9 | #0xA | #0xB | #0xC | #0xD)+ +]| + +For instance, these are valid strings: + +|[ + 10 px + 5.1 em + 24 pt + 12.6 mm + .3 cm +]| + +While these are not: + +|[ + 42 cats + omg!1!ponies +]| + +If no unit is specified, pixels are assumed. + + %TRUE if the string was successfully parsed, + and %FALSE otherwise + + + + + a #ClutterUnits + + + + the string to convert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The full version of the Clutter library, like 1.2.3 + + + + Numerically encoded version of the Clutter library, like 0x010203 + + + + The full version of the Clutter library, in string form (suited for +string concatenation) + + + + + + + A point in 3D space, expressed in pixels + + X coordinate of the vertex + + + + Y coordinate of the vertex + + + + Z coordinate of the vertex + + + + Allocates a new, empty #ClutterVertex. + + the newly allocated #ClutterVertex. + Use clutter_vertex_free() to free its resources + + + + + Creates a new #ClutterVertex for the point in 3D space +identified by the 3 coordinates @x, @y, @z. + +This function is the logical equivalent of: + +|[ + clutter_vertex_init (clutter_vertex_alloc (), x, y, z); +]| + + the newly allocated #ClutterVertex. + Use clutter_vertex_free() to free the resources + + + + + X coordinate + + + + Y coordinate + + + + Z coordinate + + + + + + Copies @vertex + + a newly allocated copy of #ClutterVertex. + Use clutter_vertex_free() to free the allocated resources + + + + + a #ClutterVertex + + + + + + Compares @vertex_a and @vertex_b for equality + + %TRUE if the passed #ClutterVertex are equal + + + + + a #ClutterVertex + + + + a #ClutterVertex + + + + + + Frees a #ClutterVertex allocated using clutter_vertex_alloc() or +clutter_vertex_copy(). + + + + + + a #ClutterVertex + + + + + + Initializes @vertex with the given coordinates. + + the initialized #ClutterVertex + + + + + a #ClutterVertex + + + + X coordinate + + + + Y coordinate + + + + Z coordinate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets the device manager of this virtual device. + + The #ClutterDeviceManager of this virtual device + + + + + a virtual device + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterZoomAction structure contains only +private data and should be accessed using the provided API + + Creates a new #ClutterZoomAction instance + + the newly created #ClutterZoomAction + + + + + + + + + + + + + + + + + + + + + + + + Retrieves the focal point of the current zoom + + + + + + a #ClutterZoomAction + + + + a #ClutterPoint + + + + + + Retrieves the focal point relative to the actor's coordinates of +the current zoom + + + + + + a #ClutterZoomAction + + + + a #ClutterPoint + + + + + + Retrieves the axis constraint set by clutter_zoom_action_set_zoom_axis() + + the axis constraint + + + + + a #ClutterZoomAction + + + + + + Restricts the zooming action to a specific axis + + + + + + a #ClutterZoomAction + + + + the axis to constraint the zooming to + + + + + + Constraints the zooming action to the specified axis + + + + + + + + + + The ::zoom signal is emitted for each series of touch events that +change the distance and focal point between the touch points. + +The default handler of the signal will call +clutter_actor_set_scale() on @actor using the ratio of the first +distance between the touch points and the current distance. To +override the default behaviour, connect to this signal and return +%FALSE. + + %TRUE if the zoom should continue, and %FALSE if + the zoom should be cancelled. + + + + + the #ClutterActor attached to the action + + + + the focal point of the zoom + + + + the initial distance between the 2 touch points + + + + + + + The #ClutterZoomActionClass structure contains +only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The axis of the constraint that should be applied by the +zooming action. + + Scale only on the X axis + + + Scale only on the Y axis + + + Scale on both axis + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Allocates a new #ClutterActorBox. + + the newly allocated #ClutterActorBox. + Use clutter_actor_box_free() to free its resources + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Utility function to clear a Cairo context. + + + + + + a Cairo context + + + + + + Utility function for setting the source color of @cr using +a #ClutterColor. This function is the equivalent of: + +|[ + cairo_set_source_rgba (cr, + color->red / 255.0, + color->green / 255.0, + color->blue / 255.0, + color->alpha / 255.0); +]| + + + + + + a Cairo context + + + + a #ClutterColor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Run-time version check, to check the version the Clutter library +that an application is currently linked against + +This is the run-time equivalent of the compile-time %CLUTTER_CHECK_VERSION +pre-processor macro + + %TRUE if the version of the Clutter library is + greater than (@major, @minor, @micro), and %FALSE otherwise + + + + + major version, like 1 in 1.2.3 + + + + minor version, like 2 in 1.2.3 + + + + micro version, like 3 in 1.2.3 + + + + + + Checks the run-time name of the Clutter windowing system backend, using +the symbolic macros like %CLUTTER_WINDOWING_X11. + +This function should be used in conjuction with the compile-time macros +inside applications and libraries that are using the platform-specific +windowing system API, to ensure that they are running on the correct +windowing system; for instance: + +|[ +#ifdef CLUTTER_WINDOWING_X11 + if (clutter_check_windowing_backend (CLUTTER_WINDOWING_X11)) + { + // it is safe to use the clutter_x11_* API + } + else +#endif + g_error ("Unknown Clutter backend."); +]| + + %TRUE if the current Clutter windowing system backend is + the one checked, and %FALSE otherwise + + + + + the name of the backend to check + + + + + + + + + + + + + + + Clears the internal cache of glyphs used by the Pango +renderer. This will free up some memory and GL texture +resources. The cache will be automatically refilled as more text is +drawn. + Use clutter_get_font_map() and + cogl_pango_font_map_clear_glyph_cache() instead. + + + + + + + + + + + + Converts a color expressed in HLS (hue, luminance and saturation) +values into a #ClutterColor. + + + + + + return location for a #ClutterColor + + + + hue value, in the 0 .. 360 range + + + + luminance value, in the 0 .. 1 range + + + + saturation value, in the 0 .. 1 range + + + + + + Converts @pixel from the packed representation of a four 8 bit channel +color to a #ClutterColor. + + + + + + return location for a #ClutterColor + + + + a 32 bit packed integer containing a color + + + + + + Parses a string definition of a color, filling the #ClutterColor.red, +#ClutterColor.green, #ClutterColor.blue and #ClutterColor.alpha fields +of @color. + +The @color is not allocated. + +The format of @str can be either one of: + + - a standard name (as taken from the X11 rgb.txt file) + - an hexadecimal value in the form: `#rgb`, `#rrggbb`, `#rgba`, or `#rrggbbaa` + - a RGB color in the form: `rgb(r, g, b)` + - a RGB color in the form: `rgba(r, g, b, a)` + - a HSL color in the form: `hsl(h, s, l)` + -a HSL color in the form: `hsla(h, s, l, a)` + +where 'r', 'g', 'b' and 'a' are (respectively) the red, green, blue color +intensities and the opacity. The 'h', 's' and 'l' are (respectively) the +hue, saturation and luminance values. + +In the rgb() and rgba() formats, the 'r', 'g', and 'b' values are either +integers between 0 and 255, or percentage values in the range between 0% +and 100%; the percentages require the '%' character. The 'a' value, if +specified, can only be a floating point value between 0.0 and 1.0. + +In the hls() and hlsa() formats, the 'h' value (hue) is an angle between +0 and 360.0 degrees; the 'l' and 's' values (luminance and saturation) are +percentage values in the range between 0% and 100%. The 'a' value, if specified, +can only be a floating point value between 0.0 and 1.0. + +Whitespace inside the definitions is ignored; no leading whitespace +is allowed. + +If the alpha component is not specified then it is assumed to be set to +be fully opaque. + + %TRUE if parsing succeeded, and %FALSE otherwise + + + + + return location for a #ClutterColor + + + + a string specifiying a color + + + + + + Retrieves a static color for the given @color name + +Static colors are created by Clutter and are guaranteed to always be +available and valid + + a pointer to a static color; the returned pointer + is owned by Clutter and it should never be modified or freed + + + + + the named global color + + + + + + + + + Looks up the #GParamSpec for a child property of @klass. + + The #GParamSpec for the property or %NULL + if no such property exist. + + + + + a #GObjectClass implementing the #ClutterContainer interface. + + + + a property name. + + + + + + Returns an array of #GParamSpec for all child properties. + + an array + of #GParamSpec<!-- -->s which should be freed after use. + + + + + + + a #GObjectClass implementing the #ClutterContainer interface. + + + + return location for length of returned array. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Disable loading the accessibility support. It has the same effect +as setting the environment variable +CLUTTER_DISABLE_ACCESSIBILITY. For the same reason, this method +should be called before clutter_init(). + + + + + + + + + Processes an event. + +The @event must be a valid #ClutterEvent and have a #ClutterStage +associated to it. + +This function is only useful when embedding Clutter inside another +toolkit, and it should never be called by applications. + + + + + + a #ClutterEvent. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Adds a function which will be called for all events that Clutter +processes. The function will be called before any signals are +emitted for the event and it will take precedence over any grabs. + + an identifier for the event filter, to be used + with clutter_event_remove_filter(). + + + + + The #ClutterStage to capture events for + + + + The callback function which will be passed all events. + + + + A #GDestroyNotify + + + + A data pointer to pass to the function. + + + + + + Pops an event off the event queue. Applications should not need to call +this. + + A #ClutterEvent or NULL if queue empty + + + + + Returns a pointer to the first event from the event queue but +does not remove it. + + A #ClutterEvent or NULL if queue empty. + + + + + Removes an event filter that was previously added with +clutter_event_add_filter(). + + + + + + The ID of the event filter, as returned from clutter_event_add_filter() + + + + + + Checks if events are pending in the event queue. + + TRUE if there are pending events, FALSE otherwise. + + + + + + + + + + + + + + + + + + + + Checks whether @feature is available. @feature can be a logical +OR of #ClutterFeatureFlags. + + %TRUE if a feature is available + + + + + a #ClutterFeatureFlags + + + + + + Returns all the supported features. + + a logical OR of all the supported features. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Simple wrapper around clutter_frame_source_add_full(). + There is no direct replacement for this API + + the ID (greater than 0) of the event source. + + + + + the number of times per second to call the function + + + + function to call + + + + data to pass to the function + + + + + + Sets a function to be called at regular intervals with the given +priority. The function is called repeatedly until it returns +%FALSE, at which point the timeout is automatically destroyed and +the function will not be called again. The @notify function is +called when the timeout is destroyed. The first call to the +function will be at the end of the first @interval. + +This function is similar to g_timeout_add_full() except that it +will try to compensate for delays. For example, if @func takes half +the interval time to execute then the function will be called again +half the interval time after it finished. In contrast +g_timeout_add_full() would not fire until a full interval after the +function completes so the delay between calls would be 1.0 / @fps * +1.5. This function does not however try to invoke the function +multiple times to catch up missing frames if @func takes more than +@interval ms to execute. + There is no direct replacement for this API. + + the ID (greater than 0) of the event source. + + + + + the priority of the frame source. Typically this will be in the + range between %G_PRIORITY_DEFAULT and %G_PRIORITY_HIGH. + + + + the number of times per second to call the function + + + + function to call + + + + data to pass to the function + + + + function to call when the timeout source is removed + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns whether Clutter has accessibility support enabled. As +least, a value of TRUE means that there are a proper AtkUtil +implementation available + + %TRUE if Clutter has accessibility support enabled + + + + + Retrieves the #ClutterActor with @id_. + The id is deprecated, and this function always returns + %NULL. Use the proper scene graph API in #ClutterActor to find a child + of the stage. + + the actor with the passed id or %NULL. + The returned actor does not have its reference count increased. + + + + + a #ClutterActor unique id. + + + + + + If an event is currently being processed, return that event. +This function is intended to be used to access event state +that might not be exposed by higher-level widgets. For +example, to get the key modifier state from a Button 'clicked' +event. + + The current ClutterEvent, or %NULL if none + + + + + Retrieves the timestamp of the last event, if there is an +event or if the event has a timestamp. + + the event timestamp, or %CLUTTER_CURRENT_TIME + + + + + Check if Clutter has debugging enabled. + This function does not do anything. + + %FALSE + + + + + Retrieves the default #ClutterBackend used by Clutter. The +#ClutterBackend holds backend-specific configuration options. + + the default backend. You should + not ref or unref the returned object. Applications should rarely + need to use this. + + + + + Retrieves the default frame rate. See clutter_set_default_frame_rate(). + + the default frame rate + + + + + Retrieves the default direction for the text. The text direction is +determined by the locale and/or by the `CLUTTER_TEXT_DIRECTION` +environment variable. + +The default text direction can be overridden on a per-actor basis by using +clutter_actor_set_text_direction(). + + the default text direction + + + + + Gets the current font flags for rendering text. See +clutter_set_font_flags(). + Use clutter_backend_get_font_options() and the + #cairo_font_options_t API. + + The font flags + + + + + Retrieves the #PangoFontMap instance used by Clutter. +You can use the global font map object with the COGL +Pango API. + + the #PangoFontMap instance. The returned + value is owned by Clutter and it should never be unreferenced. + + + + + Retrieves the #ClutterInputDevice from its @id_. This is a convenience +wrapper for clutter_device_manager_get_device() and it is functionally +equivalent to: + +|[ + ClutterDeviceManager *manager; + ClutterInputDevice *device; + + manager = clutter_device_manager_get_default (); + device = clutter_device_manager_get_device (manager, id); +]| + Use clutter_device_manager_get_device() instead. + + a #ClutterInputDevice, or %NULL + + + + + the unique id for a device + + + + + + Queries the current keyboard grab of clutter. + + the actor currently holding the keyboard grab, or NULL if there is no grab. + + + + + Gets whether the per-actor motion events are enabled. + Use clutter_stage_get_motion_events_enabled() instead. + + %TRUE if the motion events are enabled + + + + + Returns a #GOptionGroup for the command line arguments recognized +by Clutter. You should add this group to your #GOptionContext with +g_option_context_add_group(), if you are using g_option_context_parse() +to parse your commandline arguments. + +Calling g_option_context_parse() with Clutter's #GOptionGroup will result +in Clutter's initialization. That is, the following code: + +|[ + g_option_context_set_main_group (context, clutter_get_option_group ()); + res = g_option_context_parse (context, &argc, &argc, NULL); +]| + +is functionally equivalent to: + +|[ + clutter_init (&argc, &argv); +]| + +After g_option_context_parse() on a #GOptionContext containing the +Clutter #GOptionGroup has returned %TRUE, Clutter is guaranteed to be +initialized. + + a #GOptionGroup for the commandline arguments + recognized by Clutter + + + + + Returns a #GOptionGroup for the command line arguments recognized +by Clutter. You should add this group to your #GOptionContext with +g_option_context_add_group(), if you are using g_option_context_parse() +to parse your commandline arguments. + +Unlike clutter_get_option_group(), calling g_option_context_parse() with +the #GOptionGroup returned by this function requires a subsequent explicit +call to clutter_init(); use this function when needing to set foreign +display connection with clutter_x11_set_display(), or with +`gtk_clutter_init()`. + + a #GOptionGroup for the commandline arguments + recognized by Clutter + + + + + Queries the current pointer grab of clutter. + + the actor currently holding the pointer grab, or NULL if there is no grab. + + + + + Retrieves the Clutter script id, if any. + + the script id, or %NULL if @object was not defined inside + a UI definition file. The returned string is owned by the object and + should never be modified or freed. + + + + + a #GObject + + + + + + Returns whether Clutter should print out the frames per second on the +console. You can enable this setting either using the +<literal>CLUTTER_SHOW_FPS</literal> environment variable or passing +the <literal>--clutter-show-fps</literal> command line argument. * + This function does not do anything. Use the environment + variable or the configuration file to determine whether Clutter should + print out the FPS counter on the console. + + %TRUE if Clutter should show the FPS. + + + + + Returns the approximate number of microseconds passed since Clutter was +intialised. + +This function shdould not be used by application code. + +The output of this function depends on whether Clutter was configured to +enable its debugging code paths, so it's less useful than intended. + +Since Clutter 1.10, this function is an alias to g_get_monotonic_time() +if Clutter was configured to enable the debugging code paths. + Use #GTimer or g_get_monotonic_time() for a proper + timing source + + Number of microseconds since clutter_init() was called, or + zero if Clutter was not configured with debugging code paths. + + + + + Grabs keyboard events, after the grab is done keyboard +events (#ClutterActor::key-press-event and #ClutterActor::key-release-event) +are delivered to this actor directly. The source set in the event will be +the actor that would have received the event if the keyboard grab was not +in effect. + +Like pointer grabs, keyboard grabs should only be used as a last +resource. + +See also clutter_stage_set_key_focus() and clutter_actor_grab_key_focus() +to perform a "soft" key grab and assign key focus to a specific actor. + + + + + + a #ClutterActor + + + + + + Grabs pointer events, after the grab is done all pointer related events +(press, motion, release, enter, leave and scroll) are delivered to this +actor directly without passing through both capture and bubble phases of +the event delivery chain. The source set in the event will be the actor +that would have received the event if the pointer grab was not in effect. + +Grabs completely override the entire event delivery chain +done by Clutter. Pointer grabs should only be used as a last resource; +using the #ClutterActor::captured-event signal should always be the +preferred way to intercept event delivery to reactive actors. + +This function should rarely be used. + +If a grab is required, you are strongly encouraged to use a specific +input device by calling clutter_input_device_grab(). + + + + + + a #ClutterActor + + + + + + Grabs all the pointer events coming from the device @id for @actor. + +If @id is -1 then this function is equivalent to clutter_grab_pointer(). + Use clutter_input_device_grab() instead. + + + + + + a #ClutterActor + + + + a device id, or -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initialises everything needed to operate with Clutter and parses some +standard command line options; @argc and @argv are adjusted accordingly +so your own code will never see those standard arguments. + +It is safe to call this function multiple times. + +This function will not abort in case of errors during +initialization; clutter_init() will print out the error message on +stderr, and will return an error code. It is up to the application +code to handle this case. If you need to display the error message +yourself, you can use clutter_init_with_args(), which takes a #GError +pointer. + +If this function fails, and returns an error code, any subsequent +Clutter API will have undefined behaviour - including segmentation +faults and assertion failures. Make sure to handle the returned +#ClutterInitError enumeration value. + + a #ClutterInitError value + + + + + The number of arguments in @argv + + + + A pointer to an array + of arguments. + + + + + + + + + + + + + This function does the same work as clutter_init(). Additionally, +it allows you to add your own command line options, and it +automatically generates nicely formatted <option>--help</option> +output. Note that your program will be terminated after writing +out the help output. Also note that, in case of error, the +error message will be placed inside @error instead of being +printed on the display. + +Just like clutter_init(), if this function returns an error code then +any subsequent call to any other Clutter API will result in undefined +behaviour - including segmentation faults. + + %CLUTTER_INIT_SUCCESS if Clutter has been successfully + initialised, or other values or #ClutterInitError in case of + error. + + + + + a pointer to the number of command line arguments + + + + a pointer to the array + of command line arguments + + + + + + a string which is displayed in the + first line of <option>--help</option> output, after + <literal><replaceable>programname</replaceable> [OPTION...]</literal> + + + + a %NULL terminated array of + #GOptionEntry<!-- -->s describing the options of your program + + + + + + a translation domain to use for + translating the <option>--help</option> output for the options in + @entries with gettext(), or %NULL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Converts @keyval from a Clutter key symbol to the corresponding +ISO10646 (Unicode) character. + + a Unicode character, or 0 if there is no corresponding + character. + + + + + a key symbol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Starts the Clutter mainloop. + + + + + + Retrieves the depth of the Clutter mainloop. + + The level of the mainloop. + + + + + Terminates the Clutter mainloop. + + + + + + + + + + + + + + + + + + Allocates enough memory to hold a #ClutterMatrix. + + the newly allocated #ClutterMatrix + + + + + Frees the memory allocated by clutter_matrix_alloc(). + + + + + + a #ClutterMatrix + + + + + + + + + + + Initializes @matrix with the contents of a C array of floating point +values. + + the initialzed #ClutterMatrix + + + + + a #ClutterMatrix + + + + a C array of 16 floating point values, + representing a 4x4 matrix, with column-major order + + + + + + + + Initializes the #ClutterMatrix @a with the contents of the +#ClutterMatrix @b. + + the initialized #ClutterMatrix + + + + + the #ClutterMatrix to initialize + + + + the #ClutterMatrix to copy + + + + + + Initializes @matrix with the identity matrix, i.e.: + +|[ + .xx = 1.0, .xy = 0.0, .xz = 0.0, .xw = 0.0 + .yx = 0.0, .yy = 1.0, .yz = 0.0, .yw = 0.0 + .zx = 0.0, .zy = 0.0, .zz = 1.0, .zw = 0.0 + .wx = 0.0, .wy = 0.0, .wz = 0.0, .ww = 1.0 +]| + + the initialized #ClutterMatrix + + + + + a #ClutterMatrix + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a #GParamSpec for properties using #ClutterColor. + + the newly created #GParamSpec + + + + + name of the property + + + + short name + + + + description (can be translatable) + + + + default value + + + + flags for the param spec + + + + + + Creates a #GParamSpec for properties using #ClutterUnits. + + the newly created #GParamSpec + + + + + name of the property + + + + short name + + + + description (can be translatable) + + + + the default type for the #ClutterUnits + + + + lower boundary + + + + higher boundary + + + + default value + + + + flags for the param spec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A point centered at (0, 0). + +The returned value can be used as a guard. + + a point centered in (0, 0); the returned #ClutterPoint + is owned by Clutter and it should not be modified or freed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A #ClutterRect with #ClutterRect.origin set at (0, 0) and a size +of 0. + +The returned value can be used as a guard. + + a rectangle with origin in (0, 0) and a size of 0. + The returned #ClutterRect is owned by Clutter and it should not + be modified or freed. + + + + + Forces a redraw of the entire stage. Applications should never use this +function, but queue a redraw using clutter_actor_queue_redraw(). + +This function should only be used by libraries integrating Clutter from +within another toolkit. + Use clutter_stage_ensure_redraw() instead. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sets the default frame rate. This frame rate will be used to limit +the number of frames drawn if Clutter is not able to synchronize +with the vertical refresh rate of the display. When synchronization +is possible, this value is ignored. + This function does not do anything any more. + + + + + + the new default frame rate + + + + + + Sets the font quality options for subsequent text rendering +operations. + +Using mipmapped textures will improve the quality for scaled down +text but will use more texture memory. + +Enabling hinting improves text quality for static text but may +introduce some artifacts if the text is animated. + Use clutter_backend_set_font_options() and the + #cairo_font_option_t API. + + + + + + The new flags + + + + + + Sets whether per-actor motion events should be enabled or not on +all #ClutterStage<!-- -->s managed by Clutter. + +If @enable is %FALSE the following events will not work: + + - ClutterActor::motion-event, except on the #ClutterStage + - ClutterActor::enter-event + - ClutterActor::leave-event + Use clutter_stage_set_motion_events_enabled() instead. + + + + + + %TRUE to enable per-actor motion events + + + + + + Restricts Clutter to only use the specified backend or list of backends. + +You can use one of the `CLUTTER_WINDOWING_*` symbols, e.g. + +|[<!-- language="C" --> + clutter_set_windowing_backend (CLUTTER_WINDOWING_X11); +]| + +Will force Clutter to use the X11 windowing and input backend, and terminate +if the X11 backend could not be initialized successfully. + +Since Clutter 1.26, you can also use a comma-separated list of windowing +system backends to provide a fallback in case backends are not available or +enabled, e.g.: + +|[<!-- language="C" --> + clutter_set_windowing_backend ("gdk,wayland,x11"); +]| + +Will make Clutter test for the GDK, Wayland, and X11 backends in that order. + +You can use the `*` special value to ask Clutter to use the internally +defined list of backends. For instance: + +|[<!-- language="C" --> + clutter_set_windowing_backend ("x11,wayland,*"); +]| + +Will make Clutter test the X11 and Wayland backends, and then fall back +to the internal list of available backends. + +This function must be called before the first API call to Clutter, including +clutter_get_option_context() + + + + + + a comma separated list of windowing backends + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Adds a test unit to the Clutter test environment. + +See also: g_test_add() + + + + + + unique path for identifying the test + + + + function containing the test + + + + + + Adds a test unit to the Clutter test environment. + +See also: g_test_add_data_func() + + + + + + unique path for identifying the test + + + + function containing the test + + + + data to pass to the test function + + + + + + Adds a test unit to the Clutter test environment. + +See also: g_test_add_data_func_full() + + + + + + unique path for identifying the test + + + + function containing the test + + + + data to pass to the test function + + + + function called when the test function ends + + + + + + Checks the given coordinates of the @stage and compares the +actor found there with the given @actor. + + %TRUE if the actor at the given coordinates matches + + + + + a #ClutterStage + + + + coordinates to check + + + + the expected actor at the given coordinates + + + + actor at the coordinates + + + + + + Checks the color at the given coordinates on @stage, and matches +it with the red, green, and blue channels of @color. The alpha +component of @color and @result is ignored. + + %TRUE if the colors match + + + + + a #ClutterStage + + + + coordinates to check + + + + expected color + + + + color at the given coordinates + + + + + + Retrieves the #ClutterStage used for testing. + + the stage used for testing + + + + + + + + + + + + + + + + + + Runs the test suite using the units added by calling +clutter_test_add(). + +The typical test suite is composed of a list of functions +called by clutter_test_run(), for instance: + +|[ +static void unit_foo (void) { ... } + +static void unit_bar (void) { ... } + +static void unit_baz (void) { ... } + +int +main (int argc, char *argv[]) +{ + clutter_test_init (&argc, &argv); + + clutter_test_add ("/unit/foo", unit_foo); + clutter_test_add ("/unit/bar", unit_bar); + clutter_test_add ("/unit/baz", unit_baz); + + return clutter_test_run (); +} +]| + + the exit code for the test suite + + + + + + + + + + + + + + + + + + + Simple wrapper around clutter_threads_add_frame_source_full(). + There is no direct replacement for this API + + the ID (greater than 0) of the event source. + + + + + the number of times per second to call the function + + + + function to call + + + + data to pass to the function + + + + + + Sets a function to be called at regular intervals holding the Clutter +threads lock, with the given priority. The function is called repeatedly +until it returns %FALSE, at which point the timeout is automatically +removed and the function will not be called again. The @notify function +is called when the timeout is removed. + +This function is similar to clutter_threads_add_timeout_full() +except that it will try to compensate for delays. For example, if +@func takes half the interval time to execute then the function +will be called again half the interval time after it finished. In +contrast clutter_threads_add_timeout_full() would not fire until a +full interval after the function completes so the delay between +calls would be @interval * 1.5. This function does not however try +to invoke the function multiple times to catch up missing frames if +@func takes more than @interval ms to execute. + +See also clutter_threads_add_idle_full(). + There is no direct replacement for this API + + the ID (greater than 0) of the event source. + + + + + the priority of the frame source. Typically this will be in the + range between %G_PRIORITY_DEFAULT and %G_PRIORITY_HIGH. + + + + the number of times per second to call the function + + + + function to call + + + + data to pass to the function + + + + function to call when the timeout source is removed + + + + + + Simple wrapper around clutter_threads_add_idle_full() using the +default priority. + + the ID (greater than 0) of the event source. + + + + + function to call + + + + data to pass to the function + + + + + + Adds a function to be called whenever there are no higher priority +events pending. If the function returns %FALSE it is automatically +removed from the list of event sources and will not be called again. + +This function can be considered a thread-safe variant of g_idle_add_full(): +it will call @function while holding the Clutter lock. It is logically +equivalent to the following implementation: + +|[ +static gboolean +idle_safe_callback (gpointer data) +{ + SafeClosure *closure = data; + gboolean res = FALSE; + + // mark the critical section // + + clutter_threads_enter(); + + // the callback does not need to acquire the Clutter + / lock itself, as it is held by the this proxy handler + // + res = closure->callback (closure->data); + + clutter_threads_leave(); + + return res; +} +static gulong +add_safe_idle (GSourceFunc callback, + gpointer data) +{ + SafeClosure *closure = g_new0 (SafeClosure, 1); + + closure->callback = callback; + closure->data = data; + + return g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, + idle_safe_callback, + closure, + g_free) +} +]| + +This function should be used by threaded applications to make sure +that @func is emitted under the Clutter threads lock and invoked +from the same thread that started the Clutter main loop. For instance, +it can be used to update the UI using the results from a worker +thread: + +|[ +static gboolean +update_ui (gpointer data) +{ + SomeClosure *closure = data; + + // it is safe to call Clutter API from this function because + / it is invoked from the same thread that started the main + / loop and under the Clutter thread lock + // + clutter_label_set_text (CLUTTER_LABEL (closure->label), + closure->text); + + g_object_unref (closure->label); + g_free (closure); + + return FALSE; +} + + // within another thread // + closure = g_new0 (SomeClosure, 1); + // always take a reference on GObject instances // + closure->label = g_object_ref (my_application->label); + closure->text = g_strdup (processed_text_to_update_the_label); + + clutter_threads_add_idle_full (G_PRIORITY_HIGH_IDLE, + update_ui, + closure, + NULL); +]| + + the ID (greater than 0) of the event source. + + + + + the priority of the timeout source. Typically this will be in the + range between #G_PRIORITY_DEFAULT_IDLE and #G_PRIORITY_HIGH_IDLE + + + + function to call + + + + data to pass to the function + + + + functio to call when the idle source is removed + + + + + + Adds a function to be called whenever Clutter is processing a new +frame. + +If the function returns %FALSE it is automatically removed from the +list of repaint functions and will not be called again. + +This function is guaranteed to be called from within the same thread +that called clutter_main(), and while the Clutter lock is being held; +the function will be called within the main loop, so it is imperative +that it does not block, otherwise the frame time budget may be lost. + +A repaint function is useful to ensure that an update of the scenegraph +is performed before the scenegraph is repainted; for instance, uploading +a frame from a video into a #ClutterTexture. By default, a repaint +function added using this function will be invoked prior to the frame +being processed. + +Adding a repaint function does not automatically ensure that a new +frame will be queued. + +When the repaint function is removed (either because it returned %FALSE +or because clutter_threads_remove_repaint_func() has been called) the +@notify function will be called, if any is set. + +See also: clutter_threads_add_repaint_func_full() + + the ID (greater than 0) of the repaint function. You + can use the returned integer to remove the repaint function by + calling clutter_threads_remove_repaint_func(). + + + + + the function to be called within the paint cycle + + + + data to be passed to the function, or %NULL + + + + function to be called when removing the repaint + function, or %NULL + + + + + + Adds a function to be called whenever Clutter is processing a new +frame. + +If the function returns %FALSE it is automatically removed from the +list of repaint functions and will not be called again. + +This function is guaranteed to be called from within the same thread +that called clutter_main(), and while the Clutter lock is being held; +the function will be called within the main loop, so it is imperative +that it does not block, otherwise the frame time budget may be lost. + +A repaint function is useful to ensure that an update of the scenegraph +is performed before the scenegraph is repainted; for instance, uploading +a frame from a video into a #ClutterTexture. The @flags passed to this +function will determine the section of the frame processing that will +result in @func being called. + +Adding a repaint function does not automatically ensure that a new +frame will be queued. + +When the repaint function is removed (either because it returned %FALSE +or because clutter_threads_remove_repaint_func() has been called) the +@notify function will be called, if any is set. + + the ID (greater than 0) of the repaint function. You + can use the returned integer to remove the repaint function by + calling clutter_threads_remove_repaint_func(). + + + + + flags for the repaint function + + + + the function to be called within the paint cycle + + + + data to be passed to the function, or %NULL + + + + function to be called when removing the repaint + function, or %NULL + + + + + + Simple wrapper around clutter_threads_add_timeout_full(). + + the ID (greater than 0) of the event source. + + + + + the time between calls to the function, in milliseconds + + + + function to call + + + + data to pass to the function + + + + + + Sets a function to be called at regular intervals holding the Clutter +threads lock, with the given priority. The function is called repeatedly +until it returns %FALSE, at which point the timeout is automatically +removed and the function will not be called again. The @notify function +is called when the timeout is removed. + +The first call to the function will be at the end of the first @interval. + +It is important to note that, due to how the Clutter main loop is +implemented, the timing will not be accurate and it will not try to +"keep up" with the interval. + +See also clutter_threads_add_idle_full(). + + the ID (greater than 0) of the event source. + + + + + the priority of the timeout source. Typically this will be in the + range between #G_PRIORITY_DEFAULT and #G_PRIORITY_HIGH. + + + + the time between calls to the function, in milliseconds + + + + function to call + + + + data to pass to the function + + + + function to call when the timeout source is removed + + + + + + Locks the Clutter thread lock. + This function should not be used by application + code; marking critical sections is not portable on various + platforms. Instead of acquiring the Clutter lock, schedule UI + updates from the main loop using clutter_threads_add_idle() or + clutter_threads_add_timeout(). + + + + + + Initialises the Clutter threading mechanism, so that Clutter API can be +called by multiple threads, using clutter_threads_enter() and +clutter_threads_leave() to mark the critical sections. + +You must call g_thread_init() before this function. + +This function must be called before clutter_init(). + +It is safe to call this function multiple times. + This function does not do anything. Threading support + is initialized when Clutter is initialized. + + + + + + Unlocks the Clutter thread lock. + This function should not be used by application + code; marking critical sections is not portable on various + platforms. Instead of acquiring the Clutter lock, schedule UI + updates from the main loop using clutter_threads_add_idle() or + clutter_threads_add_timeout(). + + + + + + Removes the repaint function with @handle_id as its id + + + + + + an unsigned integer greater than zero + + + + + + Allows the application to replace the standard method that +Clutter uses to protect its data structures. Normally, Clutter +creates a single #GMutex that is locked by clutter_threads_enter(), +and released by clutter_threads_leave(); using this function an +application provides, instead, a function @enter_fn that is +called by clutter_threads_enter() and a function @leave_fn that is +called by clutter_threads_leave(). + +The functions must provide at least same locking functionality +as the default implementation, but can also do extra application +specific processing. + +As an example, consider an application that has its own recursive +lock that when held, holds the Clutter lock as well. When Clutter +unlocks the Clutter lock when entering a recursive main loop, the +application must temporarily release its lock as well. + +Most threaded Clutter apps won't need to use this method. + +This method must be called before clutter_init(), and cannot +be called multiple times. + + + + + + function called when aquiring the Clutter main lock + + + + function called when releasing the Clutter main lock + + + + + + + + + + + + + + + + + + + + + Creates a new timeout pool source. A timeout pool should be used when +multiple timeout functions, running at the same priority, are needed and +the g_timeout_add() API might lead to starvation of the time slice of +the main loop. A timeout pool allocates a single time slice of the main +loop and runs every timeout function inside it. The timeout pool is +always sorted, so that the extraction of the next timeout function is +a constant time operation. + There is no direct replacement for this API + + the newly created #ClutterTimeoutPool. The created pool + is owned by the GLib default context and will be automatically + destroyed when the context is destroyed. It is possible to force + the destruction of the timeout pool using g_source_destroy() + + + + + the priority of the timeout pool. Typically this will + be #G_PRIORITY_DEFAULT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Removes an existing grab of the keyboard. + + + + + + Removes an existing grab of the pointer. + + + + + + Removes an existing grab of the pointer events for device @id_. + Use clutter_input_device_ungrab() instead. + + + + + + a device id + + + + + + Convert from a ISO10646 character to a key symbol. + + the corresponding Clutter key symbol, if one exists. + or, if there is no corresponding symbol, wc | 0x01000000 + + + + + a ISO10646 encoded character + + + + + + + + + Stores a value in centimeters inside @units + + + + + + a #ClutterUnits + + + + centimeters + + + + + + Stores a value in em inside @units, using the default font +name as returned by clutter_backend_get_font_name() + + + + + + a #ClutterUnits + + + + em + + + + + + Stores a value in em inside @units using @font_name + + + + + + a #ClutterUnits + + + + the font name and size + + + + em + + + + + + Stores a value in millimiters inside @units + + + + + + a #ClutterUnits + + + + millimeters + + + + + + Stores a value in pixels inside @units + + + + + + a #ClutterUnits + + + + pixels + + + + + + Stores a value in typographic points inside @units + + + + + + a #ClutterUnits + + + + typographic points + + + + + + Parses a value and updates @units with it + +A #ClutterUnits expressed in string should match: + +|[ + units: wsp* unit-value wsp* unit-name? wsp* + unit-value: number + unit-name: 'px' | 'pt' | 'mm' | 'em' | 'cm' + number: digit+ + | digit* sep digit+ + sep: '.' | ',' + digit: '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' + wsp: (#0x20 | #0x9 | #0xA | #0xB | #0xC | #0xD)+ +]| + +For instance, these are valid strings: + +|[ + 10 px + 5.1 em + 24 pt + 12.6 mm + .3 cm +]| + +While these are not: + +|[ + 42 cats + omg!1!ponies +]| + +If no unit is specified, pixels are assumed. + + %TRUE if the string was successfully parsed, + and %FALSE otherwise + + + + + a #ClutterUnits + + + + the string to convert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Calculates the nearest power of two, greater than or equal to @a. + + The nearest power of two, greater or equal to @a. + + + + + Value to get the next power + + + + + + + + + + + + Retrieves a pointer to the #ClutterPaintNode contained inside +the passed #GValue, and if not %NULL it will increase the +reference count. + + a pointer + to the #ClutterPaintNode, with its reference count increased, + or %NULL + + + + + a #GValue initialized with %CLUTTER_TYPE_PAINT_NODE + + + + + + Gets the #ClutterColor contained in @value. + + the color inside the passed #GValue + + + + + a #GValue initialized to #CLUTTER_TYPE_COLOR + + + + + + Retrieves a pointer to the #ClutterPaintNode contained inside +the passed #GValue. + + a pointer to + a #ClutterPaintNode, or %NULL + + + + + a #GValue initialized with %CLUTTER_TYPE_PAINT_NODE + + + + + + Retrieves the list of floating point values stored inside +the passed #GValue. @value must have been initialized with +%CLUTTER_TYPE_SHADER_FLOAT. + + the pointer to a list of + floating point values. The returned value is owned by the + #GValue and should never be modified or freed. + + + + + + + a #GValue + + + + return location for the number of returned floating + point values, or %NULL + + + + + + Retrieves the list of integer values stored inside the passed +#GValue. @value must have been initialized with +%CLUTTER_TYPE_SHADER_INT. + + the pointer to a list of + integer values. The returned value is owned by the #GValue and + should never be modified or freed. + + + + + + + a #GValue + + + + return location for the number of returned integer + values, or %NULL + + + + + + Retrieves a matrix of floating point values stored inside +the passed #GValue. @value must have been initialized with +%CLUTTER_TYPE_SHADER_MATRIX. + + the pointer to a matrix + of floating point values. The returned value is owned by the #GValue and + should never be modified or freed. + + + + + + + a #GValue + + + + return location for the number of returned floating + point values, or %NULL + + + + + + Gets the #ClutterUnits contained in @value. + + the units inside the passed #GValue + + + + + a #GValue initialized to %CLUTTER_TYPE_UNITS + + + + + + Sets @value to @color. + + + + + + a #GValue initialized to #CLUTTER_TYPE_COLOR + + + + the color to set + + + + + + Sets the contents of a #GValue initialized with %CLUTTER_TYPE_PAINT_NODE. + +This function increased the reference count of @node; if you do not wish +to increase the reference count, use clutter_value_take_paint_node() +instead. The reference count will be released by g_value_unset(). + + + + + + a #GValue initialized with %CLUTTER_TYPE_PAINT_NODE + + + + a #ClutterPaintNode, or %NULL + + + + + + Sets @floats as the contents of @value. The passed #GValue +must have been initialized using %CLUTTER_TYPE_SHADER_FLOAT. + + + + + + a #GValue + + + + number of floating point values in @floats + + + + an array of floating point values + + + + + + + + Sets @ints as the contents of @value. The passed #GValue +must have been initialized using %CLUTTER_TYPE_SHADER_INT. + + + + + + a #GValue + + + + number of integer values in @ints + + + + an array of integer values + + + + + + + + Sets @matrix as the contents of @value. The passed #GValue +must have been initialized using %CLUTTER_TYPE_SHADER_MATRIX. + + + + + + a #GValue + + + + number of floating point values in @floats + + + + a matrix of floating point values + + + + + + + + Sets @value to @units + + + + + + a #GValue initialized to %CLUTTER_TYPE_UNITS + + + + the units to set + + + + + + Sets the contents of a #GValue initialized with %CLUTTER_TYPE_PAINT_NODE. + +Unlike clutter_value_set_paint_node(), this function will not take a +reference on the passed @node: instead, it will take ownership of the +current reference count. + + + + + + a #GValue, initialized with %CLUTTER_TYPE_PAINT_NODE + + + + a #ClutterPaintNode, or %NULL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/docs/scrapers/gnome/girs/mutter-3/ClutterX11-3.gir b/lib/docs/scrapers/gnome/girs/mutter-3/ClutterX11-3.gir new file mode 100644 index 0000000000..15080c99d3 --- /dev/null +++ b/lib/docs/scrapers/gnome/girs/mutter-3/ClutterX11-3.gir @@ -0,0 +1,849 @@ + + + + + + + + + + Filter function for X11 native events. + + the result of the filtering + + + + + Native X11 event structure + + + + Clutter event structure + + + + user data passed to the filter function + + + + + + Return values for the #ClutterX11FilterFunc function. + + The event was not handled, continues the + processing + + + Native event translated into a Clutter + event, stops the processing + + + Remove the event, stops the processing + + + + The #ClutterX11TexturePixmap structure contains only private data + + + + + + Creates a new #ClutterX11TexturePixmap which can be used to display the +contents of an X11 Pixmap inside a Clutter scene graph + + A new #ClutterX11TexturePixmap + + + + + Creates a new #ClutterX11TexturePixmap for @pixmap + + A new #ClutterX11TexturePixmap bound to the given X Pixmap + + + + + the X Pixmap to which this texture should be bound + + + + + + Creates a new #ClutterX11TexturePixmap for @window + + A new #ClutterX11TexturePixmap bound to the given X window. + + + + + the X window to which this texture should be bound + + + + + + Performs the actual binding of texture to the current content of +the pixmap. Can be called to update the texture if the pixmap +content has changed. + + + + + + The texture whose content shall be updated. + + + + the X coordinate of the area to update + + + + the Y coordinate of the area to update + + + + the width of the area to update + + + + the height of the area to update + + + + + + Enables or disables the automatic updates ot @texture in case the backing +pixmap or window is damaged + + + + + + a #ClutterX11TexturePixmap + + + + %TRUE to enable automatic updates + + + + + + Sets the X Pixmap to which the texture should be bound. + + + + + + the texture to bind + + + + the X Pixmap to which the texture should be bound + + + + + + Sets up a suitable pixmap for the window, using the composite and damage +extensions if possible, and then calls +clutter_x11_texture_pixmap_set_pixmap(). + +If you want to display a window in a #ClutterTexture, you probably want +this function, or its older sister, clutter_glx_texture_pixmap_set_window(). + +This function has no effect unless the XComposite extension is available. + + + + + + the texture to bind + + + + the X window to which the texture should be bound + + + + %TRUE for automatic window updates, %FALSE for manual. + + + + + + Resets the texture's pixmap from its window, perhaps in response to the +pixmap's invalidation as the window changed size. + + + + + + the texture to bind + + + + + + Performs the actual binding of texture to the current content of +the pixmap. Can be called to update the texture if the pixmap +content has changed. + + + + + + The texture whose content shall be updated. + + + + the X coordinate of the area to update + + + + the Y coordinate of the area to update + + + + the width of the area to update + + + + the height of the area to update + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ::queue-damage-redraw is emitted to notify that some sub-region +of the texture has been changed (either by an automatic damage +update or by an explicit call to +clutter_x11_texture_pixmap_update_area). This usually means a +redraw needs to be queued for the actor. + +The default handler will queue a clipped redraw in response to +the damage, using the assumption that the pixmap is being painted +to a rectangle covering the transformed allocation of the actor. +If you sub-class and change the paint method so this isn't true +then you must also provide your own damage signal handler to +queue a redraw that blocks this default behaviour. + + + + + + The top left x position of the damage region + + + + The top left y position of the damage region + + + + The width of the damage region + + + + The height of the damage region + + + + + + The ::update-area signal is emitted to ask the texture to update its +content from its source pixmap. + + + + + + X coordinate of the area to update + + + + Y coordinate of the area to update + + + + width of the area to update + + + + height of the area to update + + + + + + + The #ClutterX11TexturePixmapClass structure contains only private data + + + + + + + + + + + The texture whose content shall be updated. + + + + the X coordinate of the area to update + + + + the Y coordinate of the area to update + + + + the width of the area to update + + + + the height of the area to update + + + + + + + + + + + + Adds an event filter function. + + + + + + a filter function + + + + user data to be passed to the filter function, or %NULL + + + + + + Disables the internal polling of X11 events in the main loop. + +Libraries or applications calling this function will be responsible of +polling all X11 events. + +You also must call clutter_x11_handle_event() to let Clutter process +events and maintain its internal state. + +This function can only be called before calling clutter_init(). + +Even with event handling disabled, Clutter will still select +all the events required to maintain its internal state on the stage +Window; compositors using Clutter and input regions to pass events +through to application windows should not rely on an empty input +region, and should instead clear it themselves explicitly using the +XFixes extension. + +This function should not be normally used by applications. + + + + + + Enables the use of the XInput extension if present on connected +XServer and support built into Clutter. XInput allows for multiple +pointing devices to be used. + +This function must be called before clutter_init(). + +Since XInput might not be supported by the X server, you might +want to use clutter_x11_has_xinput() to see if support was enabled. + This function does not do anything; XInput support + is enabled by default in Clutter. Use the CLUTTER_DISABLE_XINPUT + environment variable to disable XInput support and use Xlib core + events instead. + + + + + + Retrieves the group for the modifiers set in @event + + the group id + + + + + a #ClutterEvent of type %CLUTTER_KEY_PRESS or %CLUTTER_KEY_RELEASE + + + + + + Retrieves the touch detail froma #ClutterEventSequence. + + the touch detail + + + + + a #ClutterEventSequence + + + + + + Retrieves the timestamp of the last X11 event processed by +Clutter. This might be different from the timestamp returned +by clutter_get_current_event_time(), as Clutter may synthesize +or throttle events. + + a timestamp, in milliseconds + + + + + Retrieves the pointer to the default display. + + the default display + + + + + Gets the number of the default X Screen object. + + the number of the default screen + + + + + Retrieves a pointer to the list of input devices + Use clutter_device_manager_peek_devices() instead + + a + pointer to the internal list of input devices; the returned list is + owned by Clutter and should not be modified or freed + + + + + + + Retrieves the root window. + + the id of the root window + + + + + Gets the stage for a particular X window. + + A #ClutterStage, or% NULL if a stage + does not exist for the window + + + + + an X Window ID + + + + + + Returns an XVisualInfo suitable for creating a foreign window for the given +stage. NOTE: It doesn't do as the name may suggest, which is return the +XVisualInfo that was used to create an existing window for the given stage. + +XXX: It might be best to deprecate this function and replace with something +along the lines of clutter_backend_x11_get_foreign_visual () or perhaps +clutter_stage_x11_get_foreign_visual () + Use clutter_x11_get_visual_info() instead + + An XVisualInfo suitable for creating a + foreign stage. Use XFree() to free the returned value instead + + + + + a #ClutterStage + + + + + + Gets the stages X Window. + + An XID for the stage window. + + + + + a #ClutterStage + + + + + + Retrieves whether the Clutter X11 backend is using ARGB visuals by default + + %TRUE if ARGB visuals are queried by default + + + + + Retrieves whether the Clutter X11 backend will create stereo +stages if possible. + + %TRUE if stereo stages are used if possible + + + + + Retrieves the `XVisualInfo` used by the Clutter X11 backend. + + a `XVisualInfo`, or `None`. + The returned value should be freed using `XFree()` when done + + + + + This function processes a single X event; it can be used to hook +into external X11 event processing (for example, a GDK filter +function). + +If clutter_x11_disable_event_retrieval() has been called, you must +let this function process events to update Clutter's internal state. + + #ClutterX11FilterReturn. %CLUTTER_X11_FILTER_REMOVE + indicates that Clutter has internally handled the event and the + caller should do no further processing. %CLUTTER_X11_FILTER_CONTINUE + indicates that Clutter is either not interested in the event, + or has used the event to update internal state without taking + any exclusive action. %CLUTTER_X11_FILTER_TRANSLATE will not + occur. + + + + + pointer to XEvent structure + + + + + + Retrieves whether Clutter is running on an X11 server with the +XComposite extension + + %TRUE if the XComposite extension is available + + + + + Queries the X11 backend to check if event collection has been disabled. + + TRUE if event retrival has been disabled. FALSE otherwise. + + + + + Gets whether Clutter has XInput support. + + %TRUE if Clutter was compiled with XInput support + and XInput support is available at run time. + + + + + Removes the given filter function. + + + + + + a filter function + + + + user data to be passed to the filter function, or %NULL + + + + + + Sets the display connection Clutter should use; must be called +before clutter_init(), clutter_init_with_args() or other functions +pertaining Clutter's initialization process. + +If you are parsing the command line arguments by retrieving Clutter's +#GOptionGroup with clutter_get_option_group() and calling +g_option_context_parse() yourself, you should also call +clutter_x11_set_display() before g_option_context_parse(). + + + + + + pointer to a X display connection. + + + + + + Target the #ClutterStage to use an existing external X Window + + %TRUE if foreign window is valid + + + + + a #ClutterStage + + + + an existing X Window id + + + + + + Sets whether the Clutter X11 backend should request ARGB visuals by default +or not. + +By default, Clutter requests RGB visuals. + +If no ARGB visuals are found, the X11 backend will fall back to +requesting a RGB visual instead. + +ARGB visuals are required for the #ClutterStage:use-alpha property to work. + +This function can only be called once, and before clutter_init() is +called. + + + + + + %TRUE if ARGB visuals should be requested by default + + + + + + Sets whether the backend object for Clutter stages, will, +if possible, be created with the ability to support stereo drawing +(drawing separate images for the left and right eyes). + +This function must be called before clutter_init() is called. +During paint callbacks, cogl_framebuffer_is_stereo() can be called +on the framebuffer retrieved by cogl_get_draw_framebuffer() to +determine if stereo support was successfully enabled, and +cogl_framebuffer_set_stereo_mode() to determine which buffers +will be drawn to. + +Note that this function *does not* cause the stage to be drawn +multiple times with different perspective transformations and thus +appear in 3D, it simply enables individual ClutterActors to paint +different images for the left and and right eye. + + + + + + %TRUE if the stereo stages should be used if possible. + + + + + + Traps every X error until clutter_x11_untrap_x_errors() is called. + + + + + + Removes the X error trap and returns the current status. + + the trapped error code, or 0 for success + + + + + diff --git a/lib/docs/scrapers/gnome/girs/mutter-3/Cogl-3.gir b/lib/docs/scrapers/gnome/girs/mutter-3/Cogl-3.gir new file mode 100644 index 0000000000..e233100b95 --- /dev/null +++ b/lib/docs/scrapers/gnome/girs/mutter-3/Cogl-3.gir @@ -0,0 +1,8540 @@ + + + + + + + + + + Integer representation of an angle such that 1024 corresponds to +full circle (i.e., 2 * pi). + + + + A boolean data type used throughout the Cogl C api. This should be +used in conjunction with the %TRUE and %FALSE macro defines for +setting and testing boolean values. + + + + Type used for storing references to cogl objects, the CoglHandle is +a fully opaque type without any public data members. + + + + + + + + + + Data types for the components of a vertex attribute. + + Data is the same size of a byte + + + Data is the same size of an + unsigned byte + + + Data is the same size of a short integer + + + Data is the same size of + an unsigned short integer + + + Data is the same size of a float + + + + + + + + Creates a bitmap using some existing data. The data is not copied +so the application must keep the buffer alive for the lifetime of +the #CoglBitmap. This can be used for example with +cogl_framebuffer_read_pixels_into_bitmap() to read data directly +into an application buffer with the specified rowstride. + + A new #CoglBitmap. + + + + + A #CoglContext + + + + The width of the bitmap. + + + + The height of the bitmap. + + + + The format of the pixel data. + + + + The rowstride of the bitmap (the number of bytes from + the start of one row of the bitmap to the next). + + + + A pointer to the data. The bitmap will take ownership of this data. + + + + + + Wraps some image data that has been uploaded into a #CoglBuffer as +a #CoglBitmap. The data is not copied in this process. + + a #CoglBitmap encapsulating the given @buffer. + + + + + A #CoglBuffer containing image data + + + + The #CoglPixelFormat defining the format of the image data + in the given @buffer. + + + + The width of the image data in the given @buffer. + + + + The height of the image data in the given @buffer. + + + + The rowstride in bytes of the image data in the given @buffer. + + + + The offset into the given @buffer to the first pixel that + should be considered part of the #CoglBitmap. + + + + + + Loads an image file from disk. This function can be safely called from +within a thread. + + a #CoglBitmap to the new loaded + image data, or %NULL if loading the image failed. + + + + + the file to load. + + + + + + Creates a new #CoglBitmap with the given width, height and format. +The initial contents of the bitmap are undefined. + +The data for the bitmap will be stored in a newly created +#CoglPixelBuffer. You can get a pointer to the pixel buffer using +cogl_bitmap_get_buffer(). The #CoglBuffer API can then be +used to fill the bitmap with data. + +<note>Cogl will try its best to provide a hardware array you can +map, write into and effectively do a zero copy upload when creating +a texture from it with cogl_texture_new_from_bitmap(). For various +reasons, such arrays are likely to have a stride larger than width +* bytes_per_pixel. The user must take the stride into account when +writing into it. The stride can be retrieved with +cogl_bitmap_get_rowstride().</note> + + a #CoglPixelBuffer representing the + newly created array or %NULL on failure + + + + + A #CoglContext + + + + width of the bitmap in pixels + + + + height of the bitmap in pixels + + + + the format of the pixels the array will store + + + + + + + + + + + Parses an image file enough to extract the width and height +of the bitmap. + + %TRUE if the image was successfully parsed + + + + + the file to check + + + + return location for the bitmap width, or %NULL + + + + return location for the bitmap height, or %NULL + + + + + + + the #CoglPixelBuffer that this + buffer uses for storage. Note that if the bitmap was created with + cogl_bitmap_new_from_file() then it will not actually be using a + pixel buffer and this function will return %NULL. + + + + + A #CoglBitmap + + + + + + + the #CoglPixelFormat that the data for the bitmap is in. + + + + + A #CoglBitmap + + + + + + + the height of the bitmap + + + + + A #CoglBitmap + + + + + + + the rowstride of the bitmap. This is the number of + bytes between the address of start of one row to the address of the + next row in the image. + + + + + A #CoglBitmap + + + + + + + the width of the bitmap + + + + + A #CoglBitmap + + + + + + + Error codes that can be thrown when performing bitmap +operations. Note that gdk_pixbuf_new_from_file() can also throw +errors directly from the underlying image loading library. For +example, if GdkPixbuf is used then errors #GdkPixbufError<!-- -->s +will be used directly. + + Generic failure code, something went + wrong. + + + Unknown image type. + + + An image file was broken somehow. + + + + Error enumeration for the blend strings parser + + Generic parse error + + + Argument parse error + + + Internal parser error + + + Blend string not + supported by the GPU + + + + Types of auxiliary buffers + + Selects the primary color buffer + + + Selects the depth buffer + + + Selects the stencil buffer + + + + Target flags for FBOs. + + FIXME + + + FIXME + + + + A structure for holding a color definition. The contents of +the CoglColor structure are private and should never by accessed +directly. + + + + + + + + + + + + + + + + + + + + + + + Creates a new (empty) color + + a newly-allocated #CoglColor. Use cogl_color_free() + to free the allocated resources + + + + + Creates a copy of @color + + a newly-allocated #CoglColor. Use cogl_color_free() + to free the allocate resources + + + + + the color to copy + + + + + + Frees the resources allocated by cogl_color_new() and cogl_color_copy() + + + + + + the color to free + + + + + + Retrieves the alpha channel of @color as a fixed point +value between 0 and 1.0. + + the alpha channel of the passed color + + + + + a #CoglColor + + + + + + Retrieves the alpha channel of @color as a byte value +between 0 and 255 + + the alpha channel of the passed color + + + + + a #CoglColor + + + + + + Retrieves the alpha channel of @color as a floating point +value between 0.0 and 1.0 + + the alpha channel of the passed color + + + + + a #CoglColor + + + + + + Retrieves the blue channel of @color as a fixed point +value between 0 and 1.0. + + the blue channel of the passed color + + + + + a #CoglColor + + + + + + Retrieves the blue channel of @color as a byte value +between 0 and 255 + + the blue channel of the passed color + + + + + a #CoglColor + + + + + + Retrieves the blue channel of @color as a floating point +value between 0.0 and 1.0 + + the blue channel of the passed color + + + + + a #CoglColor + + + + + + Retrieves the green channel of @color as a fixed point +value between 0 and 1.0. + + the green channel of the passed color + + + + + a #CoglColor + + + + + + Retrieves the green channel of @color as a byte value +between 0 and 255 + + the green channel of the passed color + + + + + a #CoglColor + + + + + + Retrieves the green channel of @color as a floating point +value between 0.0 and 1.0 + + the green channel of the passed color + + + + + a #CoglColor + + + + + + Retrieves the red channel of @color as a fixed point +value between 0 and 1.0. + + the red channel of the passed color + + + + + a #CoglColor + + + + + + Retrieves the red channel of @color as a byte value +between 0 and 255 + + the red channel of the passed color + + + + + a #CoglColor + + + + + + Retrieves the red channel of @color as a floating point +value between 0.0 and 1.0 + + the red channel of the passed color + + + + + a #CoglColor + + + + + + Sets the values of the passed channels into a #CoglColor + + + + + + A pointer to a #CoglColor to initialize + + + + value of the red channel, between 0 and 1.0 + + + + value of the green channel, between 0 and 1.0 + + + + value of the blue channel, between 0 and 1.0 + + + + value of the alpha channel, between 0 and 1.0 + + + + + + Sets the values of the passed channels into a #CoglColor + + + + + + A pointer to a #CoglColor to initialize + + + + a pointer to an array of 4 float color components + + + + + + Sets the values of the passed channels into a #CoglColor. + + + + + + A pointer to a #CoglColor to initialize + + + + value of the red channel, between 0 and 255 + + + + value of the green channel, between 0 and 255 + + + + value of the blue channel, between 0 and 255 + + + + value of the alpha channel, between 0 and 255 + + + + + + Converts a non-premultiplied color to a pre-multiplied color. For +example, semi-transparent red is (1.0, 0, 0, 0.5) when non-premultiplied +and (0.5, 0, 0, 0.5) when premultiplied. + + + + + + the color to premultiply + + + + + + Sets the alpha channel of @color to @alpha. + + + + + + a #CoglColor + + + + a float value between 0.0f and 1.0f + + + + + + Sets the alpha channel of @color to @alpha. + + + + + + a #CoglColor + + + + a byte value between 0 and 255 + + + + + + Sets the alpha channel of @color to @alpha. + + + + + + a #CoglColor + + + + a float value between 0.0f and 1.0f + + + + + + Sets the blue channel of @color to @blue. + + + + + + a #CoglColor + + + + a float value between 0.0f and 1.0f + + + + + + Sets the blue channel of @color to @blue. + + + + + + a #CoglColor + + + + a byte value between 0 and 255 + + + + + + Sets the blue channel of @color to @blue. + + + + + + a #CoglColor + + + + a float value between 0.0f and 1.0f + + + + + + Sets the values of the passed channels into a #CoglColor + Use cogl_color_init_from_4f instead. + + + + + + A pointer to a #CoglColor to initialize + + + + value of the red channel, between 0 and %1.0 + + + + value of the green channel, between 0 and %1.0 + + + + value of the blue channel, between 0 and %1.0 + + + + value of the alpha channel, between 0 and %1.0 + + + + + + Sets the values of the passed channels into a #CoglColor. + Use cogl_color_init_from_4ub instead. + + + + + + A pointer to a #CoglColor to initialize + + + + value of the red channel, between 0 and 255 + + + + value of the green channel, between 0 and 255 + + + + value of the blue channel, between 0 and 255 + + + + value of the alpha channel, between 0 and 255 + + + + + + Sets the green channel of @color to @green. + + + + + + a #CoglColor + + + + a float value between 0.0f and 1.0f + + + + + + Sets the green channel of @color to @green. + + + + + + a #CoglColor + + + + a byte value between 0 and 255 + + + + + + Sets the green channel of @color to @green. + + + + + + a #CoglColor + + + + a float value between 0.0f and 1.0f + + + + + + Sets the red channel of @color to @red. + + + + + + a #CoglColor + + + + a float value between 0.0f and 1.0f + + + + + + Sets the red channel of @color to @red. + + + + + + a #CoglColor + + + + a byte value between 0 and 255 + + + + + + Sets the red channel of @color to @red. + + + + + + a #CoglColor + + + + a float value between 0.0f and 1.0f + + + + + + Converts @color to the HLS format. + +The @hue value is in the 0 .. 360 range. The @luminance and +@saturation values are in the 0 .. 1 range. + + + + + + a #CoglColor + + + + return location for the hue value or %NULL + + + + return location for the saturation value or %NULL + + + + return location for the luminance value or %NULL + + + + + + Converts a pre-multiplied color to a non-premultiplied color. For +example, semi-transparent red is (0.5, 0, 0, 0.5) when premultiplied +and (1.0, 0, 0, 0.5) when non-premultiplied. + + + + + + the color to unpremultiply + + + + + + Compares two #CoglColor<!-- -->s and checks if they are the same. + +This function can be passed to g_hash_table_new() as the @key_equal_func +parameter, when using #CoglColor<!-- -->s as keys in a #GHashTable. + + %TRUE if the two colors are the same. + + + + + a #CoglColor + + + + a #CoglColor + + + + + + Converts a color expressed in HLS (hue, luminance and saturation) +values into a #CoglColor. + + + + + + return location for a #CoglColor + + + + hue value, in the 0 .. 360 range + + + + saturation value, in the 0 .. 1 range + + + + luminance value, in the 0 .. 1 range + + + + + + + Defines a bit mask of color channels. This can be used with +cogl_pipeline_set_color_mask() for example to define which color +channels should be written to the current framebuffer when +drawing something. + + None of the color channels are masked + + + Masks the red color channel + + + Masks the green color channel + + + Masks the blue color channel + + + Masks the alpha color channel + + + All of the color channels are masked + + + + + + + When using depth testing one of these functions is used to compare +the depth of an incoming fragment against the depth value currently +stored in the depth buffer. The function is changed using +cogl_depth_state_set_test_function(). + +The test is only done when depth testing is explicitly enabled. (See +cogl_depth_state_set_test_enabled()) + + Never passes. + + + Passes if the fragment's depth +value is less than the value currently in the depth buffer. + + + Passes if the fragment's depth +value is equal to the value currently in the depth buffer. + + + Passes if the fragment's depth +value is less or equal to the value currently in the depth buffer. + + + Passes if the fragment's depth +value is greater than the value currently in the depth buffer. + + + Passes if the fragment's depth +value is not equal to the value currently in the depth buffer. + + + Passes if the fragment's depth +value greater than or equal to the value currently in the depth buffer. + + + Always passes. + + + + + + Flags for the supported features. + + ARB_texture_rectangle support + + + Non power of two textures are supported + by the hardware. This is a equivalent to the + %COGL_FEATURE_TEXTURE_NPOT_BASIC, %COGL_FEATURE_TEXTURE_NPOT_MIPMAP + and %COGL_FEATURE_TEXTURE_NPOT_REPEAT features combined. + + + ycbcr conversion support + + + glReadPixels() support + + + GLSL support + + + FBO support + + + Multisample support on FBOs + + + Blit support on FBOs + + + At least 4 clip planes available + + + Stencil buffer support + + + VBO support + + + PBO support + + + Set if + %COGL_INDICES_TYPE_UNSIGNED_INT is supported in + cogl_vertex_buffer_indices_new(). + + + cogl_material_set_depth_range() support + + + The hardware supports non power + of two textures, but you also need to check the + %COGL_FEATURE_TEXTURE_NPOT_MIPMAP and %COGL_FEATURE_TEXTURE_NPOT_REPEAT + features to know if the hardware supports npot texture mipmaps + or repeat modes other than + %COGL_PIPELINE_WRAP_MODE_CLAMP_TO_EDGE respectively. + + + Mipmapping is supported in + conjuntion with non power of two textures. + + + Repeat modes other than + %COGL_PIPELINE_WRAP_MODE_CLAMP_TO_EDGE are supported by the + hardware. + + + Whether + cogl_material_set_layer_point_sprite_coords_enabled() is supported. + + + 3D texture support + + + ARBFP support + + + Whether cogl_buffer_map() is + supported with CoglBufferAccess including read support. + + + Whether cogl_buffer_map() is + supported with CoglBufferAccess including write support. + + + + + Whether #CoglFramebuffer support rendering the + depth buffer to a texture. + + + + Return values for the #CoglXlibFilterFunc and #CoglWin32FilterFunc functions. + + The event was not handled, continues the + processing + + + Remove the event, stops the processing + + + + The fog mode determines the equation used to calculate the fogging blend +factor while fogging is enabled. The simplest %COGL_FOG_MODE_LINEAR mode +determines f as: + +|[ + f = end - eye_distance / end - start +]| + +Where eye_distance is the distance of the current fragment in eye +coordinates from the origin. + + Calculates the fog blend factor as: +|[ + f = end - eye_distance / end - start +]| + + + Calculates the fog blend factor as: +|[ + f = e ^ -(density * eye_distance) +]| + + + Calculates the fog blend factor as: +|[ + f = e ^ -(density * eye_distance)^2 +]| + + + + The type used by cogl for function pointers, note that this type +is used as a generic catch-all cast for function pointers and the +actual arguments and return type may be different. + + + + + + You should aim to use the smallest data type that gives you enough +range, since it reduces the size of your index array and can help +reduce the demand on memory bandwidth. + +Note that %COGL_INDICES_TYPE_UNSIGNED_INT is only supported if the +%COGL_FEATURE_ID_UNSIGNED_INT_INDICES feature is available. This +should always be available on OpenGL but on OpenGL ES it will only +be available if the GL_OES_element_index_uint extension is +advertized. + + Your indices are unsigned bytes + + + Your indices are unsigned shorts + + + Your indices are unsigned ints + + + + + Allocates and initializes a blank white material + Use cogl_pipeline_new() instead + + a pointer to a new #CoglMaterial + + + + + Creates a new material with the configuration copied from the +source material. + +We would strongly advise developers to always aim to use +cogl_material_copy() instead of cogl_material_new() whenever there will +be any similarity between two materials. Copying a material helps Cogl +keep track of a materials ancestry which we may use to help minimize GPU +state changes. + Use cogl_pipeline_copy() instead + + a pointer to the newly allocated #CoglMaterial + + + + + a #CoglMaterial object to copy + + + + + + Iterates all the layer indices of the given @material. + No replacement + + + + + + A #CoglMaterial object + + + + A #CoglMaterialLayerCallback to be called for each + layer index + + + + Private data that will be passed to the callback + + + + + + Retrieves the current ambient color for @material + Use the #CoglSnippet shader api for lighting + + + + + + A #CoglMaterial object + + + + The location to store the ambient color + + + + + + Retrieves the current material color. + Use cogl_pipeline_get_color() instead + + + + + + A #CoglMaterial object + + + + The location to store the color + + + + + + Retrieves the current depth state configuration for the given +@pipeline as previously set using cogl_pipeline_set_depth_state(). + Use cogl_pipeline_get_depth_state() instead + + + + + + A #CoglMaterial object + + + + A destination #CoglDepthState struct + + + + + + Retrieves the current diffuse color for @material + Use the #CoglSnippet shader api for lighting + + + + + + A #CoglMaterial object + + + + The location to store the diffuse color + + + + + + Retrieves the materials current emission color. + Use the #CoglSnippet shader api for lighting + + + + + + A #CoglMaterial object + + + + The location to store the emission color + + + + + + Gets whether point sprite coordinate generation is enabled for this +texture layer. + Use cogl_pipeline_get_layer_point_sprite_coords_enabled() + instead + + whether the texture coordinates will be replaced with +point sprite coordinates. + + + + + a #CoglHandle to a material. + + + + the layer number to check. + + + + + + Returns the wrap mode for the 'p' coordinate of texture lookups on this +layer. + Use cogl_pipeline_get_layer_wrap_mode_p() instead + + the wrap mode for the 'p' coordinate of texture lookups on +this layer. + + + + + A #CoglMaterial object + + + + the layer number to change. + + + + + + Returns the wrap mode for the 's' coordinate of texture lookups on this +layer. + Use cogl_pipeline_get_layer_wrap_mode_s() instead + + the wrap mode for the 's' coordinate of texture lookups on +this layer. + + + + + A #CoglMaterial object + + + + the layer number to change. + + + + + + Returns the wrap mode for the 't' coordinate of texture lookups on this +layer. + Use cogl_pipeline_get_layer_wrap_mode_t() instead + + the wrap mode for the 't' coordinate of texture lookups on +this layer. + + + + + A #CoglMaterial object + + + + the layer number to change. + + + + + + This function lets you access a material's internal list of layers +for iteration. + +<note>You should avoid using this API if possible since it was only +made public by mistake and will be deprecated when we have +suitable alternative.</note> + +<note>It's important to understand that the list returned may not +remain valid if you modify the material or any of the layers in any +way and so you would have to re-get the list in that +situation.</note> + + A + list of #CoglMaterialLayer<!-- -->'s that can be passed to the + cogl_material_layer_* functions. The list is owned by Cogl and it + should not be modified or freed + Deprecated: 1.16: Use cogl_pipeline_get_layers() instead + + + + + + + A #CoglMaterial object + + + + + + Retrieves the number of layers defined for the given @material + Use cogl_pipeline_get_n_layers() instead + + the number of layers + + + + + A #CoglMaterial object + + + + + + Get the size of points drawn when %COGL_VERTICES_MODE_POINTS is +used with the vertex buffer API. + Use cogl_pipeline_get_point_size() instead + + the point size of the material. + + + + + a #CoglHandle to a material. + + + + + + Retrieves the materials current emission color. + Use the #CoglSnippet shader api for lighting + + The materials current shininess value + + + + + A #CoglMaterial object + + + + + + Retrieves the materials current specular color. + Use the #CoglSnippet shader api for lighting + + + + + + A #CoglMaterial object + + + + The location to store the specular color + + + + + + Queries what user program has been associated with the given +@material using cogl_material_set_user_program(). + Use #CoglSnippet api instead instead + + The current user program + or %COGL_INVALID_HANDLE. + + + + + a #CoglMaterial object. + + + + + + This function removes a layer from your material + Use cogl_pipeline_remove_layer() instead + + + + + + A #CoglMaterial object + + + + Specifies the layer you want to remove + + + + + + Before a primitive is blended with the framebuffer, it goes through an +alpha test stage which lets you discard fragments based on the current +alpha value. This function lets you change the function used to evaluate +the alpha channel, and thus determine which fragments are discarded +and which continue on to the blending stage. + +The default is %COGL_MATERIAL_ALPHA_FUNC_ALWAYS + Use cogl_pipeline_set_alpha_test_function() instead + + + + + + A #CoglMaterial object + + + + A @CoglMaterialAlphaFunc constant + + + + A reference point that the chosen alpha function uses + to compare incoming fragments to. + + + + + + Sets the material's ambient color, in the standard OpenGL lighting +model. The ambient color affects the overall color of the object. + +Since the diffuse color will be intense when the light hits the surface +directly, the ambient will be most apparent where the light hits at a +slant. + +The default value is (0.2, 0.2, 0.2, 1.0) + Use the #CoglSnippet shader api for lighting + + + + + + A #CoglMaterial object + + + + The components of the desired ambient color + + + + + + Conveniently sets the diffuse and ambient color of @material at the same +time. See cogl_material_set_ambient() and cogl_material_set_diffuse(). + +The default ambient color is (0.2, 0.2, 0.2, 1.0) + +The default diffuse color is (0.8, 0.8, 0.8, 1.0) + Use the #CoglSnippet shader api for lighting + + + + + + A #CoglMaterial object + + + + The components of the desired ambient and diffuse colors + + + + + + If not already familiar; please refer <link linkend="cogl-Blend-Strings">here</link> +for an overview of what blend strings are, and their syntax. + +Blending occurs after the alpha test function, and combines fragments with +the framebuffer. + +Currently the only blend function Cogl exposes is ADD(). So any valid +blend statements will be of the form: + +|[ + &lt;channel-mask&gt;=ADD(SRC_COLOR*(&lt;factor&gt;), DST_COLOR*(&lt;factor&gt;)) +]| + +<warning>The brackets around blend factors are currently not +optional!</warning> + +This is the list of source-names usable as blend factors: +<itemizedlist> + <listitem><para>SRC_COLOR: The color of the in comming fragment</para></listitem> + <listitem><para>DST_COLOR: The color of the framebuffer</para></listitem> + <listitem><para>CONSTANT: The constant set via cogl_material_set_blend_constant()</para></listitem> +</itemizedlist> + +The source names can be used according to the +<link linkend="cogl-Blend-String-syntax">color-source and factor syntax</link>, +so for example "(1-SRC_COLOR[A])" would be a valid factor, as would +"(CONSTANT[RGB])" + +These can also be used as factors: +<itemizedlist> + <listitem>0: (0, 0, 0, 0)</listitem> + <listitem>1: (1, 1, 1, 1)</listitem> + <listitem>SRC_ALPHA_SATURATE_FACTOR: (f,f,f,1) where f = MIN(SRC_COLOR[A],1-DST_COLOR[A])</listitem> +</itemizedlist> + +<note>Remember; all color components are normalized to the range [0, 1] +before computing the result of blending.</note> + +<example id="cogl-Blend-Strings-blend-unpremul"> + <title>Blend Strings/1</title> + <para>Blend a non-premultiplied source over a destination with + premultiplied alpha:</para> + <programlisting> +"RGB = ADD(SRC_COLOR*(SRC_COLOR[A]), DST_COLOR*(1-SRC_COLOR[A]))" +"A = ADD(SRC_COLOR, DST_COLOR*(1-SRC_COLOR[A]))" + </programlisting> +</example> + +<example id="cogl-Blend-Strings-blend-premul"> + <title>Blend Strings/2</title> + <para>Blend a premultiplied source over a destination with + premultiplied alpha</para> + <programlisting> +"RGBA = ADD(SRC_COLOR, DST_COLOR*(1-SRC_COLOR[A]))" + </programlisting> +</example> + +The default blend string is: +|[ + RGBA = ADD (SRC_COLOR, DST_COLOR*(1-SRC_COLOR[A])) +]| + +That gives normal alpha-blending when the calculated color for the material +is in premultiplied form. + Use cogl_pipeline_set_blend() instead + + %TRUE if the blend string was successfully parsed, and the + described blending is supported by the underlying driver/hardware. If + there was an error, %FALSE is returned and @error is set accordingly (if + present). + + + + + A #CoglMaterial object + + + + A <link linkend="cogl-Blend-Strings">Cogl blend string</link> + describing the desired blend function. + + + + + + When blending is setup to reference a CONSTANT blend factor then +blending will depend on the constant set with this function. + Use cogl_pipeline_set_blend_constant() instead + + + + + + A #CoglMaterial object + + + + The constant color you want + + + + + + Sets the basic color of the material, used when no lighting is enabled. + +Note that if you don't add any layers to the material then the color +will be blended unmodified with the destination; the default blend +expects premultiplied colors: for example, use (0.5, 0.0, 0.0, 0.5) for +semi-transparent red. See cogl_color_premultiply(). + +The default value is (1.0, 1.0, 1.0, 1.0) + Use cogl_pipeline_set_color() instead + + + + + + A #CoglMaterial object + + + + The components of the color + + + + + + Sets the basic color of the material, used when no lighting is enabled. + +The default value is (1.0, 1.0, 1.0, 1.0) + Use cogl_pipeline_set_color4f() instead + + + + + + A #CoglMaterial object + + + + The red component + + + + The green component + + + + The blue component + + + + The alpha component + + + + + + Sets the basic color of the material, used when no lighting is enabled. + +The default value is (0xff, 0xff, 0xff, 0xff) + Use cogl_pipeline_set_color4ub() instead + + + + + + A #CoglMaterial object + + + + The red component + + + + The green component + + + + The blue component + + + + The alpha component + + + + + + This commits all the depth state configured in @state struct to the +given @material. The configuration values are copied into the +material so there is no requirement to keep the #CoglDepthState +struct around if you don't need it any more. + +Note: Since some platforms do not support the depth range feature +it is possible for this function to fail and report an @error. + Use cogl_pipeline_set_depth_state() instead + + TRUE if the GPU supports all the given @state else %FALSE + and returns an @error. + + + + + A #CoglMaterial object + + + + A #CoglDepthState struct + + + + + + Sets the material's diffuse color, in the standard OpenGL lighting +model. The diffuse color is most intense where the light hits the +surface directly - perpendicular to the surface. + +The default value is (0.8, 0.8, 0.8, 1.0) + Use the #CoglSnippet shader api for lighting + + + + + + A #CoglMaterial object + + + + The components of the desired diffuse color + + + + + + Sets the material's emissive color, in the standard OpenGL lighting +model. It will look like the surface is a light source emitting this +color. + +The default value is (0.0, 0.0, 0.0, 1.0) + Use the #CoglSnippet shader api for lighting + + + + + + A #CoglMaterial object + + + + The components of the desired emissive color + + + + + + In addition to the standard OpenGL lighting model a Cogl material may have +one or more layers comprised of textures that can be blended together in +order, with a number of different texture combine modes. This function +defines a new texture layer. + +The index values of multiple layers do not have to be consecutive; it is +only their relative order that is important. + +<note>In the future, we may define other types of material layers, such +as purely GLSL based layers.</note> + Use cogl_pipeline_set_layer() instead + + + + + + A #CoglMaterial object + + + + the index of the layer + + + + a #CoglHandle for the layer object + + + + + + If not already familiar; you can refer +<link linkend="cogl-Blend-Strings">here</link> for an overview of what blend +strings are and there syntax. + +These are all the functions available for texture combining: +<itemizedlist> + <listitem>REPLACE(arg0) = arg0</listitem> + <listitem>MODULATE(arg0, arg1) = arg0 x arg1</listitem> + <listitem>ADD(arg0, arg1) = arg0 + arg1</listitem> + <listitem>ADD_SIGNED(arg0, arg1) = arg0 + arg1 - 0.5</listitem> + <listitem>INTERPOLATE(arg0, arg1, arg2) = arg0 x arg2 + arg1 x (1 - arg2)</listitem> + <listitem>SUBTRACT(arg0, arg1) = arg0 - arg1</listitem> + <listitem> + <programlisting> + DOT3_RGB(arg0, arg1) = 4 x ((arg0[R] - 0.5)) * (arg1[R] - 0.5) + + (arg0[G] - 0.5)) * (arg1[G] - 0.5) + + (arg0[B] - 0.5)) * (arg1[B] - 0.5)) + </programlisting> + </listitem> + <listitem> + <programlisting> + DOT3_RGBA(arg0, arg1) = 4 x ((arg0[R] - 0.5)) * (arg1[R] - 0.5) + + (arg0[G] - 0.5)) * (arg1[G] - 0.5) + + (arg0[B] - 0.5)) * (arg1[B] - 0.5)) + </programlisting> + </listitem> +</itemizedlist> + +Refer to the +<link linkend="cogl-Blend-String-syntax">color-source syntax</link> for +describing the arguments. The valid source names for texture combining +are: +<variablelist> + <varlistentry> + <term>TEXTURE</term> + <listitem>Use the color from the current texture layer</listitem> + </varlistentry> + <varlistentry> + <term>TEXTURE_0, TEXTURE_1, etc</term> + <listitem>Use the color from the specified texture layer</listitem> + </varlistentry> + <varlistentry> + <term>CONSTANT</term> + <listitem>Use the color from the constant given with + cogl_material_set_layer_constant()</listitem> + </varlistentry> + <varlistentry> + <term>PRIMARY</term> + <listitem>Use the color of the material as set with + cogl_material_set_color()</listitem> + </varlistentry> + <varlistentry> + <term>PREVIOUS</term> + <listitem>Either use the texture color from the previous layer, or + if this is layer 0, use the color of the material as set with + cogl_material_set_color()</listitem> + </varlistentry> +</variablelist> + +<refsect2 id="cogl-Layer-Combine-Examples"> + <title>Layer Combine Examples</title> + <para>This is effectively what the default blending is:</para> + <informalexample><programlisting> + RGBA = MODULATE (PREVIOUS, TEXTURE) + </programlisting></informalexample> + <para>This could be used to cross-fade between two images, using + the alpha component of a constant as the interpolator. The constant + color is given by calling cogl_material_set_layer_constant.</para> + <informalexample><programlisting> + RGBA = INTERPOLATE (PREVIOUS, TEXTURE, CONSTANT[A]) + </programlisting></informalexample> +</refsect2> + +<note>You can't give a multiplication factor for arguments as you can +with blending.</note> + Use cogl_pipeline_set_layer_combine() instead + + %TRUE if the blend string was successfully parsed, and the + described texture combining is supported by the underlying driver and + or hardware. On failure, %FALSE is returned and @error is set + + + + + A #CoglMaterial object + + + + Specifies the layer you want define a combine function for + + + + A <link linkend="cogl-Blend-Strings">Cogl blend string</link> + describing the desired texture combine function. + + + + + + When you are using the 'CONSTANT' color source in a layer combine +description then you can use this function to define its value. + Use cogl_pipeline_set_layer_combine_constant() +instead + + + + + + A #CoglMaterial object + + + + Specifies the layer you want to specify a constant used + for texture combining + + + + The constant color you want + + + + + + Changes the decimation and interpolation filters used when a texture is +drawn at other scales than 100%. + Use cogl_pipeline_set_layer_filters() instead + + + + + + A #CoglMaterial object + + + + the layer number to change. + + + + the filter used when scaling a texture down. + + + + the filter used when magnifying a texture. + + + + + + This function lets you set a matrix that can be used to e.g. translate +and rotate a single layer of a material used to fill your geometry. + Use cogl_pipeline_set_layer_matrix() instead + + + + + + A #CoglMaterial object + + + + the index for the layer inside @material + + + + the transformation matrix for the layer + + + + + + When rendering points, if @enable is %TRUE then the texture +coordinates for this layer will be replaced with coordinates that +vary from 0.0 to 1.0 across the primitive. The top left of the +point will have the coordinates 0.0,0.0 and the bottom right will +have 1.0,1.0. If @enable is %FALSE then the coordinates will be +fixed for the entire point. + +This function will only work if %COGL_FEATURE_POINT_SPRITE is +available. If the feature is not available then the function will +return %FALSE and set @error. + Use cogl_pipeline_set_layer_point_sprite_coords_enabled() + instead + + %TRUE if the function succeeds, %FALSE otherwise. + + + + + a #CoglHandle to a material. + + + + the layer number to change. + + + + whether to enable point sprite coord generation. + + + + + + Sets the wrap mode for all three coordinates of texture lookups on +this layer. This is equivalent to calling +cogl_material_set_layer_wrap_mode_s(), +cogl_material_set_layer_wrap_mode_t() and +cogl_material_set_layer_wrap_mode_p() separately. + Use cogl_pipeline_set_layer_wrap_mode() instead + + + + + + A #CoglMaterial object + + + + the layer number to change. + + + + the new wrap mode + + + + + + Sets the wrap mode for the 'p' coordinate of texture lookups on +this layer. 'p' is the third coordinate. + Use cogl_pipeline_set_layer_wrap_mode_p() instead + + + + + + A #CoglMaterial object + + + + the layer number to change. + + + + the new wrap mode + + + + + + Sets the wrap mode for the 's' coordinate of texture lookups on this layer. + Use cogl_pipeline_set_layer_wrap_mode_s() instead + + + + + + A #CoglMaterial object + + + + the layer number to change. + + + + the new wrap mode + + + + + + Sets the wrap mode for the 't' coordinate of texture lookups on this layer. + Use cogl_pipeline_set_layer_wrap_mode_t() instead + + + + + + A #CoglMaterial object + + + + the layer number to change. + + + + the new wrap mode + + + + + + Changes the size of points drawn when %COGL_VERTICES_MODE_POINTS is +used with the vertex buffer API. Note that typically the GPU will +only support a limited minimum and maximum range of point sizes. If +the chosen point size is outside that range then the nearest value +within that range will be used instead. The size of a point is in +screen space so it will be the same regardless of any +transformations. The default point size is 1.0. + Use cogl_pipeline_set_point_size() instead + + + + + + a material. + + + + the new point size. + + + + + + Sets the shininess of the material, in the standard OpenGL lighting +model, which determines the size of the specular highlights. A +higher @shininess will produce smaller highlights which makes the +object appear more shiny. + +The default value is 0.0 + Use the #CoglSnippet shader api for lighting + + + + + + A #CoglMaterial object + + + + The desired shininess; must be >= 0.0 + + + + + + Sets the material's specular color, in the standard OpenGL lighting +model. The intensity of the specular color depends on the viewport +position, and is brightest along the lines of reflection. + +The default value is (0.0, 0.0, 0.0, 1.0) + Use the #CoglSnippet shader api for lighting + + + + + + A #CoglMaterial object + + + + The components of the desired specular color + + + + + + Associates a linked CoglProgram with the given material so that the +program can take full control of vertex and/or fragment processing. + +This is an example of how it can be used to associate an ARBfp +program with a #CoglMaterial: +|[ +CoglHandle shader; +CoglHandle program; +CoglMaterial *material; + +shader = cogl_create_shader (COGL_SHADER_TYPE_FRAGMENT); +cogl_shader_source (shader, + "!!ARBfp1.0\n" + "MOV result.color,fragment.color;\n" + "END\n"); +cogl_shader_compile (shader); + +program = cogl_create_program (); +cogl_program_attach_shader (program, shader); +cogl_program_link (program); + +material = cogl_material_new (); +cogl_material_set_user_program (material, program); + +cogl_set_source_color4ub (0xff, 0x00, 0x00, 0xff); +cogl_rectangle (0, 0, 100, 100); +]| + +It is possibly worth keeping in mind that this API is not part of +the long term design for how we want to expose shaders to Cogl +developers (We are planning on deprecating the cogl_program and +cogl_shader APIs in favour of a "snippet" framework) but in the +meantime we hope this will handle most practical GLSL and ARBfp +requirements. + +Also remember you need to check for either the +%COGL_FEATURE_SHADERS_GLSL or %COGL_FEATURE_SHADERS_ARBFP before +using the cogl_program or cogl_shader API. + Use #CoglSnippet api instead instead + + + + + + a #CoglMaterial object. + + + + A #CoglHandle to a linked CoglProgram + + + + + + Increment the reference count for a #CoglMaterial. + Use cogl_object_ref() instead + + the @material. + + + + + a #CoglMaterial object. + + + + + + Decrement the reference count for a #CoglMaterial. + Use cogl_object_unref() instead + + + + + + a #CoglMaterial object. + + + + + + + Alpha testing happens before blending primitives with the framebuffer and +gives an opportunity to discard fragments based on a comparison with the +incoming alpha value and a reference alpha value. The #CoglMaterialAlphaFunc +determines how the comparison is done. + + Never let the fragment through. + + + Let the fragment through if the incoming + alpha value is less than the reference alpha value + + + Let the fragment through if the incoming + alpha value equals the reference alpha value + + + Let the fragment through if the incoming + alpha value is less than or equal to the reference alpha value + + + Let the fragment through if the incoming + alpha value is greater than the reference alpha value + + + Let the fragment through if the incoming + alpha value does not equal the reference alpha value + + + Let the fragment through if the incoming + alpha value is greater than or equal to the reference alpha value. + + + Always let the fragment through. + + + + Texture filtering is used whenever the current pixel maps either to more +than one texture element (texel) or less than one. These filter enums +correspond to different strategies used to come up with a pixel color, by +possibly referring to multiple neighbouring texels and taking a weighted +average or simply using the nearest texel. + + Measuring in manhatten distance from the, + current pixel center, use the nearest texture texel + + + Use the weighted average of the 4 texels + nearest the current pixel center + + + Select the mimap level whose + texel size most closely matches the current pixel, and use the + %COGL_MATERIAL_FILTER_NEAREST criterion + + + Select the mimap level whose + texel size most closely matches the current pixel, and use the + %COGL_MATERIAL_FILTER_LINEAR criterion + + + Select the two mimap levels + whose texel size most closely matches the current pixel, use + the %COGL_MATERIAL_FILTER_NEAREST criterion on each one and take + their weighted average + + + Select the two mimap levels + whose texel size most closely matches the current pixel, use + the %COGL_MATERIAL_FILTER_LINEAR criterion on each one and take + their weighted average + + + + + Queries the currently set downscaling filter for a material later + No replacement + + the current downscaling filter + + + + + A #CoglMaterialLayer object + + + + + + Queries the currently set downscaling filter for a material layer + No replacement + + the current downscaling filter + + + + + a #CoglHandle for a material layer + + + + + + Extracts a texture handle for a specific layer. + +<note>In the future Cogl may support purely GLSL based layers; for those +layers this function which will likely return %COGL_INVALID_HANDLE if you +try to get the texture handle from them. Considering this scenario, you +should call cogl_material_layer_get_type() first in order check it is of +type %COGL_MATERIAL_LAYER_TYPE_TEXTURE before calling this function.</note> + No replacement + + a #CoglHandle for the texture inside the layer + + + + + A #CoglMaterialLayer object + + + + + + Retrieves the type of the layer + +Currently there is only one type of layer defined: +%COGL_MATERIAL_LAYER_TYPE_TEXTURE, but considering we may add purely GLSL +based layers in the future, you should write code that checks the type +first. + No replacement + + the type of the layer + + + + + A #CoglMaterialLayer object + + + + + + Gets the wrap mode for the 'p' coordinate of texture lookups on +this layer. 'p' is the third coordinate. + Use cogl_pipeline_layer_get_wrap_mode_p() instead + + the wrap mode value for the p coordinate. + + + + + A #CoglMaterialLayer object + + + + + + Gets the wrap mode for the 's' coordinate of texture lookups on this layer. + Use cogl_pipeline_layer_get_wrap_mode_s() instead + + the wrap mode value for the s coordinate. + + + + + A #CoglMaterialLayer object + + + + + + Gets the wrap mode for the 't' coordinate of texture lookups on this layer. + Use cogl_pipeline_layer_get_wrap_mode_t() instead + + the wrap mode value for the t coordinate. + + + + + A #CoglMaterialLayer object + + + + + + + The callback prototype used with cogl_material_foreach_layer() for +iterating all the layers of a @material. + + + + + + The #CoglMaterial whos layers are being iterated + + + + The current layer index + + + + The private data passed to cogl_material_foreach_layer() + + + + + + Available types of layers for a #CoglMaterial. This enumeration +might be expanded in later versions. + + The layer represents a + <link linkend="cogl-Textures">texture</link> + + + + The wrap mode specifies what happens when texture coordinates +outside the range 0→1 are used. Note that if the filter mode is +anything but %COGL_MATERIAL_FILTER_NEAREST then texels outside the +range 0→1 might be used even when the coordinate is exactly 0 or 1 +because OpenGL will try to sample neighbouring pixels. For example +if you are trying to render the full texture then you may get +artifacts around the edges when the pixels from the other side are +merged in if the wrap mode is set to repeat. + + The texture will be repeated. This + is useful for example to draw a tiled background. + + + The coordinates outside the + range 0→1 will sample copies of the edge pixels of the + texture. This is useful to avoid artifacts if only one copy of + the texture is being rendered. + + + Cogl will try to automatically + decide which of the above two to use. For cogl_rectangle(), it + will use repeat mode if any of the texture coordinates are + outside the range 0→1, otherwise it will use clamp to edge. For + cogl_polygon() it will always use repeat mode. For + cogl_vertex_buffer_draw() it will use repeat mode except for + layers that have point sprite coordinate generation enabled. This + is the default value. + + + + A CoglMatrix holds a 4x4 transform matrix. This is a single precision, +column-major matrix which means it is compatible with what OpenGL expects. + +A CoglMatrix can represent transforms such as, rotations, scaling, +translation, sheering, and linear projections. You can combine these +transforms by multiplying multiple matrices in the order you want them +applied. + +The transformation of a vertex (x, y, z, w) by a CoglMatrix is given by: + +|[ + x_new = xx * x + xy * y + xz * z + xw * w + y_new = yx * x + yy * y + yz * z + yw * w + z_new = zx * x + zy * y + zz * z + zw * w + w_new = wx * x + wy * y + wz * z + ww * w +]| + +Where w is normally 1 + +<note>You must consider the members of the CoglMatrix structure read only, +and all matrix modifications must be done via the cogl_matrix API. This +allows Cogl to annotate the matrices internally. Violation of this will give +undefined results. If you need to initialize a matrix with a constant other +than the identity matrix you can use cogl_matrix_init_from_array().</note> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Allocates a new #CoglMatrix on the heap and initializes it with +the same values as @matrix. + + A newly allocated #CoglMatrix which +should be freed using cogl_matrix_free() + + + + + A 4x4 transformation matrix you want to copy + + + + + + Frees a #CoglMatrix that was previously allocated via a call to +cogl_matrix_copy(). + + + + + + A 4x4 transformation matrix you want to free + + + + + + Multiplies @matrix by the given frustum perspective matrix. + + + + + + A 4x4 transformation matrix + + + + X position of the left clipping plane where it + intersects the near clipping plane + + + + X position of the right clipping plane where it + intersects the near clipping plane + + + + Y position of the bottom clipping plane where it + intersects the near clipping plane + + + + Y position of the top clipping plane where it intersects + the near clipping plane + + + + The distance to the near clipping plane (Must be positive) + + + + The distance to the far clipping plane (Must be positive) + + + + + + Casts @matrix to a float array which can be directly passed to OpenGL. + + a pointer to the float array + + + + + A 4x4 transformation matrix + + + + + + Gets the inverse transform of a given matrix and uses it to initialize +a new #CoglMatrix. + +<note>Although the first parameter is annotated as const to indicate +that the transform it represents isn't modified this function may +technically save a copy of the inverse transform within the given +#CoglMatrix so that subsequent requests for the inverse transform may +avoid costly inversion calculations.</note> + + %TRUE if the inverse was successfully calculated or %FALSE + for degenerate transformations that can't be inverted (in this case the + @inverse matrix will simply be initialized with the identity matrix) + + + + + A 4x4 transformation matrix + + + + The destination for a 4x4 inverse transformation matrix + + + + + + Initializes @matrix with the contents of @array + + + + + + A 4x4 transformation matrix + + + + A linear array of 16 floats (column-major order) + + + + + + Initializes @matrix from a #CoglEuler rotation. + + + + + + A 4x4 transformation matrix + + + + A #CoglEuler + + + + + + Initializes @matrix from a #CoglQuaternion rotation. + + + + + + A 4x4 transformation matrix + + + + A #CoglQuaternion + + + + + + Resets matrix to the identity matrix: + +|[ + .xx=1; .xy=0; .xz=0; .xw=0; + .yx=0; .yy=1; .yz=0; .yw=0; + .zx=0; .zy=0; .zz=1; .zw=0; + .wx=0; .wy=0; .wz=0; .ww=1; +]| + + + + + + A 4x4 transformation matrix + + + + + + Resets matrix to the (tx, ty, tz) translation matrix: + +|[ + .xx=1; .xy=0; .xz=0; .xw=tx; + .yx=0; .yy=1; .yz=0; .yw=ty; + .zx=0; .zy=0; .zz=1; .zw=tz; + .wx=0; .wy=0; .wz=0; .ww=1; +]| + + + + + + A 4x4 transformation matrix + + + + x coordinate of the translation vector + + + + y coordinate of the translation vector + + + + z coordinate of the translation vector + + + + + + Determines if the given matrix is an identity matrix. + + %TRUE if @matrix is an identity matrix else %FALSE + + + + + A #CoglMatrix + + + + + + Applies a view transform @matrix that positions the camera at +the coordinate (@eye_position_x, @eye_position_y, @eye_position_z) +looking towards an object at the coordinate (@object_x, @object_y, +@object_z). The top of the camera is aligned to the given world up +vector, which is normally simply (0, 1, 0) to map up to the +positive direction of the y axis. + +Because there is a lot of missleading documentation online for +gluLookAt regarding the up vector we want to try and be a bit +clearer here. + +The up vector should simply be relative to your world coordinates +and does not need to change as you move the eye and object +positions. Many online sources may claim that the up vector needs +to be perpendicular to the vector between the eye and object +position (partly because the man page is somewhat missleading) but +that is not necessary for this function. + +<note>You should never look directly along the world-up +vector.</note> + +<note>It is assumed you are using a typical projection matrix where +your origin maps to the center of your viewport.</note> + +<note>Almost always when you use this function it should be the first +transform applied to a new modelview transform</note> + + + + + + A 4x4 transformation matrix + + + + The X coordinate to look from + + + + The Y coordinate to look from + + + + The Z coordinate to look from + + + + The X coordinate of the object to look at + + + + The Y coordinate of the object to look at + + + + The Z coordinate of the object to look at + + + + The X component of the world's up direction vector + + + + The Y component of the world's up direction vector + + + + The Z component of the world's up direction vector + + + + + + Multiplies the two supplied matrices together and stores +the resulting matrix inside @result. + +<note>It is possible to multiply the @a matrix in-place, so +@result can be equal to @a but can't be equal to @b.</note> + + + + + + The address of a 4x4 matrix to store the result in + + + + A 4x4 transformation matrix + + + + A 4x4 transformation matrix + + + + + + Multiplies @matrix by a parallel projection matrix. + Use cogl_matrix_orthographic() + + + + + + A 4x4 transformation matrix + + + + The coordinate for the left clipping plane + + + + The coordinate for the right clipping plane + + + + The coordinate for the bottom clipping plane + + + + The coordinate for the top clipping plane + + + + The <emphasis>distance</emphasis> to the near clipping + plane (will be <emphasis>negative</emphasis> if the plane is + behind the viewer) + + + + The <emphasis>distance</emphasis> to the far clipping + plane (will be <emphasis>negative</emphasis> if the plane is + behind the viewer) + + + + + + Multiplies @matrix by a parallel projection matrix. + + + + + + A 4x4 transformation matrix + + + + The x coordinate for the first vertical clipping plane + + + + The y coordinate for the first horizontal clipping plane + + + + The x coordinate for the second vertical clipping plane + + + + The y coordinate for the second horizontal clipping plane + + + + The <emphasis>distance</emphasis> to the near clipping + plane (will be <emphasis>negative</emphasis> if the plane is + behind the viewer) + + + + The <emphasis>distance</emphasis> to the far clipping + plane (will be <emphasis>negative</emphasis> if the plane is + behind the viewer) + + + + + + Multiplies @matrix by the described perspective matrix + +<note>You should be careful not to have to great a @z_far / @z_near +ratio since that will reduce the effectiveness of depth testing +since there wont be enough precision to identify the depth of +objects near to each other.</note> + + + + + + A 4x4 transformation matrix + + + + Vertical field of view angle in degrees. + + + + The (width over height) aspect ratio for display + + + + The distance to the near clipping plane (Must be positive, + and must not be 0) + + + + The distance to the far clipping plane (Must be positive) + + + + + + Projects an array of input points and writes the result to another +array of output points. The input points can either have 2, 3 or 4 +components each. The output points always have 4 components (known +as homogenous coordinates). The output array can simply point to +the input array to do the transform in-place. + +Here's an example with differing input/output strides: +|[ +typedef struct { + float x,y; + uint8_t r,g,b,a; + float s,t,p; +} MyInVertex; +typedef struct { + uint8_t r,g,b,a; + float x,y,z; +} MyOutVertex; +MyInVertex vertices[N_VERTICES]; +MyOutVertex results[N_VERTICES]; +CoglMatrix matrix; + +my_load_vertices (vertices); +my_get_matrix (&matrix); + +cogl_matrix_project_points (&matrix, + 2, + sizeof (MyInVertex), + &vertices[0].x, + sizeof (MyOutVertex), + &results[0].x, + N_VERTICES); +]| + + + + + + A projection matrix + + + + The number of position components for each input point. + (either 2, 3 or 4) + + + + The stride in bytes between input points. + + + + A pointer to the first component of the first input point. + + + + The stride in bytes between output points. + + + + A pointer to the first component of the first output point. + + + + The number of points to transform. + + + + + + Multiplies @matrix with a rotation matrix that applies a rotation +of @angle degrees around the specified 3D vector. + + + + + + A 4x4 transformation matrix + + + + The angle you want to rotate in degrees + + + + X component of your rotation vector + + + + Y component of your rotation vector + + + + Z component of your rotation vector + + + + + + Multiplies @matrix with a rotation transformation described by the +given #CoglEuler. + + + + + + A 4x4 transformation matrix + + + + A euler describing a rotation + + + + + + Multiplies @matrix with a rotation transformation described by the +given #CoglQuaternion. + + + + + + A 4x4 transformation matrix + + + + A quaternion describing a rotation + + + + + + Multiplies @matrix with a transform matrix that scales along the X, +Y and Z axis. + + + + + + A 4x4 transformation matrix + + + + The X scale factor + + + + The Y scale factor + + + + The Z scale factor + + + + + + Transforms a point whos position is given and returned as four float +components. + + + + + + A 4x4 transformation matrix + + + + The X component of your points position + + + + The Y component of your points position + + + + The Z component of your points position + + + + The W component of your points position + + + + + + Transforms an array of input points and writes the result to +another array of output points. The input points can either have 2 +or 3 components each. The output points always have 3 components. +The output array can simply point to the input array to do the +transform in-place. + +If you need to transform 4 component points see +cogl_matrix_project_points(). + +Here's an example with differing input/output strides: +|[ +typedef struct { + float x,y; + uint8_t r,g,b,a; + float s,t,p; +} MyInVertex; +typedef struct { + uint8_t r,g,b,a; + float x,y,z; +} MyOutVertex; +MyInVertex vertices[N_VERTICES]; +MyOutVertex results[N_VERTICES]; +CoglMatrix matrix; + +my_load_vertices (vertices); +my_get_matrix (&matrix); + +cogl_matrix_transform_points (&matrix, + 2, + sizeof (MyInVertex), + &vertices[0].x, + sizeof (MyOutVertex), + &results[0].x, + N_VERTICES); +]| + + + + + + A transformation matrix + + + + The number of position components for each input point. + (either 2 or 3) + + + + The stride in bytes between input points. + + + + A pointer to the first component of the first input point. + + + + The stride in bytes between output points. + + + + A pointer to the first component of the first output point. + + + + The number of points to transform. + + + + + + Multiplies @matrix with a transform matrix that translates along +the X, Y and Z axis. + + + + + + A 4x4 transformation matrix + + + + The X translation you want to apply + + + + The Y translation you want to apply + + + + The Z translation you want to apply + + + + + + Replaces @matrix with its transpose. Ie, every element (i,j) in the +new matrix is taken from element (j,i) in the old matrix. + + + + + + A #CoglMatrix + + + + + + Multiplies @matrix by a view transform that maps the 2D coordinates +(0,0) top left and (@width_2d,@height_2d) bottom right the full viewport +size. Geometry at a depth of 0 will now lie on this 2D plane. + +Note: this doesn't multiply the matrix by any projection matrix, +but it assumes you have a perspective projection as defined by +passing the corresponding arguments to cogl_matrix_frustum(). + +Toolkits such as Clutter that mix 2D and 3D drawing can use this to +create a 2D coordinate system within a 3D perspective projected +view frustum. + + + + + + A 4x4 transformation matrix + + + + coord of left vertical clipping plane + + + + coord of right vertical clipping plane + + + + coord of bottom horizontal clipping plane + + + + coord of top horizontal clipping plane + + + + The distance to the near clip plane. Never pass 0 and always pass + a positive number. + + + + The distance to the 2D plane. (Should always be positive and + be between @z_near and the z_far value that was passed to + cogl_matrix_frustum()) + + + + The width of the 2D coordinate system + + + + The height of the 2D coordinate system + + + + + + Multiplies @matrix by a view transform that maps the 2D coordinates +(0,0) top left and (@width_2d,@height_2d) bottom right the full viewport +size. Geometry at a depth of 0 will now lie on this 2D plane. + +Note: this doesn't multiply the matrix by any projection matrix, +but it assumes you have a perspective projection as defined by +passing the corresponding arguments to cogl_matrix_perspective(). + +Toolkits such as Clutter that mix 2D and 3D drawing can use this to +create a 2D coordinate system within a 3D perspective projected +view frustum. + + + + + + + + + A field of view angle for the Y axis + + + + The ratio of width to height determining the field of view angle + for the x axis. + + + + The distance to the near clip plane. Never pass 0 and always pass + a positive number. + + + + The distance to the 2D plane. (Should always be positive and + be between @z_near and the z_far value that was passed to + cogl_matrix_frustum()) + + + + The width of the 2D coordinate system + + + + The height of the 2D coordinate system + + + + + + Compares two matrices to see if they represent the same +transformation. Although internally the matrices may have different +annotations associated with them and may potentially have a cached +inverse matrix these are not considered in the comparison. + + + + + + A 4x4 transformation matrix + + + + A 4x4 transformation matrix + + + + + + + + This creates an offscreen buffer object using the given @texture as the +primary color buffer. It doesn't just initialize the contents of the +offscreen buffer with the @texture; they are tightly bound so that +drawing to the offscreen buffer effectivly updates the contents of the +given texture. You don't need to destroy the offscreen buffer before +you can use the @texture again. + +<note>This only works with low-level #CoglTexture types such as +#CoglTexture2D, #CoglTexture3D and #CoglTextureRectangle, and not +with meta-texture types such as #CoglTexture2DSliced.</note> + Use cogl_offscreen_new_with_texture instead. + + a newly instantiated #CoglOffscreen + framebuffer or %NULL if it wasn't possible to create the + buffer. + + + + + A #CoglTexture pointer + + + + + + This creates an offscreen framebuffer object using the given +@texture as the primary color buffer. It doesn't just initialize +the contents of the offscreen buffer with the @texture; they are +tightly bound so that drawing to the offscreen buffer effectively +updates the contents of the given texture. You don't need to +destroy the offscreen buffer before you can use the @texture again. + +<note>This api only works with low-level #CoglTexture types such as +#CoglTexture2D, #CoglTexture3D and #CoglTextureRectangle, and not +with meta-texture types such as #CoglTexture2DSliced.</note> + +The storage for the framebuffer is actually allocated lazily +so this function will never return %NULL to indicate a runtime +error. This means it is still possible to configure the framebuffer +before it is really allocated. + +Simple applications without full error handling can simply rely on +Cogl to lazily allocate the storage of framebuffers but you should +be aware that if Cogl encounters an error (such as running out of +GPU memory) then your application will simply abort with an error +message. If you need to be able to catch such exceptions at runtime +then you can explicitly allocate your framebuffer when you have +finished configuring it by calling cogl_framebuffer_allocate() and +passing in a #CoglError argument to catch any exceptions. + + a newly instantiated #CoglOffscreen + framebuffer. + + + + + A #CoglTexture pointer + + + + + + Increments the reference count on the @offscreen framebuffer. + cogl_object_ref() should be used in new code. + + For convenience it returns the + given @offscreen + + + + + A pointer to a #CoglOffscreen framebuffer + + + + + + Decreases the reference count for the @offscreen buffer and frees it when +the count reaches 0. + cogl_object_unref() should be used in new code. + + + + + + A pointer to a #CoglOffscreen framebuffer + + + + + + + + + + + + + + + + + + + + Pixel formats used by Cogl. For the formats with a byte per +component, the order of the components specify the order in +increasing memory addresses. So for example +%COGL_PIXEL_FORMAT_RGB_888 would have the red component in the +lowest address, green in the next address and blue after that +regardless of the endianness of the system. + +For the formats with non byte aligned components the component +order specifies the order within a 16-bit or 32-bit number from +most significant bit to least significant. So for +%COGL_PIXEL_FORMAT_RGB_565, the red component would be in bits +11-15, the green component would be in 6-11 and the blue component +would be in 1-5. Therefore the order in memory depends on the +endianness of the system. + +When uploading a texture %COGL_PIXEL_FORMAT_ANY can be used as the +internal format. Cogl will try to pick the best format to use +internally and convert the texture data if necessary. + + Any format + + + 8 bits alpha mask + + + RGB, 16 bits + + + RGBA, 16 bits + + + RGBA, 16 bits + + + Not currently supported + + + Single luminance component + + + RG, 16 bits. Note that red-green textures + are only available if %COGL_FEATURE_ID_TEXTURE_RG is advertised. + See cogl_texture_set_components() for details. + + + RGB, 24 bits + + + BGR, 24 bits + + + RGBA, 32 bits + + + BGRA, 32 bits + + + ARGB, 32 bits + + + ABGR, 32 bits + + + RGBA, 32 bits, 10 bpc + + + BGRA, 32 bits, 10 bpc + + + ARGB, 32 bits, 10 bpc + + + ABGR, 32 bits, 10 bpc + + + Premultiplied RGBA, 32 bits + + + Premultiplied BGRA, 32 bits + + + Premultiplied ARGB, 32 bits + + + Premultiplied ABGR, 32 bits + + + Premultiplied RGBA, 16 bits + + + Premultiplied RGBA, 16 bits + + + Premultiplied RGBA, 32 bits, 10 bpc + + + Premultiplied BGRA, 32 bits, 10 bpc + + + Premultiplied ARGB, 32 bits, 10 bpc + + + Premultiplied ABGR, 32 bits, 10 bpc + + + + + + + + + + + + Flags for cogl_framebuffer_read_pixels_into_bitmap() + + Read from the color buffer + + + + + + + + + + + + + Types of shaders + + A program for proccessing vertices + + + A program for processing fragments + + + + Represents how draw should affect the two buffers +of a stereo framebuffer. See cogl_framebuffer_set_stereo_mode(). + + draw to both stereo buffers + + + draw only to the left stereo buffer + + + draw only to the left stereo buffer + + + + Error enumeration for Cogl + +The @COGL_SYSTEM_ERROR_UNSUPPORTED error can be thrown for a +variety of reasons. For example: + +<itemizedlist> + <listitem><para>You've tried to use a feature that is not + advertised by cogl_has_feature(). This could happen if you create + a 2d texture with a non-power-of-two size when + %COGL_FEATURE_ID_TEXTURE_NPOT is not advertised.</para></listitem> + <listitem><para>The GPU can not handle the configuration you have + requested. An example might be if you try to use too many texture + layers in a single #CoglPipeline</para></listitem> + <listitem><para>The driver does not support some + configuration.</para></listiem> +</itemizedlist> + +Currently this is only used by Cogl API marked as experimental so +this enum should also be considered experimental. + + You tried to use a feature or + configuration not currently available. + + + You tried to allocate a resource + such as a texture and there wasn't enough memory. + + + + + + + + + + + + + Creates a #CoglTexture from a #CoglBitmap. + Use specific constructors such as + cogl_texture_2d_new_from_bitmap() + + A newly created #CoglTexture or + %NULL on failure + + + + + A #CoglBitmap pointer + + + + Optional flags for the texture, or %COGL_TEXTURE_NONE + + + + the #CoglPixelFormat to use for the GPU storage of the +texture + + + + + + Creates a new #CoglTexture based on data residing in memory. + Use specific constructors such as + cogl_texture_2d_new_from_data() + + A newly created #CoglTexture or + %NULL on failure + + + + + width of texture in pixels + + + + height of texture in pixels + + + + Optional flags for the texture, or %COGL_TEXTURE_NONE + + + + the #CoglPixelFormat the buffer is stored in in RAM + + + + the #CoglPixelFormat that will be used for storing + the buffer on the GPU. If COGL_PIXEL_FORMAT_ANY is given then a + premultiplied format similar to the format of the source data will + be used. The default blending equations of Cogl expect premultiplied + color data; the main use of passing a non-premultiplied format here + is if you have non-premultiplied source data and are going to adjust + the blend mode (see cogl_material_set_blend()) or use the data for + something other than straight blending. + + + + the memory offset in bytes between the starts of + scanlines in @data + + + + pointer the memory region where the source buffer resides + + + + + + Creates a #CoglTexture from an image file. + Use specific constructors such as + cogl_texture_2d_new_from_file() + + A newly created #CoglTexture or + %NULL on failure + + + + + the file to load + + + + Optional flags for the texture, or %COGL_TEXTURE_NONE + + + + the #CoglPixelFormat to use for the GPU storage of the + texture. If %COGL_PIXEL_FORMAT_ANY is given then a premultiplied + format similar to the format of the source data will be used. The + default blending equations of Cogl expect premultiplied color data; + the main use of passing a non-premultiplied format here is if you + have non-premultiplied source data and are going to adjust the blend + mode (see cogl_material_set_blend()) or use the data for something + other than straight blending. + + + + + + Creates a #CoglTexture based on an existing OpenGL texture; the +width, height and format are passed along since it is not always +possible to query these from OpenGL. + +The waste arguments allow you to create a Cogl texture that maps to +a region smaller than the real OpenGL texture. For instance if your +hardware only supports power-of-two textures you may load a +non-power-of-two image into a larger power-of-two texture and use +the waste arguments to tell Cogl which region should be mapped to +the texture coordinate range [0:1]. + Use specific constructors such as + cogl_texture_2d_new_from_foreign() + + A newly created #CoglTexture or + %NULL on failure + + + + + opengl handle of foreign texture. + + + + opengl target type of foreign texture + + + + width of foreign texture + + + + height of foreign texture. + + + + horizontal waste on the right hand edge of the texture. + + + + vertical waste on the bottom edge of the texture. + + + + format of the foreign texture. + + + + + + Creates a new #CoglTexture with the specified dimensions and pixel format. + Use specific constructors such as + cogl_texture_2d_new_with_size() + + A newly created #CoglTexture or %NULL on failure + + + + + width of texture in pixels. + + + + height of texture in pixels. + + + + Optional flags for the texture, or %COGL_TEXTURE_NONE + + + + the #CoglPixelFormat to use for the GPU storage of the + texture. + + + + + + Explicitly allocates the storage for the given @texture which +allows you to be sure that there is enough memory for the +texture and if not then the error can be handled gracefully. + +<note>Normally applications don't need to use this api directly +since the texture will be implicitly allocated when data is set on +the texture, or if the texture is attached to a #CoglOffscreen +framebuffer and rendered too.</note> + + %TRUE if the texture was successfully allocated, + otherwise %FALSE and @error will be updated if it + wasn't %NULL. + + + + + A #CoglTexture + + + + + + Queries what components the given @texture stores internally as set +via cogl_texture_set_components(). + +For textures created by the ‘_with_size’ constructors the default +is %COGL_TEXTURE_COMPONENTS_RGBA. The other constructors which take +a %CoglBitmap or a data pointer default to the same components as +the pixel format of the data. + + + + + + a #CoglTexture pointer. + + + + + + Copies the pixel data from a cogl texture to system memory. + +<note>Don't pass the value of cogl_texture_get_rowstride() as the +@rowstride argument, the rowstride should be the rowstride you +want for the destination @data buffer not the rowstride of the +source texture</note> + + the size of the texture data in bytes + + + + + a #CoglTexture pointer. + + + + the #CoglPixelFormat to store the texture as. + + + + the rowstride of @data in bytes or pass 0 to calculate + from the bytes-per-pixel of @format multiplied by the + @texture width. + + + + memory location to write the @texture's contents, or %NULL +to only query the data size through the return value. + + + + + + Queries the GL handles for a GPU side texture through its #CoglTexture. + +If the texture is spliced the data for the first sub texture will be +queried. + + %TRUE if the handle was successfully retrieved, %FALSE + if the handle was invalid + + + + + a #CoglTexture pointer. + + + + pointer to return location for the + textures GL handle, or %NULL. + + + + pointer to return location for the + GL target type, or %NULL. + + + + + + Queries the height of a cogl texture. + + the height of the GPU side texture in pixels + + + + + a #CoglTexture pointer. + + + + + + Queries the maximum wasted (unused) pixels in one dimension of a GPU side +texture. + + the maximum waste + + + + + a #CoglTexture pointer. + + + + + + Queries the pre-multiplied alpha status for internally stored red, +green and blue components for the given @texture as set by +cogl_texture_set_premultiplied(). + +By default the pre-multipled state is @TRUE. + + %TRUE if red, green and blue components are + internally stored pre-multiplied by the alpha + value or %FALSE if not. + + + + + a #CoglTexture pointer. + + + + + + Queries the width of a cogl texture. + + the width of the GPU side texture in pixels + + + + + a #CoglTexture pointer. + + + + + + Queries if a texture is sliced (stored as multiple GPU side tecture +objects). + + %TRUE if the texture is sliced, %FALSE if the texture + is stored as a single GPU texture + + + + + a #CoglTexture pointer. + + + + + + Creates a new texture which represents a subregion of another +texture. The GL resources will be shared so that no new texture +data is actually allocated. + +Sub textures have undefined behaviour texture coordinates outside +of the range [0,1] are used. They also do not work with +CoglVertexBuffers. + +The sub texture will keep a reference to the full texture so you do +not need to keep one separately if you only want to use the sub +texture. + Use cogl_sub_texture_new() + + A newly created #CoglTexture or + %NULL on failure + + + + + a #CoglTexture pointer + + + + X coordinate of the top-left of the subregion + + + + Y coordinate of the top-left of the subregion + + + + Width in pixels of the subregion + + + + Height in pixels of the subregion + + + + + + Affects the internal storage format for this texture by specifying +what components will be required for sampling later. + +This api affects how data is uploaded to the GPU since unused +components can potentially be discarded from source data. + +For textures created by the ‘_with_size’ constructors the default +is %COGL_TEXTURE_COMPONENTS_RGBA. The other constructors which take +a %CoglBitmap or a data pointer default to the same components as +the pixel format of the data. + +Note that the %COGL_TEXTURE_COMPONENTS_RG format is not available +on all drivers. The availability can be determined by checking for +the %COGL_FEATURE_ID_TEXTURE_RG feature. If this format is used on +a driver where it is not available then %COGL_TEXTURE_ERROR_FORMAT +will be raised when the texture is allocated. Even if the feature +is not available then %COGL_PIXEL_FORMAT_RG_88 can still be used as +an image format as long as %COGL_TEXTURE_COMPONENTS_RG isn't used +as the texture's components. + + + + + + a #CoglTexture pointer. + + + + + + + + + @texture a #CoglTexture. +Sets all the pixels for a given mipmap @level by copying the pixel +data pointed to by the @data argument into the given @texture. + +@data should point to the first pixel to copy corresponding +to the top left of the mipmap @level being set. + +If @rowstride equals 0 then it will be automatically calculated +from the width of the mipmap level and the bytes-per-pixel for the +given @format. + +A mipmap @level of 0 corresponds to the largest, base image of a +texture and @level 1 is half the width and height of level 0. If +dividing any dimension of the previous level by two results in a +fraction then round the number down (floor()), but clamp to 1 +something like this: + +|[ + next_width = MAX (1, floor (prev_width)); +]| + +You can determine the number of mipmap levels for a given texture +like this: + +|[ + n_levels = 1 + floor (log2 (max_dimension)); +]| + +Where %max_dimension is the larger of cogl_texture_get_width() and +cogl_texture_get_height(). + +It is an error to pass a @level number >= the number of levels that +@texture can have according to the above calculation. + +<note>Since the storage for a #CoglTexture is allocated lazily then +if the given @texture has not previously been allocated then this +api can return %FALSE and throw an exceptional @error if there is +not enough memory to allocate storage for @texture.</note> + + %TRUE if the data upload was successful, and + %FALSE otherwise + + + + + + + + the #CoglPixelFormat used in the source @data buffer. + + + + rowstride of the source @data buffer (computed from + the texture width and @format if it equals 0) + + + + the source data, pointing to the first top-left pixel to set + + + + The mipmap level to update (Normally 0 for the largest, + base texture) + + + + + + Affects the internal storage format for this texture by specifying +whether red, green and blue color components should be stored as +pre-multiplied alpha values. + +This api affects how data is uploaded to the GPU since Cogl will +convert source data to have premultiplied or unpremultiplied +components according to this state. + +For example if you create a texture via +cogl_texture_2d_new_with_size() and then upload data via +cogl_texture_set_data() passing a source format of +%COGL_PIXEL_FORMAT_RGBA_8888 then Cogl will internally multiply the +red, green and blue components of the source data by the alpha +component, for each pixel so that the internally stored data has +pre-multiplied alpha components. If you instead upload data that +already has pre-multiplied components by passing +%COGL_PIXEL_FORMAT_RGBA_8888_PRE as the source format to +cogl_texture_set_data() then the data can be uploaded without being +converted. + +By default the @premultipled state is @TRUE. + + + + + + a #CoglTexture pointer. + + + + Whether any internally stored red, green or blue + components are pre-multiplied by an alpha + component. + + + + + + Sets the pixels in a rectangular subregion of @texture from an in-memory +buffer containing pixel data. + +<note>The region set can't be larger than the source @data</note> + + %TRUE if the subregion upload was successful, and + %FALSE otherwise + + + + + a #CoglTexture. + + + + upper left coordinate to use from source data. + + + + upper left coordinate to use from source data. + + + + upper left destination horizontal coordinate. + + + + upper left destination vertical coordinate. + + + + width of destination region to write. (Must be less + than or equal to @width) + + + + height of destination region to write. (Must be less + than or equal to @height) + + + + width of source data buffer. + + + + height of source data buffer. + + + + the #CoglPixelFormat used in the source buffer. + + + + rowstride of source buffer (computed from width if none +specified) + + + + the actual pixel data. + + + + + + Copies a specified source region from @bitmap to the position +(@src_x, @src_y) of the given destination texture @handle. + +<note>The region updated can't be larger than the source +bitmap</note> + + %TRUE if the subregion upload was successful, and + %FALSE otherwise + + + + + a #CoglTexture pointer + + + + upper left coordinate to use from the source bitmap. + + + + upper left coordinate to use from the source bitmap + + + + upper left destination horizontal coordinate. + + + + upper left destination vertical coordinate. + + + + width of destination region to write. (Must be less + than or equal to the bitmap width) + + + + height of destination region to write. (Must be less + than or equal to the bitmap height) + + + + The source bitmap to read from + + + + + + + See cogl_texture_set_components(). + + Only the alpha component + + + Red and green components. Note that + this can only be used if the %COGL_FEATURE_ID_TEXTURE_RG feature + is advertised. + + + Red, green and blue components + + + Red, green, blue and alpha components + + + Only a depth component + + + + Error codes that can be thrown when allocating textures. + + Unsupported size + + + Unsupported format + + + + + A primitive texture type that is + unsupported by the driver was used + + + + Flags to pass to the cogl_texture_new_* family of functions. + + No flags specified + + + Disables the automatic generation of + the mipmap pyramid from the base level image whenever it is + updated. The mipmaps are only generated when the texture is + rendered with a mipmap filter so it should be free to leave out + this flag when using other filtering modes + + + Disables the slicing of the texture + + + Disables the insertion of the texture inside + the texture atlas used by Cogl + + + + Constants representing the underlying hardware texture type of a +#CoglTexture. + + A #CoglTexture2D + + + A #CoglTexture3D + + + A #CoglTextureRectangle + + + + Used to specify vertex information when calling cogl_polygon() + + Model x-coordinate + + + + Model y-coordinate + + + + Model z-coordinate + + + + Texture x-coordinate + + + + Texture y-coordinate + + + + The color to use at this vertex. This is ignored if + use_color is %FALSE when calling cogl_polygon() + + + + + Different ways of interpreting vertices when drawing. + + FIXME, equivalent to +<constant>GL_POINTS</constant> + + + FIXME, equivalent to <constant>GL_LINES</constant> + + + FIXME, equivalent to +<constant>GL_LINE_LOOP</constant> + + + FIXME, equivalent to +<constant>GL_LINE_STRIP</constant> + + + FIXME, equivalent to +<constant>GL_TRIANGLES</constant> + + + FIXME, equivalent to +<constant>GL_TRIANGLE_STRIP</constant> + + + FIXME, equivalent to <constant>GL_TRIANGLE_FAN</constant> + + + + Enum used to represent the two directions of rotation. This can be +used to set the front face for culling by calling +cogl_pipeline_set_front_face_winding(). + + Vertices are in a clockwise order + + + Vertices are in a counter-clockwise order + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + We do not advise nor reliably support the interleaving of raw GL drawing and +Cogl drawing functions, but if you insist, cogl_begin_gl() and cogl_end_gl() +provide a simple mechanism that may at least give you a fighting chance of +succeeding. + +Note: this doesn't help you modify the behaviour of Cogl drawing functions +through the modification of GL state; that will never be reliably supported, +but if you are trying to do something like: + +|[ +{ + - setup some OpenGL state. + - draw using OpenGL (e.g. glDrawArrays() ) + - reset modified OpenGL state. + - continue using Cogl to draw +} +]| + +You should surround blocks of drawing using raw GL with cogl_begin_gl() +and cogl_end_gl(): + +|[ +{ + cogl_begin_gl (); + - setup some OpenGL state. + - draw using OpenGL (e.g. glDrawArrays() ) + - reset modified OpenGL state. + cogl_end_gl (); + - continue using Cogl to draw +} +]| + +Don't ever try and do: + +|[ +{ + - setup some OpenGL state. + - use Cogl to draw + - reset modified OpenGL state. +} +]| + +When the internals of Cogl evolves, this is very liable to break. + +This function will flush all batched primitives, and subsequently flush +all internal Cogl state to OpenGL as if it were going to draw something +itself. + +The result is that the OpenGL modelview matrix will be setup; the state +corresponding to the current source material will be set up and other world +state such as backface culling, depth and fogging enabledness will be sent +to OpenGL. + +<note>No special material state is flushed, so if you want Cogl to setup a +simplified material state it is your responsibility to set a simple source +material before calling cogl_begin_gl(). E.g. by calling +cogl_set_source_color4ub().</note> + +<note>It is your responsibility to restore any OpenGL state that you modify +to how it was after calling cogl_begin_gl() if you don't do this then the +result of further Cogl calls is undefined.</note> + +<note>You can not nest begin/end blocks.</note> + +Again we would like to stress, we do not advise the use of this API and if +possible we would prefer to improve Cogl than have developers require raw +OpenGL. + Use the #CoglGLES2Context api instead + + + + + + + + + + + Check whether @name occurs in list of extensions in @ext. + OpenGL is an implementation detail for Cogl and so it's + not appropriate to expose OpenGL extensions through the Cogl API. This + function can be replaced by the following equivalent code: +|[ + CoglBool retval = (strstr (ext, name) != NULL) ? TRUE : FALSE; +]| + + %TRUE if the extension occurs in the list, %FALSE otherwise. + + + + + extension to check for + + + + list of extensions + + + + + + Clears all the auxiliary buffers identified in the @buffers mask, and if +that includes the color buffer then the specified @color is used. + Use cogl_framebuffer_clear() api instead + + + + + + Background color to clear to + + + + A mask of #CoglBufferBit<!-- -->'s identifying which auxiliary + buffers to clear + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Compares two #CoglColor<!-- -->s and checks if they are the same. + +This function can be passed to g_hash_table_new() as the @key_equal_func +parameter, when using #CoglColor<!-- -->s as keys in a #GHashTable. + + %TRUE if the two colors are the same. + + + + + a #CoglColor + + + + a #CoglColor + + + + + + Converts a color expressed in HLS (hue, luminance and saturation) +values into a #CoglColor. + + + + + + return location for a #CoglColor + + + + hue value, in the 0 .. 360 range + + + + saturation value, in the 0 .. 1 range + + + + luminance value, in the 0 .. 1 range + + + + + + Create a new cogl program object that can be used to replace parts of the GL +rendering pipeline with custom code. + Use #CoglSnippet api + + a new cogl program. + + + + + Create a new shader handle, use cogl_shader_source() to set the +source code to be used on it. + Use #CoglSnippet api + + a new shader handle. + + + + + COGL_SHADER_TYPE_VERTEX or COGL_SHADER_TYPE_FRAGMENT. + + + + + + Prints the contents of a #CoglMatrix to stdout. + + + + + + A #CoglMatrix + + + + + + This function disables fogging, so primitives drawn afterwards will not be +blended with any previously set fog color. + Use #CoglSnippet shader api for fog + + + + + + This is the counterpart to cogl_begin_gl() used to delimit blocks of drawing +code using raw OpenGL. Please refer to cogl_begin_gl() for full details. + Use the #CoglGLES2Context api instead + + + + + + Checks whether the given COGL features are available. Multiple +features can be checked for by or-ing them together with the '|' +operator. %TRUE is only returned if all of the requested features +are available. + Use cogl_has_feature() instead + + %TRUE if the features are available, %FALSE otherwise. + + + + + A bitmask of features to check for + + + + + + This function should only need to be called in exceptional circumstances. + +As an optimization Cogl drawing functions may batch up primitives +internally, so if you are trying to use raw GL outside of Cogl you stand a +better chance of being successful if you ask Cogl to flush any batched +geometry before making your state changes. + +It only ensure that the underlying driver is issued all the commands +necessary to draw the batched primitives. It provides no guarantees about +when the driver will complete the rendering. + +This provides no guarantees about the GL state upon returning and to avoid +confusing Cogl you should aim to restore any changes you make before +resuming use of Cogl. + +If you are making state changes with the intention of affecting Cogl drawing +primitives you are 100% on your own since you stand a good chance of +conflicting with Cogl internals. For example clutter-gst which currently +uses direct GL calls to bind ARBfp programs will very likely break when Cogl +starts to use ARBfb programs itself for the material API. + + + + + + Replaces the current projection matrix with a perspective matrix +for a given viewing frustum defined by 4 side clip planes that +all cross through the origin and 2 near and far clip planes. + Use cogl_framebuffer_frustum() instead + + + + + + X position of the left clipping plane where it + intersects the near clipping plane + + + + X position of the right clipping plane where it + intersects the near clipping plane + + + + Y position of the bottom clipping plane where it + intersects the near clipping plane + + + + Y position of the top clipping plane where it intersects + the near clipping plane + + + + The distance to the near clipping plane (Must be positive) + + + + The distance to the far clipping plane (Must be positive) + + + + + + Queries if backface culling has been enabled via +cogl_set_backface_culling_enabled() + Use cogl_pipeline_get_cull_face_mode() instead + + %TRUE if backface culling is enabled, and %FALSE otherwise + + + + + Gets the number of bitplanes used for each of the color components +in the color buffer. Pass %NULL for any of the arguments if the +value is not required. + Use cogl_framebuffer_get_red/green/blue/alpha_bits() + instead + + + + + + Return location for the number of red bits or %NULL + + + + Return location for the number of green bits or %NULL + + + + Return location for the number of blue bits or %NULL + + + + Return location for the number of alpha bits or %NULL + + + + + + Queries if depth testing has been enabled via cogl_set_depth_test_enable() + Use cogl_pipeline_set_depth_state() instead + + %TRUE if depth testing is enabled, and %FALSE otherwise + + + + + Returns all of the features supported by COGL. + Use cogl_foreach_feature() instead + + A logical OR of all the supported COGL features. + + + + + Stores the current model-view matrix in @matrix. + Use cogl_framebuffer_get_modelview_matrix() + instead + + + + + + return location for the model-view matrix + + + + + + Retrieves the #GOptionGroup used by Cogl to parse the command +line options. Clutter uses this to handle the Cogl command line +options during its initialization process. + Not replaced + + a #GOptionGroup + + + + + Gets a pointer to a given GL or GL ES extension function. This acts +as a wrapper around glXGetProcAddress() or whatever is the +appropriate function for the current backend. + +<note>This function should not be used to query core opengl API +symbols since eglGetProcAddress for example doesn't allow this and +and may return a junk pointer if you do.</note> + + a pointer to the requested function or %NULL if the + function is not available. + + + + + the name of the function. + + + + + + Stores the current projection matrix in @matrix. + Use cogl_framebuffer_get_projection_matrix() + instead + + + + + + return location for the projection matrix + + + + + + Returns the current source material as previously set using +cogl_set_source(). + +<note>You should typically consider the returned material immutable +and not try to change any of its properties unless you own a +reference to that material. At times you may be able to get a +reference to an internally managed materials and the result of +modifying such materials is undefined.</note> + Latest drawing apis all take an explicit + #CoglPipeline argument so this stack of + #CoglMaterial<!-- -->s shouldn't be used. + + The current source material. + + + + + Stores the current viewport in @v. @v[0] and @v[1] get the x and y +position of the viewport and @v[2] and @v[3] get the width and +height. + Use cogl_framebuffer_get_viewport4fv() + instead + + + + + + pointer to a 4 element array + of #float<!-- -->s to receive the viewport dimensions. + + + + + + + + Use cogl_matrix_get_gtype() instead. + + the GType for the registered "CoglMatrix" boxed type. This +can be used for example to define GObject properties that accept a +#CoglMatrix value. + + + + + + + + + + Increases the reference count of @handle by 1 + + the handle, with its reference count increased + + + + + a #CoglHandle + + + + + + Drecreases the reference count of @handle by 1; if the reference +count reaches 0, the resources allocated by @handle will be freed + + + + + + a #CoglHandle + + + + + + Checks whether @object is a #CoglBitmap + + %TRUE if the passed @object represents a bitmap, + and %FALSE otherwise + + + + + a #CoglObject pointer + + + + + + Gets whether the given handle references an existing material object. + Use cogl_is_pipeline() instead + + %TRUE if the handle references a #CoglMaterial, + %FALSE otherwise + + + + + A CoglHandle + + + + + + Determines whether the given #CoglObject references an offscreen +framebuffer object. + + %TRUE if @object is a #CoglOffscreen framebuffer, + %FALSE otherwise + + + + + A pointer to a #CoglObject + + + + + + Gets whether the given handle references an existing program object. + Use #CoglSnippet api + + %TRUE if the handle references a program, + %FALSE otherwise + + + + + A CoglHandle + + + + + + Gets whether the given handle references an existing shader object. + Use #CoglSnippet api + + %TRUE if the handle references a shader, + %FALSE otherwise + + + + + A CoglHandle + + + + + + Gets whether the given object references a texture object. + + %TRUE if the @object references a texture, and + %FALSE otherwise + + + + + A #CoglObject pointer + + + + + + Checks whether @handle is a Vertex Buffer Object + Use the #CoglPrimitive api instead + + %TRUE if the handle is a VBO, and %FALSE + otherwise + + + + + a #CoglHandle for a vertex buffer object + + + + + + Checks whether @handle is a handle to the indices for a vertex +buffer object + Use the #CoglPrimitive api instead + + %TRUE if the handle is indices, and %FALSE + otherwise + + + + + a #CoglHandle + + + + + + Increment the reference count for a #CoglMaterial. + Use cogl_object_ref() instead + + the @material. + + + + + a #CoglMaterial object. + + + + + + Decrement the reference count for a #CoglMaterial. + Use cogl_object_unref() instead + + + + + + a #CoglMaterial object. + + + + + + Compares two matrices to see if they represent the same +transformation. Although internally the matrices may have different +annotations associated with them and may potentially have a cached +inverse matrix these are not considered in the comparison. + + + + + + A 4x4 transformation matrix + + + + A 4x4 transformation matrix + + + + + + + + + + + + + + + + + + + Replaces the current projection matrix with an orthographic projection +matrix. See <xref linkend="cogl-ortho-matrix"/> to see how the matrix is +calculated. + +<figure id="cogl-ortho-matrix"> + <title></title> + <graphic fileref="cogl_ortho.png" format="PNG"/> +</figure> + +<note>This function copies the arguments from OpenGL's glOrtho() even +though they are unnecessarily confusing due to the z near and z far +arguments actually being a "distance" from the origin, where +negative values are behind the viewer, instead of coordinates for +the z clipping planes which would have been consistent with the +left, right bottom and top arguments.</note> + Use cogl_framebuffer_orthographic() instead + + + + + + The coordinate for the left clipping plane + + + + The coordinate for the right clipping plane + + + + The coordinate for the bottom clipping plane + + + + The coordinate for the top clipping plane + + + + The <emphasis>distance</emphasis> to the near clipping + plane (negative if the plane is behind the viewer) + + + + The <emphasis>distance</emphasis> for the far clipping + plane (negative if the plane is behind the viewer) + + + + + + Replaces the current projection matrix with a perspective matrix +based on the provided values. + +<note>You should be careful not to have to great a @z_far / @z_near +ratio since that will reduce the effectiveness of depth testing +since there wont be enough precision to identify the depth of +objects near to each other.</note> + Use cogl_framebuffer_perspective() instead + + + + + + Vertical field of view angle in degrees. + + + + The (width over height) aspect ratio for display + + + + The distance to the near clipping plane (Must be positive) + + + + The distance to the far clipping plane (Must be positive) + + + + + + Draws a convex polygon using the current source material to fill / texture +with according to the texture coordinates passed. + +If @use_color is %TRUE then the color will be changed for each vertex using +the value specified in the color member of #CoglTextureVertex. This can be +used for example to make the texture fade out by setting the alpha value of +the color. + +All of the texture coordinates must be in the range [0,1] and repeating the +texture is not supported. + +Because of the way this function is implemented it will currently +only work if either the texture is not sliced or the backend is not +OpenGL ES and the minifying and magnifying functions are both set +to COGL_MATERIAL_FILTER_NEAREST. + + + + + + An array of #CoglTextureVertex structs + + + + The length of the vertices array + + + + %TRUE if the color member of #CoglTextureVertex should be used + + + + + + Restores the current model-view matrix from the matrix stack. + Use cogl_framebuffer_pop_matrix() instead + + + + + + Removes the material at the top of the source stack. The material +at the top of this stack defines the GPU state used to process +later primitives as defined by cogl_set_source(). + Latest drawing apis all take an explicit + #CoglPipeline argument so this stack of + #CoglMaterial<!-- -->s shouldn't be used. + + + + + + Attaches a shader to a program object. A program can have multiple +vertex or fragment shaders but only one of them may provide a +main() function. It is allowed to use a program with only a vertex +shader or only a fragment shader. + Use #CoglSnippet api + + + + + + a #CoglHandle for a shdaer program. + + + + a #CoglHandle for a vertex of fragment shader. + + + + + + Retrieve the location (offset) of a uniform variable in a shader program, +a uniform is a variable that is constant for all vertices/fragments for a +shader object and is possible to modify as an external parameter. + Use #CoglSnippet api instead + + the offset of a uniform in a specified program. + This uniform can be set using cogl_program_uniform_1f() when the + program is in use. + + + + + a #CoglHandle for a shader program. + + + + the name of a uniform. + + + + + + Links a program making it ready for use. Note that calling this +function is optional. If it is not called the program will +automatically be linked the first time it is used. + Use #CoglSnippet api + + + + + + a #CoglHandle for a shader program. + + + + + + Add an extra reference to a program. + Please use cogl_object_ref() instead. + + @handle + + + + + A #CoglHandle to a program. + + + + + + Changes the value of a floating point uniform for the given linked +@program. + Use #CoglSnippet api instead + + + + + + A #CoglHandle for a linked program + + + + the uniform location retrieved from + cogl_program_get_uniform_location(). + + + + the new value of the uniform. + + + + + + Changes the value of an integer uniform for the given linked +@program. + Use #CoglSnippet api instead + + + + + + A #CoglHandle for a linked program + + + + the uniform location retrieved from + cogl_program_get_uniform_location(). + + + + the new value of the uniform. + + + + + + Changes the value of a float vector uniform, or uniform array for +the given linked @program. + Use #CoglSnippet api instead + + + + + + A #CoglHandle for a linked program + + + + the uniform location retrieved from + cogl_program_get_uniform_location(). + + + + The number of components for the uniform. For +example with glsl you'd use 3 for a vec3 or 4 for a vec4. + + + + For uniform arrays this is the array length otherwise just +pass 1 + + + + the new value of the uniform[s]. + + + + + + + + Changes the value of a int vector uniform, or uniform array for +the given linked @program. + Use #CoglSnippet api instead + + + + + + A #CoglHandle for a linked program + + + + the uniform location retrieved from + cogl_program_get_uniform_location(). + + + + The number of components for the uniform. For +example with glsl you'd use 3 for a vec3 or 4 for a vec4. + + + + For uniform arrays this is the array length otherwise just +pass 1 + + + + the new value of the uniform[s]. + + + + + + + + Changes the value of a matrix uniform, or uniform array in the +given linked @program. + Use #CoglSnippet api instead + + + + + + A #CoglHandle for a linked program + + + + the uniform location retrieved from + cogl_program_get_uniform_location(). + + + + The dimensions of the matrix. So for for example pass + 2 for a 2x2 matrix or 3 for 3x3. + + + + For uniform arrays this is the array length otherwise just +pass 1 + + + + Whether to transpose the matrix when setting the uniform. + + + + the new value of the uniform. + + + + + + + + Changes the value of a floating point uniform in the currently +used (see cogl_program_use()) shader program. + Use #CoglSnippet api + + + + + + the uniform to set. + + + + the new value of the uniform. + + + + + + Changes the value of an integer uniform in the currently +used (see cogl_program_use()) shader program. + Use #CoglSnippet api + + + + + + the uniform to set. + + + + the new value of the uniform. + + + + + + Changes the value of a float vector uniform, or uniform array in the +currently used (see cogl_program_use()) shader program. + Use #CoglSnippet api + + + + + + the uniform to set. + + + + Size of float vector. + + + + Size of array of uniforms. + + + + the new value of the uniform. + + + + + + + + Changes the value of a int vector uniform, or uniform array in the +currently used (see cogl_program_use()) shader program. + Use #CoglSnippet api + + + + + + the uniform to set. + + + + Size of int vector. + + + + Size of array of uniforms. + + + + the new value of the uniform. + + + + + + + + Changes the value of a matrix uniform, or uniform array in the +currently used (see cogl_program_use()) shader program. The @size +parameter is used to determine the square size of the matrix. + Use #CoglSnippet api + + + + + + the uniform to set. + + + + Size of matrix. + + + + Size of array of uniforms. + + + + Whether to transpose the matrix when setting the uniform. + + + + the new value of the uniform. + + + + + + + + Removes a reference to a program. If it was the last reference the +program object will be destroyed. + Please use cogl_object_unref() instead. + + + + + + A #CoglHandle to a program. + + + + + + Activate a specific shader program replacing that part of the GL +rendering pipeline, if passed in %COGL_INVALID_HANDLE the default +behavior of GL is reinstated. + +This function affects the global state of the current Cogl +context. It is much more efficient to attach the shader to a +specific material used for rendering instead by calling +cogl_material_set_user_program(). + Use #CoglSnippet api + + + + + + a #CoglHandle for a shader program or %COGL_INVALID_HANDLE. + + + + + + Stores the current model-view matrix on the matrix stack. The matrix +can later be restored with cogl_pop_matrix(). + Use cogl_framebuffer_push_matrix() instead + + + + + + Pushes the given @material to the top of the source stack. The +material at the top of this stack defines the GPU state used to +process later primitives as defined by cogl_set_source(). + Latest drawing apis all take an explicit + #CoglPipeline argument so this stack of + #CoglMaterial<!-- -->s shouldn't be used. + + + + + + A #CoglMaterial + + + + + + Fills a rectangle at the given coordinates with the current source material + + + + + + X coordinate of the top-left corner + + + + Y coordinate of the top-left corner + + + + X coordinate of the bottom-right corner + + + + Y coordinate of the bottom-right corner + + + + + + This function draws a rectangle using the current source material to +texture or fill with. As a material may contain multiple texture layers +this interface lets you supply texture coordinates for each layer of the +material. + +The first pair of coordinates are for the first layer (with the smallest +layer index) and if you supply less texture coordinates than there are +layers in the current source material then default texture coordinates +(0.0, 0.0, 1.0, 1.0) are generated. + + + + + + x coordinate upper left on screen. + + + + y coordinate upper left on screen. + + + + x coordinate lower right on screen. + + + + y coordinate lower right on screen. + + + + An array containing groups of + 4 float values: [tx1, ty1, tx2, ty2] that are interpreted as two texture + coordinates; one for the upper left texel, and one for the lower right + texel. Each value should be between 0.0 and 1.0, where the coordinate + (0.0, 0.0) represents the top left of the texture, and (1.0, 1.0) the + bottom right. + + + + + + The length of the tex_coords array. (e.g. for one layer + and one group of texture coordinates, this would be 4) + + + + + + Draw a rectangle using the current material and supply texture coordinates +to be used for the first texture layer of the material. To draw the entire +texture pass in @tx1=0.0 @ty1=0.0 @tx2=1.0 @ty2=1.0. + + + + + + x coordinate upper left on screen. + + + + y coordinate upper left on screen. + + + + x coordinate lower right on screen. + + + + y coordinate lower right on screen. + + + + x part of texture coordinate to use for upper left pixel + + + + y part of texture coordinate to use for upper left pixel + + + + x part of texture coordinate to use for lower right pixel + + + + y part of texture coordinate to use for left pixel + + + + + + Draws a series of rectangles in the same way that +cogl_rectangle() does. In some situations it can give a +significant performance boost to use this function rather than +calling cogl_rectangle() separately for each rectangle. + +@verts should point to an array of #float<!-- -->s with +@n_rects * 4 elements. Each group of 4 values corresponds to the +parameters x1, y1, x2, and y2, and have the same +meaning as in cogl_rectangle(). + + + + + + an array of vertices + + + + + + number of rectangles to draw + + + + + + Draws a series of rectangles in the same way that +cogl_rectangle_with_texture_coords() does. In some situations it can give a +significant performance boost to use this function rather than +calling cogl_rectangle_with_texture_coords() separately for each rectangle. + +@verts should point to an array of #float<!-- -->s with +@n_rects * 8 elements. Each group of 8 values corresponds to the +parameters x1, y1, x2, y2, tx1, ty1, tx2 and ty2 and have the same +meaning as in cogl_rectangle_with_texture_coords(). + + + + + + an array of vertices + + + + + + number of rectangles to draw + + + + + + Multiplies the current model-view matrix by one that rotates the +model around the vertex specified by @x, @y and @z. The rotation +follows the right-hand thumb rule so for example rotating by 10 +degrees about the vertex (0, 0, 1) causes a small counter-clockwise +rotation. + Use cogl_framebuffer_rotate() instead + + + + + + Angle in degrees to rotate. + + + + X-component of vertex to rotate around. + + + + Y-component of vertex to rotate around. + + + + Z-component of vertex to rotate around. + + + + + + Multiplies the current model-view matrix by one that scales the x, +y and z axes by the given values. + Use cogl_framebuffer_pop_matrix() instead + + + + + + Amount to scale along the x-axis + + + + Amount to scale along the y-axis + + + + Amount to scale along the z-axis + + + + + + Sets whether textures positioned so that their backface is showing +should be hidden. This can be used to efficiently draw two-sided +textures or fully closed cubes without enabling depth testing. This +only affects calls to the cogl_rectangle* family of functions and +cogl_vertex_buffer_draw*. Backface culling is disabled by default. + Use cogl_pipeline_set_cull_face_mode() instead + + + + + + %TRUE to enable backface culling or %FALSE to disable. + + + + + + Sets whether depth testing is enabled. If it is disabled then the +order that actors are layered on the screen depends solely on the +order specified using clutter_actor_raise() and +clutter_actor_lower(), otherwise it will also take into account the +actor's depth. Depth testing is disabled by default. + Use cogl_pipeline_set_depth_state() instead + + + + + + %TRUE to enable depth testing or %FALSE to disable. + + + + + + Enables fogging. Fogging causes vertices that are further away from the eye +to be rendered with a different color. The color is determined according to +the chosen fog mode; at it's simplest the color is linearly interpolated so +that vertices at @z_near are drawn fully with their original color and +vertices at @z_far are drawn fully with @fog_color. Fogging will remain +enabled until you call cogl_disable_fog(). + +<note>The fogging functions only work correctly when primitives use +unmultiplied alpha colors. By default Cogl will premultiply textures +and cogl_set_source_color() will premultiply colors, so unless you +explicitly load your textures requesting an unmultiplied internal format +and use cogl_material_set_color() you can only use fogging with fully +opaque primitives. This might improve in the future when we can depend +on fragment shaders.</note> + Use #CoglSnippet shader api for fog + + + + + + The color of the fog + + + + A #CoglFogMode that determines the equation used to calculate the + fogging blend factor. + + + + Used by %COGL_FOG_MODE_EXPONENTIAL and by + %COGL_FOG_MODE_EXPONENTIAL_SQUARED equations. + + + + Position along Z axis where no fogging should be applied + + + + Position along Z axis where full fogging should be applied + + + + + + Loads @matrix as the new model-view matrix. + Use cogl_framebuffer_set_modelview_matrix() + instead + + + + + + the new model-view matrix + + + + + + Loads matrix as the new projection matrix. + Use cogl_framebuffer_set_projection_matrix() + instead + + + + + + the new projection matrix + + + + + + This function changes the material at the top of the source stack. +The material at the top of this stack defines the GPU state used to +process subsequent primitives, such as rectangles drawn with +cogl_rectangle() or vertices drawn using cogl_vertex_buffer_draw(). + Latest drawing apis all take an explicit + #CoglPipeline argument so this stack of + #CoglMaterial<!-- -->s shouldn't be used. + + + + + + A #CoglMaterial + + + + + + This is a convenience function for creating a solid fill source material +from the given color. This color will be used for any subsequent drawing +operation. + +The color will be premultiplied by Cogl, so the color should be +non-premultiplied. For example: use (1.0, 0.0, 0.0, 0.5) for +semi-transparent red. + +See also cogl_set_source_color4ub() and cogl_set_source_color4f() +if you already have the color components. + Latest drawing apis all take an explicit + #CoglPipeline argument so this stack of + #CoglMaterial<!-- -->s shouldn't be used. + + + + + + a #CoglColor + + + + + + This is a convenience function for creating a solid fill source material +from the given color using normalized values for each component. This color +will be used for any subsequent drawing operation. + +The value for each component is a fixed point number in the range +between 0 and %1.0. If the values passed in are outside that +range, they will be clamped. + Latest drawing apis all take an explicit + #CoglPipeline argument so this stack of + #CoglMaterial<!-- -->s shouldn't be used. + + + + + + value of the red channel, between 0 and %1.0 + + + + value of the green channel, between 0 and %1.0 + + + + value of the blue channel, between 0 and %1.0 + + + + value of the alpha channel, between 0 and %1.0 + + + + + + This is a convenience function for creating a solid fill source material +from the given color using unsigned bytes for each component. This +color will be used for any subsequent drawing operation. + +The value for each component is an unsigned byte in the range +between 0 and 255. + Latest drawing apis all take an explicit + #CoglPipeline argument so this stack of + #CoglMaterial<!-- -->s shouldn't be used. + + + + + + value of the red channel, between 0 and 255 + + + + value of the green channel, between 0 and 255 + + + + value of the blue channel, between 0 and 255 + + + + value of the alpha channel, between 0 and 255 + + + + + + This is a convenience function for creating a material with the first +layer set to @texture and setting that material as the source with +cogl_set_source. + +Note: There is no interaction between calls to cogl_set_source_color +and cogl_set_source_texture. If you need to blend a texture with a color then +you can create a simple material like this: +<programlisting> +material = cogl_material_new (); +cogl_material_set_color4ub (material, 0xff, 0x00, 0x00, 0x80); +cogl_material_set_layer (material, 0, tex_handle); +cogl_set_source (material); +</programlisting> + Latest drawing apis all take an explicit + #CoglPipeline argument so this stack of + #CoglMaterial<!-- -->s shouldn't be used. + + + + + + The #CoglTexture you want as your source + + + + + + Replaces the current viewport with the given values. + Use cogl_framebuffer_set_viewport() instead + + + + + + X offset of the viewport + + + + Y offset of the viewport + + + + Width of the viewport + + + + Height of the viewport + + + + + + Compiles the shader, no return value, but the shader is now ready +for linking into a program. Note that calling this function is +optional. If it is not called then the shader will be automatically +compiled when it is linked. + Use #CoglSnippet api + + + + + + #CoglHandle for a shader. + + + + + + Retrieves the information log for a coglobject, can be used in conjunction +with cogl_shader_get_parameteriv() to retrieve the compiler warnings/error +messages that caused a shader to not compile correctly, mainly useful for +debugging purposes. + Use #CoglSnippet api + + a newly allocated string containing the info log. Use + g_free() to free it + + + + + #CoglHandle for a shader. + + + + + + Retrieves the type of a shader #CoglHandle + Use #CoglSnippet api + + %COGL_SHADER_TYPE_VERTEX if the shader is a vertex processor + or %COGL_SHADER_TYPE_FRAGMENT if the shader is a frament processor + + + + + #CoglHandle for a shader. + + + + + + Retrieves whether a shader #CoglHandle has been compiled + Use #CoglSnippet api + + %TRUE if the shader object has sucessfully be compiled + + + + + #CoglHandle for a shader. + + + + + + Add an extra reference to a shader. + Use #CoglSnippet api + + @handle + + + + + A #CoglHandle to a shader. + + + + + + Replaces the current source associated with a shader with a new +one. + +Please see <link +linkend="cogl-Shaders-and-Programmable-Pipeline.description">above</link> +for a description of the recommended format for the shader code. + Use #CoglSnippet api + + + + + + #CoglHandle for a shader. + + + + Shader source. + + + + + + Removes a reference to a shader. If it was the last reference the +shader object will be destroyed. + Use #CoglSnippet api + + + + + + A #CoglHandle to a shader. + + + + + + + + + + + Creates a #CoglTexture from a #CoglBitmap. + Use specific constructors such as + cogl_texture_2d_new_from_bitmap() + + A newly created #CoglTexture or + %NULL on failure + + + + + A #CoglBitmap pointer + + + + Optional flags for the texture, or %COGL_TEXTURE_NONE + + + + the #CoglPixelFormat to use for the GPU storage of the +texture + + + + + + Creates a new #CoglTexture based on data residing in memory. + Use specific constructors such as + cogl_texture_2d_new_from_data() + + A newly created #CoglTexture or + %NULL on failure + + + + + width of texture in pixels + + + + height of texture in pixels + + + + Optional flags for the texture, or %COGL_TEXTURE_NONE + + + + the #CoglPixelFormat the buffer is stored in in RAM + + + + the #CoglPixelFormat that will be used for storing + the buffer on the GPU. If COGL_PIXEL_FORMAT_ANY is given then a + premultiplied format similar to the format of the source data will + be used. The default blending equations of Cogl expect premultiplied + color data; the main use of passing a non-premultiplied format here + is if you have non-premultiplied source data and are going to adjust + the blend mode (see cogl_material_set_blend()) or use the data for + something other than straight blending. + + + + the memory offset in bytes between the starts of + scanlines in @data + + + + pointer the memory region where the source buffer resides + + + + + + Creates a #CoglTexture from an image file. + Use specific constructors such as + cogl_texture_2d_new_from_file() + + A newly created #CoglTexture or + %NULL on failure + + + + + the file to load + + + + Optional flags for the texture, or %COGL_TEXTURE_NONE + + + + the #CoglPixelFormat to use for the GPU storage of the + texture. If %COGL_PIXEL_FORMAT_ANY is given then a premultiplied + format similar to the format of the source data will be used. The + default blending equations of Cogl expect premultiplied color data; + the main use of passing a non-premultiplied format here is if you + have non-premultiplied source data and are going to adjust the blend + mode (see cogl_material_set_blend()) or use the data for something + other than straight blending. + + + + + + Creates a #CoglTexture based on an existing OpenGL texture; the +width, height and format are passed along since it is not always +possible to query these from OpenGL. + +The waste arguments allow you to create a Cogl texture that maps to +a region smaller than the real OpenGL texture. For instance if your +hardware only supports power-of-two textures you may load a +non-power-of-two image into a larger power-of-two texture and use +the waste arguments to tell Cogl which region should be mapped to +the texture coordinate range [0:1]. + Use specific constructors such as + cogl_texture_2d_new_from_foreign() + + A newly created #CoglTexture or + %NULL on failure + + + + + opengl handle of foreign texture. + + + + opengl target type of foreign texture + + + + width of foreign texture + + + + height of foreign texture. + + + + horizontal waste on the right hand edge of the texture. + + + + vertical waste on the bottom edge of the texture. + + + + format of the foreign texture. + + + + + + Creates a new #CoglTexture with the specified dimensions and pixel format. + Use specific constructors such as + cogl_texture_2d_new_with_size() + + A newly created #CoglTexture or %NULL on failure + + + + + width of texture in pixels. + + + + height of texture in pixels. + + + + Optional flags for the texture, or %COGL_TEXTURE_NONE + + + + the #CoglPixelFormat to use for the GPU storage of the + texture. + + + + + + Multiplies the current model-view matrix by the given matrix. + Use cogl_framebuffer_transform() instead + + + + + + the matrix to multiply with the current model-view + + + + + + Multiplies the current model-view matrix by one that translates the +model along all three axes according to the given values. + Use cogl_framebuffer_translate() instead + + + + + + Distance to translate along the x-axis + + + + Distance to translate along the y-axis + + + + Distance to translate along the z-axis + + + + + + Adds an attribute to a buffer, or replaces a previously added +attribute with the same name. + +You either can use one of the built-in names such as "gl_Vertex", or +"gl_MultiTexCoord0" to add standard attributes, like positions, colors +and normals, or you can add custom attributes for use in shaders. + +The number of vertices declared when calling cogl_vertex_buffer_new() +determines how many attribute values will be read from the supplied +@pointer. + +The data for your attribute isn't copied anywhere until you call +cogl_vertex_buffer_submit(), or issue a draw call which automatically +submits pending attribute changes. so the supplied pointer must remain +valid until then. If you are updating an existing attribute (done by +re-adding it) then you still need to re-call cogl_vertex_buffer_submit() +to commit the changes to the GPU. Be carefull to minimize the number +of calls to cogl_vertex_buffer_submit(), though. + +<note>If you are interleving attributes it is assumed that each interleaved +attribute starts no farther than +- stride bytes from the other attributes +it is interleved with. I.e. this is ok: +<programlisting> +|-0-0-0-0-0-0-0-0-0-0| +</programlisting> +This is not ok: +<programlisting> +|- - - - -0-0-0-0-0-0 0 0 0 0| +</programlisting> +(Though you can have multiple groups of interleved attributes)</note> + Use the #CoglPrimitive api instead + + + + + + A vertex buffer handle + + + + The name of your attribute. It should be a valid GLSL + variable name and standard attribute types must use one of following + built-in names: (Note: they correspond to the built-in names of GLSL) + <itemizedlist> + <listitem>"gl_Color"</listitem> + <listitem>"gl_Normal"</listitem> + <listitem>"gl_MultiTexCoord0, gl_MultiTexCoord1, ..."</listitem> + <listitem>"gl_Vertex"</listitem> + </itemizedlist> + To support adding multiple variations of the same attribute the name + can have a detail component, E.g. "gl_Color::active" or + "gl_Color::inactive" + + + + The number of components per attribute and must be 1, 2, + 3 or 4 + + + + a #CoglAttributeType specifying the data type of each component. + + + + If %TRUE, this specifies that values stored in an integer + format should be mapped into the range [-1.0, 1.0] or [0.0, 1.0] + for unsigned values. If %FALSE they are converted to floats + directly. + + + + This specifies the number of bytes from the start of one attribute + value to the start of the next value (for the same attribute). So, for + example, with a position interleved with color like this: + XYRGBAXYRGBAXYRGBA, then if each letter represents a byte, the + stride for both attributes is 6. The special value 0 means the + values are stored sequentially in memory. + + + + This addresses the first attribute in the vertex array. This + must remain valid until you either call cogl_vertex_buffer_submit() or + issue a draw call. + + + + + + Deletes an attribute from a buffer. You will need to call +cogl_vertex_buffer_submit() or issue a draw call to commit this +change to the GPU. + Use the #CoglPrimitive api instead + + + + + + A vertex buffer handle + + + + The name of a previously added attribute + + + + + + Disables a previosuly added attribute. + +Since it can be costly to add and remove new attributes to buffers; to make +individual buffers more reuseable it is possible to enable and disable +attributes before using a buffer for drawing. + +You don't need to call cogl_vertex_buffer_submit() after using this +function. + Use the #CoglPrimitive api instead + + + + + + A vertex buffer handle + + + + The name of the attribute you want to disable + + + + + + Allows you to draw geometry using all or a subset of the +vertices in a vertex buffer. + +Any un-submitted attribute changes are automatically submitted before +drawing. + Use the #CoglPrimitive api instead + + + + + + A vertex buffer handle + + + + A #CoglVerticesMode specifying how the vertices should be + interpreted. + + + + Specifies the index of the first vertex you want to draw with + + + + Specifies the number of vertices you want to draw. + + + + + + This function lets you use an array of indices to specify the vertices +within your vertex buffer that you want to draw. The indices themselves +are created by calling cogl_vertex_buffer_indices_new () + +Any un-submitted attribute changes are automatically submitted before +drawing. + Use the #CoglPrimitive api instead + + + + + + A vertex buffer handle + + + + A #CoglVerticesMode specifying how the vertices should be + interpreted. + + + + A CoglHandle for a set of indices allocated via + cogl_vertex_buffer_indices_new () + + + + Specifies the minimum vertex index contained in indices + + + + Specifies the maximum vertex index contained in indices + + + + An offset into named indices. The offset marks the first + index to use for drawing. + + + + Specifies the number of vertices you want to draw. + + + + + + Enables a previosuly disabled attribute. + +Since it can be costly to add and remove new attributes to buffers; to make +individual buffers more reuseable it is possible to enable and disable +attributes before using a buffer for drawing. + +You don't need to call cogl_vertex_buffer_submit() after using this function + Use the #CoglPrimitive api instead + + + + + + A vertex buffer handle + + + + The name of the attribute you want to enable + + + + + + Retrieves the number of vertices that @handle represents + Use the #CoglPrimitive api instead + + the number of vertices + + + + + A vertex buffer handle + + + + + + Creates a vertex buffer containing the indices needed to draw pairs +of triangles from a list of vertices grouped as quads. There will +be at least @n_indices entries in the buffer (but there may be +more). + +The indices will follow this pattern: + +0, 1, 2, 0, 2, 3, 4, 5, 6, 4, 6, 7 ... etc + +For example, if you submit vertices for a quad like like that shown +in <xref linkend="quad-indices-order"/> then you can request 6 +indices to render two triangles like those shown in <xref +linkend="quad-indices-triangles"/>. + +<figure id="quad-indices-order"> + <title>Example of vertices submitted to form a quad</title> + <graphic fileref="quad-indices-order.png" format="PNG"/> +</figure> + +<figure id="quad-indices-triangles"> + <title>Illustration of the triangle indices that will be generated</title> + <graphic fileref="quad-indices-triangles.png" format="PNG"/> +</figure> + Use the #CoglPrimitive api instead + + A %CoglHandle containing the indices. The handled is +owned by Cogl and should not be modified or unref'd. + + + + + the number of indices in the vertex buffer. + + + + + + Queries back the data type used for the given indices + Use the #CoglPrimitive api instead + + The CoglIndicesType used + + + + + An indices handle + + + + + + Depending on how much geometry you are submitting it can be worthwhile +optimizing the number of redundant vertices you submit. Using an index +array allows you to reference vertices multiple times, for example +during triangle strips. + Use the #CoglPrimitive api instead + + A CoglHandle for the indices which you can pass to + cogl_vertex_buffer_draw_elements(). + + + + + a #CoglIndicesType specifying the data type used for + the indices. + + + + Specifies the address of + your array of indices + + + + + + The number of indices in indices_array + + + + + + Creates a new vertex buffer that you can use to add attributes. + Use the #CoglPrimitive api instead + + a new #CoglHandle + + + + + The number of vertices that your attributes will correspond to. + + + + + + Increment the reference count for a vertex buffer + Use cogl_object_ref() instead + + the @handle. + + + + + a @CoglHandle. + + + + + + Submits all the user added attributes to the GPU; once submitted, the +attributes can be used for drawing. + +You should aim to minimize calls to this function since it implies +validating your data; it potentially incurs a transport cost (especially if +you are using GLX indirect rendering) and potentially a format conversion +cost if the GPU doesn't natively support any of the given attribute formats. + Use the #CoglPrimitive api instead + + + + + + A vertex buffer handle + + + + + + Decrement the reference count for a vertex buffer + Use cogl_object_unref() instead + + + + + + a @CoglHandle. + + + + + + Replace the current viewport with the given values. + Use cogl_framebuffer_set_viewport instead + + + + + + Width of the viewport + + + + Height of the viewport + + + + + + Adds a callback function that will receive all native events. The +function can stop further processing of the event by return +%COGL_FILTER_REMOVE. + + + + + + a #CoglRenderer + + + + the callback function + + + + user data passed to @func when called + + + + + + + + + + + + + + + + + the foreign Xlib display that will be used by any Xlib based +winsys backend. The display needs to be set with +cogl_xlib_renderer_set_foreign_display() before this function is called. + + + + + a #CoglRenderer + + + + + + + + + + + + + + + + This function processes a single event; it can be used to hook into +external event retrieval (for example that done by Clutter or +GDK). + + #CoglFilterReturn. %COGL_FILTER_REMOVE indicates that +Cogl has internally handled the event and the caller should do no +further processing. %COGL_FILTER_CONTINUE indicates that Cogl is +either not interested in the event, or has used the event to update +internal state without taking any exclusive action. + + + + + a #CoglRenderer + + + + pointer to an XEvent structure + + + + + + Removes a callback that was previously added with +cogl_xlib_renderer_add_filter(). + + + + + + a #CoglRenderer + + + + the callback function + + + + user data given when the callback was installed + + + + + + Sets whether Cogl should make use of the +NV_robustness_video_memory_purge extension, if exposed by the +driver, by initializing the GLX context appropriately. + +The extension is only useful when running on certain versions of +the NVIDIA driver. Quoting from the spec: + +"The NVIDIA OpenGL driver architecture on Linux has a limitation: + resources located in video memory are not persistent across certain + events. VT switches, suspend/resume events, and mode switching + events may erase the contents of video memory. Any resource that + is located exclusively in video memory, such as framebuffer objects + (FBOs), will be lost." + +"This extension provides a way for applications to discover when video + memory content has been lost, so that the application can re-populate + the video memory content as necessary." + +"Any driver that exposes this extension is a driver that considers + video memory to be volatile. Once the driver stack has been + improved, the extension will no longer be exposed." + +cogl_get_graphics_reset_status() needs to be called at least once +every frame to find out if video memory was purged. + +Note that this doesn't cause Cogl to enable robust buffer access +but other context reset errors may still happen and be reported via +cogl_get_graphics_reset_status() if external factors cause the +driver to trigger them. + +This defaults to %FALSE and is effective only if called before +cogl_display_setup() . + + + + + + a #CoglRenderer + + + + The new value + + + + + + Sets whether Cogl should automatically retrieve events from the X +display. This defaults to %TRUE unless +cogl_xlib_renderer_set_foreign_display() is called. It can be set +to %FALSE if the application wants to handle its own event +retrieval. Note that Cogl still needs to see all of the X events to +function properly so the application should call +cogl_xlib_renderer_handle_event() for each event if it disables +automatic event retrieval. + + + + + + a #CoglRenderer + + + + The new value + + + + + + Sets a foreign Xlib display that Cogl will use for and Xlib based winsys +backend. + +Note that calling this function will automatically call +cogl_xlib_renderer_set_event_retrieval_enabled() to disable Cogl's +event retrieval. Cogl still needs to see all of the X events so the +application should also use cogl_xlib_renderer_handle_event() if it +uses this function. + + + + + + a #CoglRenderer + + + + + + + + + Sets whether Cogl is allowed to use a separate threaded to wait for the +completion of glXSwapBuffers() and call the frame callback for the +corresponding #CoglOnscreen. This is a way of emulating the +INTEL_swap_event extension, and will only ever be used if +INTEL_swap_event is not present; it will also only be used for +specific white-listed drivers that are known to work correctly with +multiple contexts sharing state between threads. + +The advantage of enabling this is that it will allow your main loop +to do other work while waiting for the system to be ready to draw +the next frame, instead of blocking in glXSwapBuffers(). A disadvantage +is that the driver will be prevented from buffering up multiple frames +even if it thinks that it would be advantageous. In general, this +will work best for something like a system compositor that is doing +simple drawing but handling lots of other complex tasks. + +If you enable this, you must call XInitThreads() before any other +X11 calls in your program. (See the documentation for XInitThreads()) + + + + + + a #CoglRenderer + + + + The new value + + + + + + diff --git a/lib/docs/scrapers/gnome/girs/mutter-3/CoglPango-3.gir b/lib/docs/scrapers/gnome/girs/mutter-3/CoglPango-3.gir new file mode 100644 index 0000000000..da62549055 --- /dev/null +++ b/lib/docs/scrapers/gnome/girs/mutter-3/CoglPango-3.gir @@ -0,0 +1,333 @@ + + + + + + + + + + + + + + + + + + + + + This updates any internal glyph cache textures as necessary to be +able to render the given @layout. + +This api should be used to avoid mid-scene modifications of +glyph-cache textures which can lead to undefined rendering results. + + + + + + A #PangoLayout + + + + + + Clears the glyph cache for @font_map. + + + + + + a #CoglPangoFontMap + + + + + + Create a #PangoContext for the given @font_map. + + the newly created context: free with g_object_unref(). + + + + + a #CoglPangoFontMap + + + + + + Retrieves the #CoglPangoRenderer for the passed @font_map. + + a #PangoRenderer + + + + + a #CoglPangoFontMap + + + + + + Retrieves whether the #CoglPangoRenderer used by @font_map will use +mipmapping when rendering the glyphs. + + %TRUE if mipmapping is used, %FALSE otherwise. + + + + + a #CoglPangoFontMap + + + + + + Creates a new font map. + + the newly created #PangoFontMap + + + + + Sets the resolution for the @font_map. This is a scale factor +between points specified in a #PangoFontDescription and Cogl units. +The default value is %96, meaning that a 10 point font will be 13 +units high. (10 * 96. / 72. = 13.3). + + + + + + a #CoglPangoFontMap + + + + The resolution in "dots per inch". (Physical inches aren't + actually involved; the terminology is conventional.) + + + + + + Sets whether the renderer for the passed font map should use +mipmapping when rendering a #PangoLayout. + + + + + + a #CoglPangoFontMap + + + + %TRUE to enable the use of mipmapping + + + + + + Draws a solidly coloured @layout on the given @framebuffer at (@x, +@y) within the @framebuffer<!-- -->'s current model-view coordinate +space. + Use cogl_pango_show_layout() instead + + + + + + a #PangoLayout + + + + X coordinate to render the layout at + + + + Y coordinate to render the layout at + + + + color to use when rendering the layout + + + + + + + + + Renders @line at the given coordinates using the given color. + Use cogl_pango_show_layout() instead + + + + + + a #PangoLayoutLine + + + + X coordinate to render the line at + + + + Y coordinate to render the line at + + + + color to use when rendering the line + + + + + + Draws a solidly coloured @layout on the given @framebuffer at (@x, +@y) within the @framebuffer<!-- -->'s current model-view coordinate +space. + Use cogl_pango_show_layout() instead + + + + + + a #PangoLayout + + + + X coordinate (in Pango units) to render the layout at + + + + Y coordinate (in Pango units) to render the layout at + + + + color to use when rendering the layout + + + + + + + + + Draws a solidly coloured @layout on the given @framebuffer at (@x, +@y) within the @framebuffer<!-- -->'s current model-view coordinate +space. + + + + + + A #CoglFramebuffer to draw too. + + + + a #PangoLayout + + + + X coordinate to render the layout at + + + + Y coordinate to render the layout at + + + + color to use when rendering the layout + + + + + + Draws a solidly coloured @line on the given @framebuffer at (@x, +@y) within the @framebuffer<!-- -->'s current model-view coordinate +space. + + + + + + A #CoglFramebuffer to draw too. + + + + a #PangoLayoutLine + + + + X coordinate to render the line at + + + + Y coordinate to render the line at + + + + color to use when rendering the line + + + + + + diff --git a/lib/docs/scrapers/gnome/girs/mutter-3/Meta-3.gir b/lib/docs/scrapers/gnome/girs/mutter-3/Meta-3.gir new file mode 100644 index 0000000000..cd110c010f --- /dev/null +++ b/lib/docs/scrapers/gnome/girs/mutter-3/Meta-3.gir @@ -0,0 +1,10945 @@ + + + + + + + + + + + + + + + + + Gets the global #MetaDnd that's managed by this backend. + + the #MetaDnd + + + + + A #MetaDnd + + + + + + + The #MetaRemoteAccessController + + + + + A #MetaBackend + + + + + + + + + + + + + + + + Gets the global #ClutterStage that's managed by this backend. + + the #ClutterStage + + + + + A #MetaBackend + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This class handles tracking and painting the root window background. +By integrating with #MetaWindowGroup we can avoid painting parts of +the background that are obscured by other windows. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This class handles tracking and painting the root window background. +By integrating with #MetaWindowGroup we can avoid painting parts of +the background that are obscured by other windows. + + + + + + Creates a new actor to draw the background for the given monitor. + + the newly created background actor + + + + + + + + Index of the monitor for which to draw the background + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #MetaBackgroundImage is an object that represents a loaded or loading background image. + + This function is a convenience function for checking for success, +without having to call meta_background_image_get_texture() and +handle the return of a Cogl type. + + %TRUE if loading completed successfully, otherwise %FALSE + + + + + a #MetaBackgroundImage + + + + + + + a #CoglTexture if loading succeeded; if + loading failed or has not yet finished, %NULL. + + + + + a #MetaBackgroundImage + + + + + + + %TRUE if loading has already completed, %FALSE otherwise + + + + + a #MetaBackgroundImage + + + + + + + + + + + + #MetaBackgroundImageCache caches loading of textures for backgrounds; there's actually +nothing background specific about it, other than it is tuned to work well for +large images as typically are used for backgrounds. + + + the global singleton background cache + + + + + Loads an image to use as a background, or returns a reference to an +image that is already in the process of loading or loaded. In either +case, what is returned is a #MetaBackgroundImage which can be derefenced +to get a #CoglTexture. If meta_background_image_is_loaded() returns %TRUE, +the background is loaded, otherwise the MetaBackgroundImage::loaded +signal will be emitted exactly once. The 'loaded' state means that the +loading process finished, whether it succeeded or failed. + + a #MetaBackgroundImage to dereference to get the loaded texture + + + + + a #MetaBackgroundImageCache + + + + #GFile to load + + + + + + Remove an entry from the cache; this would be used if monitoring +showed that the file changed. + + + + + + a #MetaBackgroundImageCache + + + + file to remove from the cache + + + + + + + + + + + + + The <structname>MetaBarrier</structname> structure contains +only private data and should be accessed using the provided API + + + + + + + + + + + + + + + + + + + + + + In XI2.3, pointer barriers provide a feature where they can +be temporarily released so that the pointer goes through +them. Pass a #MetaBarrierEvent to release the barrier for +this event sequence. + + + + + + The barrier to release + + + + The event to release the pointer for + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + When a pointer barrier is hit, this will trigger. This +requires an XI2-enabled server. + + + + + + A #MetaBarrierEvent that has the details of how +the barrier was hit. + + + + + + When a pointer barrier hitbox was left, this will trigger. +This requires an XI2-enabled server. + + + + + + A #MetaBarrierEvent that has the details of how +the barrier was left. + + + + + + + The <structname>MetaBarrierClass</structname> structure contains only +private data. + + + + + + + Positive direction in the X axis + + + Positive direction in the Y axis + + + Negative direction in the X axis + + + Negative direction in the Y axis + + + + + + + + A unique integer ID identifying a +consecutive series of motions at or along the barrier + + + + Server time, in milliseconds, since the last event +sent for this barrier + + + + Server time, in milliseconds + + + + The cursor X position in screen coordinates + + + + The cursor Y position in screen coordinates. + + + + If the cursor hadn't been constrained, the delta +of X movement past the barrier, in screen coordinates + + + + If the cursor hadn't been constrained, the delta +of X movement past the barrier, in screen coordinates + + + + A boolean flag, %TRUE if this event generated +by the pointer leaving the barrier as a result of a client +calling meta_barrier_release() (will be set only for +MetaBarrier::leave signals) + + + + A boolean flag, %TRUE if the pointer was grabbed +at the time this event was sent + + + + + + + Function a window button can have. Note, you can't add stuff here +without extending the theme format to draw a new function and +breaking all existing themes. + + Menu + + + Minimize + + + Maximize + + + Close + + + + + Marks the end of the #MetaButtonFunction enumeration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Call whenever @dialog should receive keyboard focus, +usually when the window would. + + + + + + a #MetaCloseDialog + + + + + + Hides the close dialog. + + + + + + a #MetaCloseDialog + + + + + + Shows the close dialog. + + + + + + a #MetaCloseDialog + + + + + + Call whenever @dialog should receive keyboard focus, +usually when the window would. + + + + + + a #MetaCloseDialog + + + + + + Hides the close dialog. + + + + + + a #MetaCloseDialog + + + + + + Returns whether @dialog is currently visible. + + #TRUE if @dialog is visible. + + + + + a #MetaCloseDialog + + + + + + Responds and closes the dialog. To be called by #MetaCloseDialog +implementations. + + + + + + a #MetaCloseDialog + + + + a #MetaCloseDialogResponse + + + + + + Shows the close dialog. + + + + + + a #MetaCloseDialog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a #MetaCloseDialog + + + + + + + + + + + + + a #MetaCloseDialog + + + + + + + + + + + + + a #MetaCloseDialog + + + + + + + + + + + + + + Indicates the appropriate effect to show the user for +meta_compositor_show_window() and meta_compositor_hide_window() + + The window is newly created + (also used for a window that was previously on a different + workspace and is changed to become visible on the active + workspace.) + + + The window should be shown + as unminimizing from its icon geometry. + + + The window is being destroyed + + + The window should be shown + as minimizing to its icon geometry. + + + No effect, the window should be + shown or hidden immediately. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default cursor + + + Resize northern edge cursor + + + Resize southern edge cursor + + + Resize western edge cursor + + + Resize eastern edge cursor + + + Resize south-eastern corner cursor + + + Resize south-western corner cursor + + + Resize north-eastern corner cursor + + + Resize north-western corner cursor + + + Move or resize cursor + + + Busy cursor + + + DND in drag cursor + + + DND move cursor + + + DND copy cursor + + + DND unsupported target + + + pointing hand + + + crosshair (action forbidden) + + + I-beam (text input) + + + + + + + Retrieves the cursor tracker object for @display. + + + + + + the #MetaDisplay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #MetaDBusDisplayConfigSkeleton structure contains only private data and should only be accessed using the provided API. + + + + + + + + verbose logging + + + focus + + + workarea + + + stack + + + themes + + + session management + + + events + + + window state + + + window operations + + + geometry + + + window placement + + + ping + + + Xinerama + + + keybindings + + + sync + + + errors + + + startup + + + preferences + + + groups + + + resizing + + + shapes + + + compositor + + + edge resistance + + + + + + + Left + + + Right + + + Top + + + Bottom + + + Up + + + Down + + + Horizontal + + + Vertical + + + + + Save the specified serial and ignore crossing events with that +serial for the purpose of focus-follows-mouse. This can be used +for certain changes to the window hierarchy that we don't want +to change the focus window, even if they cause the pointer to +end up in a new window. + + + + + + a #MetaDisplay + + + + the serial to ignore + + + + + + Add a keybinding at runtime. The key @name in @schema needs to be of +type %G_VARIANT_TYPE_STRING_ARRAY, with each string describing a +keybinding in the form of "&lt;Control&gt;a" or "&lt;Shift&gt;&lt;Alt&gt;F1". The parser +is fairly liberal and allows lower or upper case, and also abbreviations +such as "&lt;Ctl&gt;" and "&lt;Ctrl&gt;". If the key is set to the empty list or a +list with a single element of either "" or "disabled", the keybinding is +disabled. + +Use meta_display_remove_keybinding() to remove the binding. + + the corresponding keybinding action if the keybinding was + added successfully, otherwise %META_KEYBINDING_ACTION_NONE + + + + + a #MetaDisplay + + + + the binding's name + + + + the #GSettings object where @name is stored + + + + flags to specify binding details + + + + function to run when the keybinding is invoked + + + + the data to pass to @handler + + + + function to free @user_data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sets the mouse-mode flag to %FALSE, which means that motion events are +no longer ignored in mouse or sloppy focus. +This is an internal function. It should be used only for reimplementing +keybindings, and only in a manner compatible with core code. + + + + + + a #MetaDisplay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a #MetaDisplay + + + + + + Gets the index of the monitor that currently has the mouse pointer. + + a monitor index + + + + + a #MetaDisplay + + + + + + + + + + + + + + + + + + + + + + + + + + Get our best guess as to the "currently" focused window (that is, +the window that we expect will be focused at the point when the X +server processes our next request). + + The current focus window + + + + + a #MetaDisplay + + + + + + Gets the current grab operation, if any. + + the current grab operation, or %META_GRAB_OP_NONE if +Mutter doesn't currently have a grab. %META_GRAB_OP_COMPOSITOR will +be returned if a compositor-plugin modal operation is in effect +(See mutter_begin_modal_for_plugin()) + + + + + The #MetaDisplay that the window is on + + + + + + Get the keybinding action bound to @keycode. Builtin keybindings +have a fixed associated #MetaKeyBindingAction, for bindings added +dynamically the function will return the keybinding action +meta_display_add_keybinding() returns on registration. + + The action that should be taken for the given key, or +%META_KEYBINDING_ACTION_NONE. + + + + + A #MetaDisplay + + + + Raw keycode + + + + Event mask + + + + + + + Timestamp of the last user interaction event with a window + + + + + a #MetaDisplay + + + + + + Stores the location and size of the indicated monitor in @geometry. + + + + + + a #MetaDisplay + + + + the monitor number + + + + location to store the monitor geometry + + + + + + Determines whether there is a fullscreen window obscuring the specified +monitor. If there is a fullscreen window, the desktop environment will +typically hide any controls that might obscure the fullscreen window. + +You can get notification when this changes by connecting to +MetaDisplay::in-fullscreen-changed. + + %TRUE if there is a fullscreen window covering the specified monitor. + + + + + a #MetaDisplay + + + + the monitor number + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets the number of monitors that are joined together to form @display. + + the number of monitors + + + + + a #MetaDisplay + + + + + + + + + + + + + + + + + + + + + + + + + Gets the index of the primary monitor on this @display. + + a monitor index + + + + + a #MetaDisplay + + + + + + Retrieve the size of the display. + + + + + + A #MetaDisplay + + + + The width of the screen + + + + The height of the screen + + + + + + + Currently active #SnStartupSequence items + + + + + + + + + + + + Determine the active window that should be displayed for Alt-TAB. + + Current window + + + + + a #MetaDisplay + + + + type of tab list + + + + origin workspace + + + + + + Determine the list of windows that should be displayed for Alt-TAB +functionality. The windows are returned in most recently used order. +If @workspace is not %NULL, the list only conains windows that are on +@workspace or have the demands-attention hint set; otherwise it contains +all windows. + + List of windows + + + + + + + a #MetaDisplay + + + + type of tab list + + + + origin workspace + + + + + + Determine the next window that should be displayed for Alt-TAB +functionality. + + Next window + + + + + a #MetaDisplay + + + + type of tab list + + + + origin workspace + + + + starting window + + + + If %TRUE, look for the previous window. + + + + + + + The workspace manager of the display + + + + + a #MetaDisplay + + + + + + + + + + + a #MetaDisplay + + + + + + + + + + + + + + + + + + + Tells whether the event sequence is the used for pointer emulation +and single-touch interaction. + + #TRUE if the sequence emulates pointer behavior + + + + + the display + + + + a #ClutterEventSequence + + + + + + Remove keybinding @name; the function will fail if @name is not a known +keybinding or has not been added with meta_display_add_keybinding(). + + %TRUE if the binding has been removed sucessfully, + otherwise %FALSE + + + + + the #MetaDisplay + + + + name of the keybinding to remove + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sorts a set of windows according to their current stacking order. If windows +from multiple screens are present in the set of input windows, then all the +windows on screen 0 are sorted below all the windows on screen 1, and so forth. +Since the stacking order of override-redirect windows isn't controlled by +Metacity, if override-redirect windows are in the input, the result may not +correspond to the actual stacking order in the X server. + +An example of using this would be to sort the list of transient dialogs for a +window into their current stacking order. + + Input windows sorted by stacking order, from lowest to highest + + + + + + + a #MetaDisplay + + + + Set of windows + + + + + + + + + whether pointer barriers can be supported. + +When running as an X compositor the X server needs XInput 2 +version 2.3. When running as a display server it is supported +when running on the native backend. + +Clients should use this method to determine whether their +interfaces should depend on new barrier features. + + + + + a #MetaDisplay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Xserver time can wraparound, thus comparing two timestamps needs to take +this into account. If no wraparound has occurred, this is equivalent to + time1 < time2 +Otherwise, we need to account for the fact that wraparound can occur +and the fact that a timestamp of 0 must be special-cased since it +means "older than anything else". + +Note that this is NOT an equivalent for time1 <= time2; if that's what +you need then you'll need to swap the order of the arguments and negate +the result. + + + + + + a #MetaDisplay + + + + An event timestamp + + + + An event timestamp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The ::modifiers-accelerator-activated signal will be emitted when +a special modifiers-only keybinding is activated. + + %TRUE means that the keyboard device should remain + frozen and %FALSE for the default behavior of unfreezing the + keyboard. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The ::restart signal is emitted to indicate that compositor +should reexec the process. This is +emitted when meta_restart() is called, either by Mutter +internally or by the embedding compositor. See also +::show-restart-message. + + %FALSE to indicate that the compositor could not + be restarted. When the compositor is restarted, the signal + should not return. + + + + + + + + + + + + + + + + + + + + + Requests the pad button mapping OSD to be shown. + + The OSD actor + + + + + the pad device + + + + the pad device settings + + + + path to the layout image + + + + Whether the OSD should be shown in edition mode + + + + Monitor to show the OSD on + + + + + + + + + + + + + + + + + + + + + + + + + The ::show-restart-message signal will be emitted to indicate +that the compositor should show a message during restart. This is +emitted when meta_restart() is called, either by Mutter +internally or by the embedding compositor. The message should be +immediately added to the Clutter stage in its final form - +::restart will be emitted to exit the application and leave the +stage contents frozen as soon as the the stage is painted again. + +On case of failure to restart, this signal will be emitted again +with %NULL for @message. + + %TRUE means the message was added to the stage; %FALSE + indicates that the compositor did not show the message. + + + + + The message to display, or %NULL + to clear a previous restart message. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + top-left corner + + + top-right corner + + + bottom-left corner + + + bottom-right corner + + + + + up + + + down + + + left + + + right + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #MetaRectangle with the bounds of the edge + + + + Side + + + + To what belongs the edge + + + + + + Whether the edge belongs to a window + + + Whether the edge belongs to a monitor + + + Whether the edge belongs to a screen + + + + + Success + + + Error + + + + + + + inner visible portion of frame border + + + + outer invisible portion of frame border + + + + sum of the two borders above + + + + + + + + + + + + + + + + frame allows delete + + + frame allows menu + + + frame allows (fallback) app menu + + + frame allows minimize + + + frame allows maximize + + + frame allows vertical resize + + + frame allows horizontal resize + + + frame has focus + + + frame is shaded + + + frame is stuck + + + frame is maximized + + + frame allows shade + + + frame allows move + + + frame allows fullscreen + + + frame is flashing + + + frame is above + + + frame is tiled to the left + + + frame is tiled to the right + + + + + Normal frame + + + Dialog frame + + + Modal dialog frame + + + Utility frame + + + Menu frame + + + Border frame + + + Attached frame + + + Marks the end of the #MetaFrameType enumeration + + + Converts a frame type enum value to the name string that would +appear in the theme definition file. + + the string value + + + + + a #MetaFrameType + + + + + + + + None + + + + + Compositor asked for grab + + + + + + + Moving with pointer + + + Resizing NW with pointer + + + Resizing N with pointer + + + Resizing NE with pointer + + + Resizing E with pointer + + + Resizing SW with pointer + + + Resizing S with pointer + + + Resizing SE with pointer + + + Resizing W with pointer + + + Moving with keyboard + + + Resizing with keyboard + + + Resizing NS with keyboard + + + Resizing N with keyboard + + + Resizing NE with keyboard + + + Resizing E with keyboard + + + Resizing SW with keyboard + + + Resizing S with keyboard + + + Resizing SE with keyboard + + + Resizing W with keyboard + + + + + + + + + + + + + + + + + + + + + + + + + + List of windows + + + + + + + A #MetaGroup + + + + + + + + + + + a #MetaGroup + + + + a X event + + + + + + + + + + + + + + + + + + + + + + + + + the #MetaIdleMonitor that tracks the server-global +idletime for all devices. To track device-specific idletime, +use meta_idle_monitor_get_for_device(). + + + + + + a new #MetaIdleMonitor that tracks the +device-specific idletime for @device. To track server-global idletime +for all devices, use meta_idle_monitor_get_core(). + + + + + the device to get the idle time for. + + + + + + + a watch id + +Adds a watch for a specific idle time. The callback will be called +when the user has accumulated @interval_msec milliseconds of idle time. +This function will return an ID that can either be passed to +meta_idle_monitor_remove_watch(), or can be used to tell idle time +watches apart if you have more than one. + +Also note that this function will only care about positive transitions +(user's idle time exceeding a certain time). If you want to know about +when the user has become active, use +meta_idle_monitor_add_user_active_watch(). + + + + + A #MetaIdleMonitor + + + + The idletime interval, in milliseconds + + + + The callback to call when the user has + accumulated @interval_msec milliseconds of idle time. + + + + The user data to pass to the callback + + + + A #GDestroyNotify + + + + + + + a watch id + +Add a one-time watch to know when the user is active again. +Note that this watch is one-time and will de-activate after the +function is called, for efficiency purposes. It's most convenient +to call this when an idle watch, as added by +meta_idle_monitor_add_idle_watch(), has triggered. + + + + + A #MetaIdleMonitor + + + + The callback to call when the user is + active again. + + + + The user data to pass to the callback + + + + A #GDestroyNotify + + + + + + + The current idle time, in milliseconds, or -1 for not supported + + + + + A #MetaIdleMonitor + + + + + + Removes an idle time watcher, previously added by +meta_idle_monitor_add_idle_watch() or +meta_idle_monitor_add_user_active_watch(). + + + + + + A #MetaIdleMonitor + + + + A watch ID + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Hides the inhibit shortcuts dialog. + + + + + + a #MetaInhibitShortcutsDialog + + + + + + Shows the inhibit shortcuts dialog. + + + + + + a #MetaInhibitShortcutsDialog + + + + + + Hides the inhibit shortcuts dialog. + + + + + + a #MetaInhibitShortcutsDialog + + + + + + Responds and closes the dialog. To be called by #MetaInhibitShortcutsDialog +implementations. + + + + + + a #MetaInhibitShortcutsDialog + + + + a #MetaInhibitShortcutsDialogResponse + + + + + + Shows the inhibit shortcuts dialog. + + + + + + a #MetaInhibitShortcutsDialog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a #MetaInhibitShortcutsDialog + + + + + + + + + + + + + a #MetaInhibitShortcutsDialog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + + + FILLME + + + + + + + FILLME + + + + + none + + + per-window + + + built-in + + + is reversed + + + always active + + + + + + + + + + + a #MetaDisplay + + + + a #MetaWindow + + + + a #ClutterKeyEvent + + + + a #MetaKeyBinding + + + + data passed to the function + + + + + + + call in a resize processing phase that is done + before GTK+ repainting (including window borders) is done. + + + used by Mutter to compute which windows should be mapped + + + used by Mutter to see if there's a fullscreen window + + + used by Mutter to send it's idea of the stacking order to the server + + + call before the stage is redrawn + + + call at a very low priority (can be blocked + by running animations or redrawing applications) + + + + + + + + + + + + + + + + + + + + + + + + + + Horizontal + + + Vertical + + + Both + + + + Options that can be provided when calling meta_plugin_begin_modal(). + + if set the pointer is already + grabbed by the plugin and should not be grabbed again. + + + if set the keyboard is already + grabbed by the plugin and should not be grabbed again. + + + + + + Accessor for the singleton MetaMonitorManager. + + The only #MetaMonitorManager there is. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The monitor index or -1 if @id isn't valid or the connector +isn't associated with a logical monitor. + + + + + A #MetaMonitorManager + + + + A valid connector name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Upwards motion + + + Downwards motion + + + Motion to the left + + + Motion to the right + + + Motion up and to the left + + + Motion up and to the right + + + Motion down and to the left + + + Motion down and to the right + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Virtual function called to create a "force quit" dialog +on non-responsive clients. + + + + + + a #MetaPlugin + + + + a #MetaWindow + + + + + + Virtual function called to create a "inhibit shortcuts" dialog +when a client requests compositor shortcuts to be inhibited. + + + + + + a #MetaPlugin + + + + a #MetaWindow + + + + + + Virtual function called when the window represented by @actor is destroyed. + + + + + + + + + a #MetaWindowActor + + + + + + + + + + + + + + + + Virtual function called when handling each keybinding. + + %TRUE if the plugin handled the keybinding. + + + + + + + + a #MetaKeyBinding + + + + + + Virtual function called when the workspace-switching effect needs to be +killed prematurely. + + + + + + + + + + + Virtual function called when the effects on @actor need to be killed +prematurely; the plugin must call the completed() callback as if the effect +terminated naturally. + + + + + + + + + a #MetaWindowActor + + + + + + Virtual function called when the window represented by @actor is mapped. + + + + + + + + + a #MetaWindowActor + + + + + + Virtual function called when the window represented by @actor is minimized. + + + + + + + + + a #MetaWindowActor + + + + + + Virtual function that returns information about the #MetaPlugin. + + a #MetaPluginInfo. + + + + + a #MetaPlugin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Virtual function called when the compositor starts managing a screen + + + + + + + + + + + Virtual function called when the window represented by @actor is destroyed. + + + + + + + + + origin workspace + + + + destination workspace + + + + a #MetaMotionDirection + + + + + + Virtual function called when the window represented by @actor is unminimized. + + + + + + + + + a #MetaWindowActor + + + + + + Virtual function called when handling each event. + + %TRUE if the plugin handled the event type (i.e., if the return +value is %FALSE, there will be no subsequent call to the manager +completed() callback, and the compositor must ensure that any appropriate +post-effect cleanup is carried out. + + + + + + + + + + + + + This function is used to grab the keyboard and mouse for the exclusive +use of the plugin. Correct operation requires that both the keyboard +and mouse are grabbed, or thing will break. (In particular, other +passive X grabs in Meta can trigger but not be handled by the normal +keybinding handling code.) However, the plugin can establish the keyboard +and/or mouse grabs ahead of time and pass in the +%META_MODAL_POINTER_ALREADY_GRABBED and/or %META_MODAL_KEYBOARD_ALREADY_GRABBED +options. This facility is provided for two reasons: first to allow using +this function to establish modality after a passive grab, and second to +allow using obscure features of XGrabPointer() and XGrabKeyboard() without +having to add them to this API. + + whether we successfully grabbed the keyboard and + mouse and made the plugin modal. + + + + + a #MetaPlugin + + + + flags that modify the behavior of the modal grab + + + + the timestamp used for establishing grabs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ends the modal operation begun with meta_plugin_begin_modal(). This +ungrabs both the mouse and keyboard even when +%META_MODAL_POINTER_ALREADY_GRABBED or +%META_MODAL_KEYBOARD_ALREADY_GRABBED were provided as options +when beginnning the modal operation. + + + + + + a #MetaPlugin + + + + the time used for releasing grabs + + + + + + Gets the #MetaDisplay corresponding to a plugin. + + the #MetaDisplay for the plugin + + + + + a #MetaPlugin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a #MetaWindowActor + + + + + + + + + + + + + + + + a #MetaWindowActor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a #MetaWindowActor + + + + + + + + + + + + + + + + a #MetaWindowActor + + + + + + + + + + + + + + + + origin workspace + + + + destination workspace + + + + a #MetaMotionDirection + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a #MetaWindowActor + + + + + + + + + + + + + + + + + + + + + %TRUE if the plugin handled the event type (i.e., if the return +value is %FALSE, there will be no subsequent call to the manager +completed() callback, and the compositor must ensure that any appropriate +post-effect cleanup is carried out. + + + + + + + + + + + + + + + + %TRUE if the plugin handled the keybinding. + + + + + + + + a #MetaKeyBinding + + + + + + + + + + + + + + + + + + + + + a #MetaPluginInfo. + + + + + a #MetaPlugin + + + + + + + + + + + + + a #MetaPlugin + + + + a #MetaWindow + + + + + + + + + + + + + a #MetaPlugin + + + + a #MetaWindow + + + + + + + + + name of the plugin + + + + version of the plugin + + + + author of the plugin + + + + license of the plugin + + + + description of the plugin + + + + + + + + major component of the version number of Meta with which the plugin was compiled + + + + minor component of the version number of Meta with which the plugin was compiled + + + + micro component of the version number of Meta with which the plugin was compiled + + + + version of the plugin API + + + + + + mouse button modifiers + + + focus mode + + + focus new windows + + + attach modal dialogs + + + raise on click + + + action double click titlebar + + + action middle click titlebar + + + action right click titlebar + + + auto-raise + + + auto-raise delay + + + focus change on pointer rest + + + title-bar font + + + number of workspaces + + + dynamic workspaces + + + keybindings + + + disable workarounds + + + button layout + + + workspace names + + + visual bell + + + audible bell + + + visual bell type + + + GNOME accessibility + + + GNOME animations + + + cursor theme + + + cursor size + + + resize with right button + + + edge tiling + + + force fullscreen + + + workspaces only on primary + + + draggable border width + + + auto-maximize + + + center new windows + + + drag threshold + + + + + + + + + + + + + + + + + + + + + + + + + + + + X coordinate of the top-left corner + + + + Y coordinate of the top-left corner + + + + Width of the rectangle + + + + Height of the rectangle + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TRUE is some intersection exists and is not degenerate, FALSE + otherwise. + + + + + a #MetaRectangle + + + + another #MetaRectangle + + + + an empty #MetaRectangle, to be filled + with the coordinates of the intersection. + + + + + + + + + + + + + + + + + + + + + + + + a #MetaRectangle + + + + another #MetaRectangle + + + + an empty #MetaRectangle, to be filled + with the coordinates of the bounding box. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Stop the associated remote access session. + + + + + + A #MetaRemoteAccessHandle + + + + + + Stop the associated remote access session. + + + + + + A #MetaRemoteAccessHandle + + + + + + + + + + + + + + + + + + + + + + + + + A #MetaRemoteAccessHandle + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #MetaShadow holds a shadow texture along with information about how to +apply that texture to draw a window texture. (E.g., it knows how big the +unscaled borders are on each side of the shadow texture.) + + Computes the bounds of the pixels that will be affected by +meta_shadow_paint() + + + + + + a #MetaShadow + + + + x position of the region to paint a shadow for + + + + y position of the region to paint a shadow for + + + + actual width of the region to paint a shadow for + + + + actual height of the region to paint a shadow for + + + + + + + + + Paints the shadow at the given position, for the specified actual +size of the region. (Since a #MetaShadow can be shared between +different sizes with the same extracted #MetaWindowShape the +size needs to be passed in here.) + + + + + + + + + x position of the region to paint a shadow for + + + + y position of the region to paint a shadow for + + + + actual width of the region to paint a shadow for + + + + actual height of the region to paint a shadow for + + + + + + + if non-%NULL specifies the visible portion + of the shadow. + + + + if %TRUE, drawing will be clipped strictly + to @clip, otherwise, it will be only used to optimize + drawing. + + + + + + + + + + + + + + + + + + + + + + + + + + + #MetaShadowFactory is used to create window shadows. It caches shadows internally +so that multiple shadows created for the same shape with the same radius will +share the same MetaShadow. + + + + + + + + the global singleton shadow factory + + + + + Gets the shadow parameters for a particular class of shadows +for either the focused or unfocused state. If the class name +does not name an existing class, default values will be returned +without printing an error. + + + + + + a #MetaShadowFactory + + + + name of the class of shadow to get the params for + + + + whether the shadow is for a focused window + + + + location to store the current parameter values + + + + + + Gets the appropriate shadow object for drawing shadows for the +specified window shape. The region that we are shadowing is specified +as a combination of a size-invariant extracted shape and the size. +In some cases, the same shadow object can be shared between sizes; +in other cases a different shadow object is used for each size. + + a newly referenced #MetaShadow; unref with + meta_shadow_unref() + + + + + a #MetaShadowFactory + + + + the size-invariant shape of the window's region + + + + the actual width of the window's region + + + + the actual height of the window's region + + + + name of the class of window shadows + + + + whether the shadow is for a focused window + + + + + + Updates the shadow parameters for a particular class of shadows +for either the focused or unfocused state. If the class name +does not name an existing class, a new class will be created +(the other focus state for that class will have default values +assigned to it.) + + + + + + a #MetaShadowFactory + + + + name of the class of shadow to set the params for. + the default shadow classes are the names of the different + theme frame types (normal, dialog, modal_dialog, utility, + border, menu, attached) and in addition, popup-menu + and dropdown-menu. + + + + whether the shadow is for a focused window + + + + new parameter values + + + + + + + + + + + + + + + + + + + + + + The #MetaShadowParams structure holds information about how to draw +a particular style of shadow. + + the radius (gaussian standard deviation) of the shadow + + + + if >= 0, the shadow doesn't extend above the top + of the shape, and fades out over the given number of pixels + + + + horizontal offset of the shadow with respect to the + shape being shadowed, in pixels + + + + vertical offset of the shadow with respect to the + shape being shadowed, in pixels + + + + opacity of the shadow, from 0 to 255 + + + + + The <structname>MetaShapedTexture</structname> structure contains +only private data and should be accessed using the provided API + + + + + + Flattens the two layers of the shaped texture into one ARGB32 +image by alpha blending the two images, and returns the flattened +image. + + a new cairo surface to be freed with +cairo_surface_destroy(). + + + + + A #MetaShapedTexture + + + + A clipping rectangle, to help prevent extra processing. +In the case that the clipping rectangle is partially or fully +outside the bounds of the texture, the rectangle will be clipped. + + + + + + + the unshaped texture + + + + + The #MetaShapedTexture + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + As most windows have a large portion that does not require blending, +we can easily turn off blending if we know the areas that do not +require blending. This sets the region where we will not blend for +optimization purposes. + + + + + + a #MetaShapedTexture + + + + the region of the texture that + can have blending turned off. + + + + + + Repairs the damaged area indicated by @x, @y, @width and @height +and potentially queues a redraw. + + Whether a redraw have been queued or not + + + + + #MetaShapedTexture + + + + the x coordinate of the damaged area + + + + the y coordinate of the damaged area + + + + the width of the damaged area + + + + the height of the damaged area + + + + + + + + + + + + + + + + + + + + + + + + + + Left side + + + Right side + + + Top side + + + Bottom side + + + + + + + + + + + + + + Layers a window can be in. +These MUST be in the order of stacking. + + Desktop layer + + + Bottom layer + + + Normal layer + + + Top layer + + + Dock layer + + + Override-redirect layer + + + Marks the end of the #MetaStackLayer enumeration + + + + + + + + + + + + + + + + + + + + + + + + + + #MetaRectangle the #MetaStrut is on + + + + #MetaSide the #MetaStrut is on + + + + + + Normal windows + + + Dock windows + + + Groups + + + All windows + + + + + Show icon (Alt-Tab mode) + + + Show instantly (Alt-Esc mode) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Shift mask + + + Control mask + + + Alt mask + + + Meta mask + + + Super mask + + + Hyper mask + + + Mod2 mask + + + Mod3 mask + + + Mod4 mask + + + Mod5 mask + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Determines if the window should be drawn with a focused appearance. This is +true for focused windows but also true for windows with a focused modal +dialog attached. + + %TRUE if the window should be drawn with a focused frame + + + + + a #MetaWindow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Converts a desired bounds of the client window into the corresponding bounds +of the window frame (excluding invisible borders and client side shadows.) + + + + + + a #MetaWindow + + + + client rectangle in root coordinates + + + + location to store the computed corresponding frame bounds. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Follow the chain of parents of @window, skipping transient windows, +and return the "root" window which has no non-transient parent. + + The root ancestor window + + + + + a #MetaWindow + + + + + + + + + + + + + + + + + + + If @window is transient, call @func with the window for which it's transient, +repeatedly until either we find a non-transient window, or @func returns %FALSE. + + + + + + a #MetaWindow + + + + Called for each window which is a transient parent of @window + + + + User data + + + + + + Call @func for every window which is either transient for @window, or is +a transient of a window which is in turn transient for @window. +The order of window enumeration is not defined. + +Iteration will stop if @func at any point returns %FALSE. + + + + + + a #MetaWindow + + + + Called for each window which is a transient of @window (transitively) + + + + User data + + + + + + Converts a desired frame bounds for a window into the bounds of the client +window. + + + + + + a #MetaWindow + + + + desired frame bounds for the window + + + + location to store the computed corresponding client rectangle. + + + + + + Gets the rectangle that the pixmap or buffer of @window occupies. + +For X11 windows, this is the server-side geometry of the toplevel +window. + +For Wayland windows, this is the bounding rectangle of the attached +buffer. + + + + + + a #MetaWindow + + + + pointer to an allocated #MetaRectangle + + + + + + Returns name of the client machine from which this windows was created, +if known (obtained from the WM_CLIENT_MACHINE property). + + the machine name, or NULL; the string is +owned by the window manager and should not be freed or modified by the +caller. + + + + + a #MetaWindow + + + + + + Gets the compositor's wrapper object for @window. + + the wrapper object. + + + + + a #MetaWindow + + + + + + + + + + + + + + + + + The display for @window + + + + + A #MetaWindow + + + + + + + + + + + a #MetaWindow + + + + + + Gets a region representing the outer bounds of the window's frame. + + a #cairo_region_t + holding the outer bounds of the window, or %NULL if the window + doesn't have a frame. + + + + + a #MetaWindow + + + + + + Gets the rectangle that bounds @window that is what the user thinks of +as the edge of the window. This doesn't include any extra reactive +area that we or the client adds to the window, or any area that the +client adds to draw a client-side shadow. + + + + + + a #MetaWindow + + + + pointer to an allocated #MetaRectangle + + + + + + Gets the type of window decorations that should be used for this window. + + the frame type + + + + + a #MetaWindow + + + + + + + + + + + a #MetaWindow + + + + + + + the object path + + + + + a #MetaWindow + + + + + + + the application ID + + + + + a #MetaWindow + + + + + + + the object path + + + + + a #MetaWindow + + + + + + + the object path + + + + + a #MetaWindow + + + + + + + the theme variant or %NULL + + + + + a #MetaWindow + + + + + + + the unique name + + + + + a #MetaWindow + + + + + + + the object path + + + + + a #MetaWindow + + + + + + Gets the location of the icon corresponding to the window. The location +will be provided set by the task bar or other user interface element +displaying the icon, and is relative to the root window. + + %TRUE if the icon geometry was succesfully retrieved. + + + + + a #MetaWindow + + + + rectangle into which to store the returned geometry. + + + + + + + + + + + + + + + + Gets the current maximization state of the window, as combination +of the %META_MAXIMIZE_HORIZONTAL and %META_MAXIMIZE_VERTICAL flags; + + current maximization state + + + + + a #MetaWindow + + + + + + Gets index of the monitor that this window is on. + + The index of the monitor in the screens monitor list, or -1 +if the window has been recently unmanaged and does not have a monitor. + + + + + a #MetaWindow + + + + + + Gets the current value of the _MUTTER_HINTS property. + +The purpose of the hints is to allow fine-tuning of the Window Manager and +Compositor behaviour on per-window basis, and is intended primarily for +hints that are plugin-specific. + +The property is a list of colon-separated key=value pairs. The key names for +any plugin-specific hints must be suitably namespaced to allow for shared +use; 'mutter-' key prefix is reserved for internal use, and must not be used +by plugins. + + the _MUTTER_HINTS string, or %NULL if no hints +are set. + + + + + a #MetaWindow + + + + + + Returns pid of the process that created this window, if known (obtained from +the _NET_WM_PID property). + + the pid, or -1 if not known. + + + + + a #MetaWindow + + + + + + + + + + + + + + + + Gets an unique id for a sandboxed app (currently flatpaks and snaps are +supported). + + the sandboxed application ID or %NULL + + + + + a #MetaWindow + + + + + + The stable sequence number is a monotonicially increasing +unique integer assigned to each #MetaWindow upon creation. + +This number can be useful for sorting windows in a stable +fashion. + + Internal sequence number for this window + + + + + A #MetaWindow + + + + + + + + + + + + + + + + Returns the matching tiled window on the same monitor as @window. This is +the topmost tiled window in a complementary tile mode that is: + + - on the same monitor; + - on the same workspace; + - spanning the remaining monitor width; + - there is no 3rd window stacked between both tiled windows that's + partially visible in the common edge. + + the matching tiled window or +%NULL if it doesn't exist. + + + + + a #MetaWindow + + + + + + + the current title of the window. + + + + + a #MetaWindow + + + + + + Returns the #MetaWindow for the window that is pointed to by the +WM_TRANSIENT_FOR hint on this window (see XGetTransientForHint() +or XSetTransientForHint()). Metacity keeps transient windows above their +parents. A typical usage of this hint is for a dialog that wants to stay +above its associated window. + + the window this window is transient for, or +%NULL if the WM_TRANSIENT_FOR hint is unset or does not point to a toplevel +window that Metacity knows about. + + + + + a #MetaWindow + + + + + + The user time represents a timestamp for the last time the user +interacted with this window. Note this property is only available +for non-override-redirect windows. + +The property is set by Mutter initially upon window creation, +and updated thereafter on input events (key and button presses) seen by Mutter, +client updates to the _NET_WM_USER_TIME property (if later than the current time) +and when focusing the window. + + The last time the user interacted with this window. + + + + + a #MetaWindow + + + + + + + + + + + + + + + + Return the current value of the name part of WM_CLASS X property. + + + + + + a #MetaWindow + + + + + + Return the current value of the instance part of WM_CLASS X property. + + + + + + a #MetaWindow + + + + + + Get the work area for all monitors for @window. + + + + + + a #MetaWindow + + + + a location to store the work area + + + + + + Get the work area for the monitor @window is currently on. + + + + + + a #MetaWindow + + + + a location to store the work area + + + + + + Get the work area for @window, given the monitor index +@which_monitor. + + + + + + a #MetaWindow + + + + a moniotr to get the work area for + + + + a location to store the work area + + + + + + Gets the #MetaWorkspace that the window is currently displayed on. +If the window is on all workspaces, returns the currently active +workspace. + + the #MetaWorkspace for the window + + + + + a #MetaWindow + + + + + + + + + + + a #MetaWindow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The function determines whether @window is an ancestor of @transient; it does +so by traversing the @transient's ancestors until it either locates @window +or reaches an ancestor that is not transient. + + %TRUE if window is an ancestor of transient. + + + + + a #MetaWindow + + + + a #MetaWindow + + + + + + Tests if @window is should be attached to its parent window. +(If the "attach_modal_dialogs" option is not enabled, this will +always return %FALSE.) + + whether @window should be attached to its parent + + + + + a #MetaWindow + + + + + + Check if if the window has decorations drawn by the client. +(window->decorated refers only to whether we should add decorations) + + + + + + + + + + + + %TRUE if the window is currently fullscreen + + + + + a #MetaWindow + + + + + + + + + + + + + + + + + %TRUE if the window is occupies an entire monitor or + the whole screen. + + + + + a #MetaWindow + + + + + + + + + + + + + + + + + %TRUE if the window is on the primary monitor + + + + + a #MetaWindow + + + + + + + %TRUE if this window isn't managed by mutter; it will +control its own positioning and mutter won't draw decorations +among other things. In X terminology this is "override redirect". + + + + + A #MetaWindow + + + + + + + %TRUE if this window originates from a host +different from the one running mutter. + + + + + a #MetaWindow + + + + + + + %TRUE if the window is occupies the + the whole screen (all monitors). + + + + + A #MetaWindow + + + + + + + + + + + + + + + + Gets whether this window should be ignored by task lists. + + %TRUE if the skip bar hint is set. + + + + + A #MetaWindow + + + + + + + + + + + + + + + + + whether @window is displayed on @workspace, or whether it +will be displayed on all workspaces. + + + + + a #MetaWindow + + + + a #MetaWorkspace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Moves the window to the desired location on window's assigned +workspace, using the northwest edge of the frame as the reference, +instead of the actual window's origin, but only if a frame is present. +Otherwise, acts identically to meta_window_move(). + + + + + + a #MetaWindow + + + + bool to indicate whether or not this is a user operation + + + + desired x pos + + + + desired y pos + + + + + + Resizes the window so that its outer bounds (including frame) +fit within the given rect + + + + + + a #MetaWindow + + + + bool to indicate whether or not this is a user operation + + + + new x + + + + new y + + + + desired width + + + + desired height + + + + + + Moves the window to the monitor with index @monitor, keeping +the relative position of the window's top left corner. + + + + + + a #MetaWindow + + + + desired monitor index + + + + + + + + + + + + + + + + + %TRUE if the window requested to bypass the compositor + + + + + a #MetaWindow + + + + + + + %TRUE if the window requested to opt out of unredirecting + + + + + a #MetaWindow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sets or unsets the location of the icon corresponding to the window. If +set, the location should correspond to a dock, task bar or other user +interface element displaying the icon, and is relative to the root window. + + + + + + a #MetaWindow + + + + rectangle with the desired geometry or %NULL. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + %TRUE if window would be visible, if its workspace was current + + + + + A #MetaWindow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This is emitted when the position of a window might +have changed. Specifically, this is emitted when the +position of the toplevel window has changed, or when +the position of the client window has changed. + + + + + + + + + + + This is emitted after a window has been shown. + + + + + + This is emitted when the position of a window might +have changed. Specifically, this is emitted when the +size of the toplevel window has changed, or when the +size of the client window has changed. + + + + + + + + + + + + + + + + + + + + + + Gets the #MetaWindow object that the the #MetaWindowActor is displaying + + the displayed #MetaWindow + + + + + a #MetaWindowActor + + + + + + Gets the ClutterActor that is used to display the contents of the window, +or NULL if no texture is shown yet, because the window is not mapped. + + the #ClutterActor for the contents + + + + + a #MetaWindowActor + + + + + + + + + + + + + + + + Gets whether the X window that the actor was displaying has been destroyed + + %TRUE when the window is destroyed, otherwise %FALSE + + + + + a #MetaWindowActor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The ::effects-completed signal will be emitted once all pending compositor +effects are completed. + + + + + + The ::first-frame signal will be emitted the first time a frame +of window contents has been drawn by the application and Mutter +has had the chance to drawn that frame to the screen. If the +window starts off initially hidden, obscured, or on on a +different workspace, the ::first-frame signal will be emitted +even though the user doesn't see the contents. + +MetaDisplay::window-created is a good place to connect to this +signal - at that point, the MetaWindowActor for the window +exists, but the window has reliably not yet been drawn. +Connecting to an existing window that has already been drawn to +the screen is not useful. + + + + + + + + + + + + + + + + + A Wayland based window + + + An X11 based window + + + + + + + + + + + + + + + + + + + + + + + + + + + + Menu the compositor should display for a given window + + the window manager menu + + + the (fallback) app menu + + + + #MetaWindowShape represents a 9-sliced region with borders on all sides that +are unscaled, and a constant central region that is scaled. For example, +the regions representing two windows that are rounded rectangles, +with the same corner radius but different sizes, have the +same MetaWindowShape. +#MetaWindowShape is designed to be used as part of a hash table key, so has +efficient hash and equal functions. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Converts the shape to to a cairo_region_t using the given width +and height for the central scaled region. + + a newly created region + + + + + a #MetaWindowShape + + + + size of the central region horizontally + + + + size of the central region vertically + + + + + + + + + + + + + + + + + + Normal + + + Desktop + + + Dock + + + Dialog + + + Modal dialog + + + Toolbar + + + Menu + + + Utility + + + Splashcreen + + + Dropdown menu + + + Popup menu + + + Tooltip + + + Notification + + + Combobox + + + Drag and drop + + + Other override-redirect window type + + + + + + + + + + + + + + + + + + Switches to @workspace and possibly activates the window @focus_this. + +The window @focus_this is activated by calling meta_window_activate() +which will unminimize it and transient parents, raise it and give it +the focus. + +If a window is currently being moved by the user, it will be +moved to @workspace. + +The advantage of calling this function instead of meta_workspace_activate() +followed by meta_window_activate() is that it happens as a unit, so +no other window gets focused first before @focus_this. + + + + + + a #MetaWorkspace + + + + the #MetaWindow to be focused, or %NULL + + + + timestamp for @focus_this + + + + + + Gets the #MetaDisplay that the workspace is part of. + + the #MetaDisplay for the workspace + + + + + a #MetaWorkspace + + + + + + Calculate and retrive the workspace that is next to @workspace, +according to @direction and the current workspace layout, as set +by meta_screen_override_workspace_layout(). + + the workspace next to @workspace, or + @workspace itself if the neighbor would be outside the layout + + + + + a #MetaWorkspace + + + + a #MetaMotionDirection, relative to @workspace + + + + + + Stores the work area in @area. + + + + + + a #MetaWorkspace + + + + location to store the work area + + + + + + Stores the work area for @which_monitor on @workspace +in @area. + + + + + + a #MetaWorkspace + + + + a monitor index + + + + location to store the work area + + + + + + + + + + + + + + + + Gets windows contained on the workspace, including workspace->windows +and also sticky windows. Override-redirect windows are not included. + + the list of windows. + + + + + + + a #MetaWorkspace + + + + + + Sets a list of struts that will be used in addition to the struts +of the windows in the workspace when computing the work area of +the workspace. + + + + + + a #MetaWorkspace + + + + list of #MetaStrut + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Append a new workspace to the workspace manager and (optionally) switch to that +display. + + the newly appended workspace. + + + + + a #MetaWorkspaceManager + + + + %TRUE if the workspace should be switched to after creation + + + + if switching to a new workspace, timestamp to be used when + focusing a window on the new workspace. (Doesn't hurt to pass a valid + timestamp when available even if not switching workspaces.) + + + + + + + The current workspace + + + + + A #MetaWorkspaceManager + + + + + + + + + + + + + + + + + + + + + + + + + + Gets the workspace object for one of a workspace manager's workspaces given the workspace +index. It's valid to call this function with an out-of-range index and it +will robustly return %NULL. + + the workspace object with specified index, or %NULL + if the index is out of range. + + + + + a #MetaWorkspaceManager + + + + index of one of the display's workspaces + + + + + + + The workspaces for @display + + + + + + + a #MetaWorkspaceManager + + + + + + Explicitly set the layout of workspaces. Once this has been called, the contents of the +_NET_DESKTOP_LAYOUT property on the root window are completely ignored. + + + + + + a #MetaWorkspaceManager + + + + the corner at which the first workspace is found + + + + if %TRUE the workspaces are laid out in columns rather than rows + + + + number of rows of workspaces, or -1 to determine the number of rows from + @n_columns and the total number of workspaces + + + + number of columns of workspaces, or -1 to determine the number of columns from + @n_rows and the total number of workspaces + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a #MetaX11Display + + + + + + + + + + + a #MetaX11Display + + + + + + + + + + + A #MetaX11Display + + + + + + + + + + + + + + + + + + + + + a #MetaX11Display + + + + a X window + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + %TRUE iff window is one of mutter's internal "no focus" windows +which will have the focus when there is no actual client window focused. + + + + + A #MetaX11Display + + + + An X11 window + + + + + + + + + + + + Tells mutter to activate the session. When mutter is a +display server, this tells logind to switch over to +the new session. + + + + + + Ensure log messages for the given topic @topic +will be printed. + + + + + + Topic for which logging will be started + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Disables unredirection, can be usefull in situations where having +unredirected windows is undesireable like when recording a video. + + + + + + a #MetaDisplay + + + + + + + + + + + + + + + + Enables unredirection which reduces the overhead for apps like games. + + + + + + a #MetaDisplay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Converts a frame type enum value to the name string that would +appear in the theme definition file. + + the string value + + + + + a #MetaFrameType + + + + + + + + + + + list to deep free + + + + + + + + + + + + + + + + + + + + + Accessor for the singleton MetaBackend. + + The only #MetaBackend there is. + + + + + + The feedback group corresponding to @display + + + + + a #MetaDisplay + + + + + + + + + + + Returns a #GOptionContext initialized with mutter-related options. +Parse the command-line args with this before calling meta_init(). + + the #GOptionContext + + + + + + + + + + a #MetaDisplay + + + + + + + + + + + + The #ClutterStage for the display + + + + + a #MetaDisplay + + + + + + + The top window group corresponding to @display + + + + + a #MetaDisplay + + + + + + + The set of #MetaWindowActor on @display + + + + + + + a #MetaDisplay + + + + + + + The window group corresponding to @display + + + + + a #MetaDisplay + + + + + + + + + + + + + + + + Initialize mutter. Call this after meta_get_option_context() and +meta_plugin_manager_set_plugin_type(), and before meta_run(). + + + + + + + + + + + Returns %TRUE if this instance of Mutter comes from Mutter +restarting itself (for example to enable/disable stereo.) +See meta_restart(). If this is the case, any startup visuals +or animations should be suppressed. + + + + + + Returns whether X synchronisation is currently enabled. + +FIXME: This is *only* called by meta_display_open(), but by that time +we have already turned syncing on or off on startup, and we don't +have any way to do so while Mutter is running, so it's rather +pointless. + + %TRUE if we must wait for events whenever we send X requests; +%FALSE otherwise. + + + + + + + + + + + + + + + Allows users to register a custom handler for a +builtin key binding. + + %TRUE if the binding known as @name was found, +%FALSE otherwise. + + + + + The name of the keybinding to set + + + + The new handler function + + + + User data to pass to the callback + + + + Will be called when this handler is overridden. + + + + + + Sets up a callback to be called at some later time. @when determines the +particular later occasion at which it is called. This is much like g_idle_add(), +except that the functions interact properly with clutter event handling. +If a "later" function is added from a clutter event handler, and is supposed +to be run before the stage is redrawn, it will be run before that redraw +of the stage, not the next one. + + an integer ID (guaranteed to be non-zero) that can be used + to cancel the callback and prevent it from being run. + + + + + enumeration value determining the phase at which to run the callback + + + + callback to run later + + + + data to pass to the callback + + + + function to call to destroy @data when it is no longer in use, or %NULL + + + + + + Removes a callback added with meta_later_add() + + + + + + the integer ID returned from meta_later_add() + + + + + + + + + + + + + + + + + + + + + + + + + + a #MetaPrefsChangedFunc + + + + data passed to the function + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a #MetaPrefsChangedFunc + + + + data passed to the function + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Stops Mutter. This tells the event loop to stop processing; it is +rather dangerous to use this because this will leave the user with +no window manager. We generally do this only if, for example, the +session manager asks us to; we assume the session manager knows +what it's talking about. + + + + + + The success or failure code to return to the calling process. + + + + + + + + + + + + + + + + + + + + + + + + + Registers mutter with the session manager. Call this after completing your own +initialization. + +This should be called when the session manager can safely continue to the +next phase of startup and potentially display windows. + + + + + + Stop printing log messages for the given topic @topic. Note +that this method does not stack with meta_add_verbose_topic(); +i.e. if two calls to meta_add_verbose_topic() for the same +topic are made, one call to meta_remove_verbose_topic() will +remove it. + + + + + + Topic for which logging will be stopped + + + + + + Starts the process of restarting the compositor. Note that Mutter's +involvement here is to make the restart visually smooth for the +user - it cannot itself safely reexec a program that embeds libmuttter. +So in order for this to work, the compositor must handle two +signals - MetaDisplay::show-restart-message, to display the +message passed here on the Clutter stage, and ::restart to actually +reexec the compositor. + + + + + + message to display to the user, or %NULL + + + + + + Runs mutter. Call this after completing initialization that doesn't require +an event loop. + + mutter's exit status + + + + + Set the value to use for the _GNOME_WM_KEYBINDINGS property. To take +effect, it is necessary to call this function before meta_init(). + + + + + + value for _GNOME_WM_KEYBINDINGS + + + + + + + + + + + + + + + + + + + Set the value to use for the _NET_WM_NAME property. To take effect, +it is necessary to call this function before meta_init(). + + + + + + value for _NET_WM_NAME + + + + + + + + + + + type of dialog + + + + message + + + + timeout + + + + display + + + + text for Ok button + + + + text for Cancel button + + + + icon name + + + + window XID of parent + + + + columns + + + + + + entries + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/docs/scrapers/gnome/girs/mutter-4/Cally-4.gir b/lib/docs/scrapers/gnome/girs/mutter-4/Cally-4.gir new file mode 100644 index 0000000000..0bc92f75e6 --- /dev/null +++ b/lib/docs/scrapers/gnome/girs/mutter-4/Cally-4.gir @@ -0,0 +1,930 @@ + + + + + + + + + Action function, to be used on #AtkAction implementations as +an individual action. Unlike #CallyActionFunc, this function +uses the @user_data argument passed to cally_actor_add_action_full(). + + + + + + + a #CallyActor + + + + user data passed to the function + + + + + + Action function, to be used on #AtkAction implementations as a individual +action + + + + + + + a #CallyActor + + + + + + The <structname>CallyActor</structname> structure contains only private +data and should be accessed using the provided API + + + + + Creates a new #CallyActor for the given @actor + + + the newly created #AtkObject + + + + + a #ClutterActor + + + + + + Adds a new action to be accessed with the #AtkAction interface. + + + added action id, or -1 if failure + + + + + a #CallyActor + + + + the action name + + + + the action description + + + + the action keybinding + + + + the callback of the action, to be executed with do_action + + + + + + Adds a new action to be accessed with the #AtkAction interface. + + + added action id, or -1 if failure + + + + + a #CallyActor + + + + the action name + + + + the action description + + + + the action keybinding + + + + the callback of the action + + + + data to be passed to @callback + + + + function to be called when removing the action + + + + + + Removes a action, using the @action_id returned by cally_actor_add_action() + + + %TRUE if the operation was succesful, %FALSE otherwise + + + + + a #CallyActor + + + + the action id + + + + + + Removes an action, using the @action_name used when the action was added +with cally_actor_add_action() + + + %TRUE if the operation was succesful, %FALSE otherwise + + + + + a #CallyActor + + + + the name of the action to remove + + + + + + + + + + + + + The <structname>CallyActorClass</structname> structure contains +only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The <structname>CallyClone</structname> structure contains only private +data and should be accessed using the provided API + + + + + Creates a new #CallyClone for the given @actor. @actor must be a +#ClutterClone. + + + the newly created #AtkObject + + + + + a #ClutterActor + + + + + + + + + + + + + The <structname>CallyCloneClass</structname> structure contains only +private data + + + + + + + + + + + + + + + The <structname>CallyGroup</structname> structure contains only +private data and should be accessed using the provided API + + + + + Creates a #CallyGroup for @actor + + + the newly created #CallyGroup + + + + + a #ClutterGroup + + + + + + + + + + + + + The <structname>CallyGroupClass</structname> structure contains only +private data + + + + + + + + + + + + + + + The <structname>CallyRectangle</structname> structure contains only private +data and should be accessed using the provided API + + + + + Creates a new #CallyRectangle for the given @actor. @actor must be +a #ClutterRectangle. + + + the newly created #AtkObject + + + + + a #ClutterActor + + + + + + + + + + + + + The <structname>CallyRectangleClass</structname> structure contains +only private data + + + + + + + + + + + + + + + The <structname>CallyRoot</structname> structure contains only private +data and should be accessed using the provided API + + + Creates a new #CallyRoot object. + + + the newly created #AtkObject + + + + + + + + + + + + The <structname>CallyRootClass</structname> structure contains only +private data + + + + + + + + + + + + + + + The <structname>CallyStage</structname> structure contains only +private data and should be accessed using the provided API + + + + + + Creates a new #CallyStage for the given @actor. @actor should be a +#ClutterStage. + + + the newly created #AtkObject + + + + + a #ClutterActor + + + + + + + + + + + + + The <structname>CallyStageClass</structname> structure contains only +private data + + + + + + + + + + + + + + + The <structname>CallyText</structname> structure contains only private +data and should be accessed using the provided API + + + + + + + Creates a new #CallyText for the given @actor. @actor must be a +#ClutterText. + + + the newly created #AtkObject + + + + + a #ClutterActor + + + + + + + + + + + + + The <structname>CallyTextClass</structname> structure contains only +private data + + + + + + + + + + + + + + + The <structname>CallyTexture</structname> structure contains only +private data and should be accessed using the provided API + + + + + Creates a new #CallyTexture for the given @actor. @actor must be +a #ClutterTexture. + + + the newly created #AtkObject + + + + + a #ClutterActor + + + + + + + + + + + + + The <structname>CallyTextureClass</structname> structure contains +only private data + + + + + + + + + + + + + + + The <structname>CallyUtil</structname> structure contains only +private data and should be accessed using the provided API + + + + + + + + + + The <structname>CallyUtilClass</structname> structure contains only +private data + + + + + + + + + + + + + + + Initializes the accessibility support. + + + %TRUE if accessibility support has been correctly +initialized. + + + + + Returns if the accessibility support using cally is enabled. + + + %TRUE if accessibility support has been correctly +initialized. + + + + + diff --git a/lib/docs/scrapers/gnome/girs/mutter-4/Clutter-4.gir b/lib/docs/scrapers/gnome/girs/mutter-4/Clutter-4.gir new file mode 100644 index 0000000000..79daa212e2 --- /dev/null +++ b/lib/docs/scrapers/gnome/girs/mutter-4/Clutter-4.gir @@ -0,0 +1,94560 @@ + + + + + + + + + + + + + + + A type representing a 4x4 matrix. + +It is identicaly to #CoglMatrix. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterAction structure contains only private data and +should be accessed using the provided API. + + + + + + + The ClutterActionClass structure contains only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Base class for actors. + + + + + + + Creates a new #ClutterActor. + +A newly created actor has a floating reference, which will be sunk +when it is added to another actor. + + + the newly created #ClutterActor + + + + + Assigns the size of a #ClutterActor from the given @box. + +This function should only be called on the children of an actor when +overriding the #ClutterActorClass.allocate() virtual function. + +This function will adjust the stored allocation to take into account +the alignment flags set in the #ClutterActor:x-align and +#ClutterActor:y-align properties, as well as the margin values set in +the #ClutterActor:margin-top, #ClutterActor:margin-right, +#ClutterActor:margin-bottom, and #ClutterActor:margin-left properties. + +This function will respect the easing state of the #ClutterActor and +interpolate between the current allocation and the new one if the +easing state duration is a positive value. + +Actors can know from their allocation box whether they have moved +with respect to their parent actor. The @flags parameter describes +additional information about the allocation, for instance whether +the parent has moved with respect to the stage, for example because +a grandparent's origin has moved. + + + + + + + A #ClutterActor + + + + new allocation of the actor, in parent-relative coordinates + + + + flags that control the allocation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Destroys an actor. When an actor is destroyed, it will break any +references it holds to other objects. If the actor is inside a +container, the actor will be removed. + +When you destroy a container, its children will be destroyed as well. + +Note: you cannot destroy the #ClutterStage returned by +clutter_stage_get_default(). + + + + + + + a #ClutterActor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns the accessible object that describes the actor to an +assistive technology. + +If no class-specific #AtkObject implementation is available for the +actor instance in question, it will inherit an #AtkObject +implementation from the first ancestor class for which such an +implementation is defined. + +The documentation of the <ulink +url="http://developer.gnome.org/doc/API/2.0/atk/index.html">ATK</ulink> +library contains more information about accessible objects and +their uses. + + + the #AtkObject associated with @actor + + + + + a #ClutterActor + + + + + + + + + + + + + + + + + + + + Computes the requested minimum and natural heights for an actor, +or if they are already computed, returns the cached values. + +An actor may not get its request - depending on the layout +manager that's in effect. + +A request should not incorporate the actor's scale or anchor point; +those transformations do not affect layout, only rendering. + + + + + + + A #ClutterActor + + + + available width to assume in computing desired height, + or a negative value to indicate that no width is defined + + + + return location for minimum height, + or %NULL + + + + return location for natural + height, or %NULL + + + + + + Computes the requested minimum and natural widths for an actor, +optionally depending on the specified height, or if they are +already computed, returns the cached values. + +An actor may not get its request - depending on the layout +manager that's in effect. + +A request should not incorporate the actor's scale or anchor point; +those transformations do not affect layout, only rendering. + + + + + + + A #ClutterActor + + + + available height when computing the preferred width, + or a negative value to indicate that no height is defined + + + + return location for minimum width, + or %NULL + + + + return location for the natural + width, or %NULL + + + + + + Asks the actor's implementation whether it may contain overlapping +primitives. + +For example; Clutter may use this to determine whether the painting +should be redirected to an offscreen buffer to correctly implement +the opacity property. + +Custom actors can override the default response by implementing the +#ClutterActorClass.has_overlaps() virtual function. See +clutter_actor_set_offscreen_redirect() for more information. + + + %TRUE if the actor may have overlapping primitives, and + %FALSE otherwise + + + + + A #ClutterActor + + + + + + Flags an actor to be hidden. A hidden actor will not be +rendered on the stage. + +Actors are visible by default. + +If this function is called on an actor without a parent, the +#ClutterActor:show-on-set-parent property will be set to %FALSE +as a side-effect. + + + + + + + A #ClutterActor + + + + + + Calls clutter_actor_hide() on all child actors (if any). + Using clutter_actor_hide() on the actor will + prevent its children from being painted as well. + + + + + + + a #ClutterActor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sets the %CLUTTER_ACTOR_MAPPED flag on the actor and possibly maps +and realizes its children if they are visible. Does nothing if the +actor is not visible. + +Calling this function is strongly disencouraged: the default +implementation of #ClutterActorClass.map() will map all the children +of an actor when mapping its parent. + +When overriding map, it is mandatory to chain up to the parent +implementation. + + + + + + + A #ClutterActor + + + + + + + + + + + + + + + + + + + + Renders the actor to display. + +This function should not be called directly by applications. +Call clutter_actor_queue_redraw() to queue paints, instead. + +This function is context-aware, and will either cause a +regular paint or a pick paint. + +This function will emit the #ClutterActor::paint signal or +the #ClutterActor::pick signal, depending on the context. + +This function does not paint the actor if the actor is set to 0, +unless it is performing a pick paint. + + + + + + + A #ClutterActor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Indicates that the actor's size request or other layout-affecting +properties may have changed. This function is used inside #ClutterActor +subclass implementations, not by applications directly. + +Queueing a new layout automatically queues a redraw as well. + + + + + + + A #ClutterActor + + + + + + Realization informs the actor that it is attached to a stage. It +can use this to allocate resources if it wanted to delay allocation +until it would be rendered. However it is perfectly acceptable for +an actor to create resources before being realized because Clutter +only ever has a single rendering context so that actor is free to +be moved from one stage to another. + +This function does nothing if the actor is already realized. + +Because a realized actor must have realized parent actors, calling +clutter_actor_realize() will also realize all parents of the actor. + +This function does not realize child actors, except in the special +case that realizing the stage, when the stage is visible, will +suddenly map (and thus realize) the children of the stage. + Actors are automatically realized, and nothing + requires explicit realization. + + + + + + + A #ClutterActor + + + + + + + + + + + + + + + + + + + + Flags an actor to be displayed. An actor that isn't shown will not +be rendered on the stage. + +Actors are visible by default. + +If this function is called on an actor without a parent, the +#ClutterActor:show-on-set-parent will be set to %TRUE as a side +effect. + + + + + + + A #ClutterActor + + + + + + Calls clutter_actor_show() on all children of an actor (if any). + Actors are visible by default + + + + + + + a #ClutterActor + + + + + + + + + + + + + + + + + + + + Unsets the %CLUTTER_ACTOR_MAPPED flag on the actor and possibly +unmaps its children if they were mapped. + +Calling this function is not encouraged: the default #ClutterActor +implementation of #ClutterActorClass.unmap() will also unmap any +eventual children by default when their parent is unmapped. + +When overriding #ClutterActorClass.unmap(), it is mandatory to +chain up to the parent implementation. + +It is important to note that the implementation of the +#ClutterActorClass.unmap() virtual function may be called after +the #ClutterActorClass.destroy() or the #GObjectClass.dispose() +implementation, but it is guaranteed to be called before the +#GObjectClass.finalize() implementation. + + + + + + + A #ClutterActor + + + + + + Unrealization informs the actor that it may be being destroyed or +moved to another stage. The actor may want to destroy any +underlying graphics resources at this point. However it is +perfectly acceptable for it to retain the resources until the actor +is destroyed because Clutter only ever uses a single rendering +context and all of the graphics resources are valid on any stage. + +Because mapped actors must be realized, actors may not be +unrealized if they are mapped. This function hides the actor to be +sure it isn't mapped, an application-visible side effect that you +may not be expecting. + +This function should not be called by application code. + +This function should not really be in the public API, because +there isn't a good reason to call it. ClutterActor will already +unrealize things for you when it's important to do so. + +If you were using clutter_actor_unrealize() in a dispose +implementation, then don't, just chain up to ClutterActor's +dispose. + +If you were using clutter_actor_unrealize() to implement +unrealizing children of your container, then don't, ClutterActor +will already take care of that. + Actors are automatically unrealized, and nothing + requires explicit realization. + + + + + + + A #ClutterActor + + + + + + Adds @action to the list of actions applied to @self + +A #ClutterAction can only belong to one actor at a time + +The #ClutterActor will hold a reference on @action until either +clutter_actor_remove_action() or clutter_actor_clear_actions() +is called + + + + + + + a #ClutterActor + + + + a #ClutterAction + + + + + + A convenience function for setting the name of a #ClutterAction +while adding it to the list of actions applied to @self + +This function is the logical equivalent of: + +|[<!-- language="C" --> + clutter_actor_meta_set_name (CLUTTER_ACTOR_META (action), name); + clutter_actor_add_action (self, action); +]| + + + + + + + a #ClutterActor + + + + the name to set on the action + + + + a #ClutterAction + + + + + + Adds @child to the children of @self. + +This function will acquire a reference on @child that will only +be released when calling clutter_actor_remove_child(). + +This function will take into consideration the #ClutterActor:depth +of @child, and will keep the list of children sorted. + +This function will emit the #ClutterContainer::actor-added signal +on @self. + + + + + + + a #ClutterActor + + + + a #ClutterActor + + + + + + Adds @constraint to the list of #ClutterConstraint<!-- -->s applied +to @self + +The #ClutterActor will hold a reference on the @constraint until +either clutter_actor_remove_constraint() or +clutter_actor_clear_constraints() is called. + + + + + + + a #ClutterActor + + + + a #ClutterConstraint + + + + + + A convenience function for setting the name of a #ClutterConstraint +while adding it to the list of constraints applied to @self + +This function is the logical equivalent of: + +|[<!-- language="C" --> + clutter_actor_meta_set_name (CLUTTER_ACTOR_META (constraint), name); + clutter_actor_add_constraint (self, constraint); +]| + + + + + + + a #ClutterActor + + + + the name to set on the constraint + + + + a #ClutterConstraint + + + + + + Adds @effect to the list of #ClutterEffect<!-- -->s applied to @self + +The #ClutterActor will hold a reference on the @effect until either +clutter_actor_remove_effect() or clutter_actor_clear_effects() is +called. + + + + + + + a #ClutterActor + + + + a #ClutterEffect + + + + + + A convenience function for setting the name of a #ClutterEffect +while adding it to the list of effectss applied to @self + +This function is the logical equivalent of: + +|[<!-- language="C" --> + clutter_actor_meta_set_name (CLUTTER_ACTOR_META (effect), name); + clutter_actor_add_effect (self, effect); +]| + + + + + + + a #ClutterActor + + + + the name to set on the effect + + + + a #ClutterEffect + + + + + + Adds a @transition to the #ClutterActor's list of animations. + +The @name string is a per-actor unique identifier of the @transition: only +one #ClutterTransition can be associated to the specified @name. + +The @transition will be started once added. + +This function will take a reference on the @transition. + +This function is usually called implicitly when modifying an animatable +property. + + + + + + + a #ClutterActor + + + + the name of the transition to add + + + + the #ClutterTransition to add + + + + + + Assigns the size of a #ClutterActor from the given @box. + +This function should only be called on the children of an actor when +overriding the #ClutterActorClass.allocate() virtual function. + +This function will adjust the stored allocation to take into account +the alignment flags set in the #ClutterActor:x-align and +#ClutterActor:y-align properties, as well as the margin values set in +the #ClutterActor:margin-top, #ClutterActor:margin-right, +#ClutterActor:margin-bottom, and #ClutterActor:margin-left properties. + +This function will respect the easing state of the #ClutterActor and +interpolate between the current allocation and the new one if the +easing state duration is a positive value. + +Actors can know from their allocation box whether they have moved +with respect to their parent actor. The @flags parameter describes +additional information about the allocation, for instance whether +the parent has moved with respect to the stage, for example because +a grandparent's origin has moved. + + + + + + + A #ClutterActor + + + + new allocation of the actor, in parent-relative coordinates + + + + flags that control the allocation + + + + + + Allocates @self by taking into consideration the available allocation +area; an alignment factor on either axis; and whether the actor should +fill the allocation on either axis. + +The @box should contain the available allocation width and height; +if the x1 and y1 members of #ClutterActorBox are not set to 0, the +allocation will be offset by their value. + +This function takes into consideration the geometry request specified by +the #ClutterActor:request-mode property, and the text direction. + +This function is useful for fluid layout managers using legacy alignment +flags. Newly written layout managers should use the #ClutterActor:x-align +and #ClutterActor:y-align properties, instead, and just call +clutter_actor_allocate() inside their #ClutterActorClass.allocate() +implementation. + + + + + + + a #ClutterActor + + + + a #ClutterActorBox, containing the available width and height + + + + the horizontal alignment, between 0 and 1 + + + + the vertical alignment, between 0 and 1 + + + + whether the actor should fill horizontally + + + + whether the actor should fill vertically + + + + allocation flags to be passed to clutter_actor_allocate() + + + + + + Allocates @self taking into account the #ClutterActor's +preferred size, but limiting it to the maximum available width +and height provided. + +This function will do the right thing when dealing with the +actor's request mode. + +The implementation of this function is equivalent to: + +|[<!-- language="C" --> + if (request_mode == CLUTTER_REQUEST_HEIGHT_FOR_WIDTH) + { + clutter_actor_get_preferred_width (self, available_height, + &min_width, + &natural_width); + width = CLAMP (natural_width, min_width, available_width); + + clutter_actor_get_preferred_height (self, width, + &min_height, + &natural_height); + height = CLAMP (natural_height, min_height, available_height); + } + else if (request_mode == CLUTTER_REQUEST_WIDTH_FOR_HEIGHT) + { + clutter_actor_get_preferred_height (self, available_width, + &min_height, + &natural_height); + height = CLAMP (natural_height, min_height, available_height); + + clutter_actor_get_preferred_width (self, height, + &min_width, + &natural_width); + width = CLAMP (natural_width, min_width, available_width); + } + else if (request_mode == CLUTTER_REQUEST_CONTENT_SIZE) + { + clutter_content_get_preferred_size (content, &natural_width, &natural_height); + + width = CLAMP (natural_width, 0, available_width); + height = CLAMP (natural_height, 0, available_height); + } + + box.x1 = x; box.y1 = y; + box.x2 = box.x1 + available_width; + box.y2 = box.y1 + available_height; + clutter_actor_allocate (self, &box, flags); +]| + +This function can be used by fluid layout managers to allocate +an actor's preferred size without making it bigger than the area +available for the container. + + + + + + + a #ClutterActor + + + + the actor's X coordinate + + + + the actor's Y coordinate + + + + the maximum available width, or -1 to use the + actor's natural width + + + + the maximum available height, or -1 to use the + actor's natural height + + + + flags controlling the allocation + + + + + + Allocates the natural size of @self. + +This function is a utility call for #ClutterActor implementations +that allocates the actor's preferred natural size. It can be used +by fixed layout managers (like #ClutterGroup or so called +'composite actors') inside the ClutterActor::allocate +implementation to give each child exactly how much space it +requires, regardless of the size of the parent. + +This function is not meant to be used by applications. It is also +not meant to be used outside the implementation of the +#ClutterActorClass.allocate virtual function. + + + + + + + a #ClutterActor + + + + flags controlling the allocation + + + + + + Animates the given list of properties of @actor between the current +value for each property and a new final value. The animation has a +definite duration and a speed given by the @mode. + +For example, this: + +|[<!-- language="C" --> + clutter_actor_animate (rectangle, CLUTTER_LINEAR, 250, + "width", 100.0, + "height", 100.0, + NULL); +]| + +will make width and height properties of the #ClutterActor "rectangle" +grow linearly between the current value and 100 pixels, in 250 milliseconds. + +The animation @mode is a logical id, either from the #ClutterAnimationMode +enumeration of from clutter_alpha_register_func(). + +All the properties specified will be animated between the current value +and the final value. If a property should be set at the beginning of +the animation but not updated during the animation, it should be prefixed +by the "fixed::" string, for instance: + +|[<!-- language="C" --> + clutter_actor_animate (actor, CLUTTER_EASE_IN_SINE, 100, + "rotation-angle-z", 360.0, + "fixed::rotation-center-z", &center, + NULL); +]| + +Will animate the "rotation-angle-z" property between the current value +and 360 degrees, and set the "rotation-center-z" property to the fixed +value of the #ClutterVertex "center". + +This function will implicitly create a #ClutterAnimation object which +will be assigned to the @actor and will be returned to the developer +to control the animation or to know when the animation has been +completed. + +If a name argument starts with "signal::", "signal-after::", +"signal-swapped::" or "signal-swapped-after::" the two following arguments +are used as callback function and data for a signal handler installed on +the #ClutterAnimation object for the specified signal name, for instance: + +|[<!-- language="C" --> + static void + on_animation_completed (ClutterAnimation *animation, + ClutterActor *actor) + { + clutter_actor_hide (actor); + } + + clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC, 100, + "opacity", 0, + "signal::completed", on_animation_completed, actor, + NULL); +]| + +or, to automatically destroy an actor at the end of the animation: + +|[<!-- language="C" --> + clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC, 100, + "opacity", 0, + "signal-swapped-after::completed", + clutter_actor_destroy, + actor, + NULL); +]| + +The "signal::" modifier is the equivalent of using g_signal_connect(); +the "signal-after::" modifier is the equivalent of using +g_signal_connect_after() or g_signal_connect_data() with the +%G_CONNECT_AFTER; the "signal-swapped::" modifier is the equivalent +of using g_signal_connect_swapped() or g_signal_connect_data() with the +%G_CONNECT_SWAPPED flah; finally, the "signal-swapped-after::" modifier +is the equivalent of using g_signal_connect_data() with both the +%G_CONNECT_AFTER and %G_CONNECT_SWAPPED flags. The clutter_actor_animate() +function will not keep track of multiple connections to the same signal, +so it is your responsability to avoid them when calling +clutter_actor_animate() multiple times on the same actor. + +Calling this function on an actor that is already being animated +will cause the current animation to change with the new final values, +the new easing mode and the new duration - that is, this code: + +|[<!-- language="C" --> + clutter_actor_animate (actor, CLUTTER_LINEAR, 250, + "width", 100.0, + "height", 100.0, + NULL); + clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC, 500, + "x", 100.0, + "y", 100.0, + "width", 200.0, + NULL); +]| + +is the equivalent of: + +|[<!-- language="C" --> + clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC, 500, + "x", 100.0, + "y", 100.0, + "width", 200.0, + "height", 100.0, + NULL); +]| + +Unless the animation is looping, the #ClutterAnimation created by +clutter_actor_animate() will become invalid as soon as it is +complete. + +Since the created #ClutterAnimation instance attached to @actor +is guaranteed to be valid throughout the #ClutterAnimation::completed +signal emission chain, you will not be able to create a new animation +using clutter_actor_animate() on the same @actor from within the +#ClutterAnimation::completed signal handler unless you use +g_signal_connect_after() to connect the callback function, for instance: + +|[<!-- language="C" --> + static void + on_animation_completed (ClutterAnimation *animation, + ClutterActor *actor) + { + clutter_actor_animate (actor, CLUTTER_EASE_OUT_CUBIC, 250, + "x", 500.0, + "y", 500.0, + NULL); + } + + ... + animation = clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC, 250, + "x", 100.0, + "y", 100.0, + NULL); + g_signal_connect (animation, "completed", + G_CALLBACK (on_animation_completed), + actor); + ... +]| + Use the implicit transition for animatable properties + in #ClutterActor instead. See clutter_actor_save_easing_state(), + clutter_actor_set_easing_mode(), clutter_actor_set_easing_duration(), + clutter_actor_set_easing_delay(), and clutter_actor_restore_easing_state(). + + + a #ClutterAnimation object. The object is + owned by the #ClutterActor and should not be unreferenced with + g_object_unref() + + + + + a #ClutterActor + + + + an animation mode logical id + + + + duration of the animation, in milliseconds + + + + the name of a property + + + + a %NULL terminated list of property names and + property values + + + + + + Animates the given list of properties of @actor between the current +value for each property and a new final value. The animation has a +definite behaviour given by the passed @alpha. + +See clutter_actor_animate() for further details. + +This function is useful if you want to use an existing #ClutterAlpha +to animate @actor. + Use the implicit transition for animatable properties + in #ClutterActor instead. See clutter_actor_save_easing_state(), + clutter_actor_set_easing_mode(), clutter_actor_set_easing_duration(), + clutter_actor_set_easing_delay(), and clutter_actor_restore_easing_state(). + + + a #ClutterAnimation object. The object is owned by the + #ClutterActor and should not be unreferenced with g_object_unref() + + + + + a #ClutterActor + + + + a #ClutterAlpha + + + + the name of a property + + + + a %NULL terminated list of property names and + property values + + + + + + Animates the given list of properties of @actor between the current +value for each property and a new final value. The animation has a +definite behaviour given by the passed @alpha. + +See clutter_actor_animate() for further details. + +This function is useful if you want to use an existing #ClutterAlpha +to animate @actor. + +This is the vector-based variant of clutter_actor_animate_with_alpha(), +useful for language bindings. + +Unlike clutter_actor_animate_with_alpha(), this function will +not allow you to specify "signal::" names and callbacks. + Use the implicit transition for animatable properties + in #ClutterActor instead. See clutter_actor_save_easing_state(), + clutter_actor_set_easing_mode(), clutter_actor_set_easing_duration(), + clutter_actor_set_easing_delay(), and clutter_actor_restore_easing_state(). + + + a #ClutterAnimation object. The object is owned by the + #ClutterActor and should not be unreferenced with g_object_unref() + + + + + a #ClutterActor + + + + a #ClutterAlpha + + + + number of property names and values + + + + a vector + containing the property names to set + + + + + + a vector containing the + property values to set + + + + + + + + Animates the given list of properties of @actor between the current +value for each property and a new final value. The animation has a +definite duration given by @timeline and a speed given by the @mode. + +See clutter_actor_animate() for further details. + +This function is useful if you want to use an existing timeline +to animate @actor. + Use the implicit transition for animatable properties + in #ClutterActor instead. See clutter_actor_save_easing_state(), + clutter_actor_set_easing_mode(), clutter_actor_set_easing_duration(), + clutter_actor_set_easing_delay(), and clutter_actor_restore_easing_state(). + + + a #ClutterAnimation object. The object is + owned by the #ClutterActor and should not be unreferenced with + g_object_unref() + + + + + a #ClutterActor + + + + an animation mode logical id + + + + a #ClutterTimeline + + + + the name of a property + + + + a %NULL terminated list of property names and + property values + + + + + + Animates the given list of properties of @actor between the current +value for each property and a new final value. The animation has a +definite duration given by @timeline and a speed given by the @mode. + +See clutter_actor_animate() for further details. + +This function is useful if you want to use an existing timeline +to animate @actor. + +This is the vector-based variant of clutter_actor_animate_with_timeline(), +useful for language bindings. + +Unlike clutter_actor_animate_with_timeline(), this function +will not allow you to specify "signal::" names and callbacks. + Use the implicit transition for animatable properties + in #ClutterActor instead. See clutter_actor_save_easing_state(), + clutter_actor_set_easing_mode(), clutter_actor_set_easing_duration(), + clutter_actor_set_easing_delay(), and clutter_actor_restore_easing_state(). + + + a #ClutterAnimation object. The object is + owned by the #ClutterActor and should not be unreferenced with + g_object_unref() + + + + + a #ClutterActor + + + + an animation mode logical id + + + + a #ClutterTimeline + + + + number of property names and values + + + + a vector + containing the property names to set + + + + + + a vector containing the + property values to set + + + + + + + + Animates the given list of properties of @actor between the current +value for each property and a new final value. The animation has a +definite duration and a speed given by the @mode. + +This is the vector-based variant of clutter_actor_animate(), useful +for language bindings. + +Unlike clutter_actor_animate(), this function will not +allow you to specify "signal::" names and callbacks. + Use the implicit transition for animatable properties + in #ClutterActor instead. See clutter_actor_save_easing_state(), + clutter_actor_set_easing_mode(), clutter_actor_set_easing_duration(), + clutter_actor_set_easing_delay(), and clutter_actor_restore_easing_state(). + + + a #ClutterAnimation object. The object is + owned by the #ClutterActor and should not be unreferenced with + g_object_unref() + + + + + a #ClutterActor + + + + an animation mode logical id + + + + duration of the animation, in milliseconds + + + + number of property names and values + + + + a vector + containing the property names to set + + + + + + a vector containing the + property values to set + + + + + + + + Transforms @point in coordinates relative to the actor into +ancestor-relative coordinates using the relevant transform +stack (i.e. scale, rotation, etc). + +If @ancestor is %NULL the ancestor will be the #ClutterStage. In +this case, the coordinates returned will be the coordinates on +the stage before the projection is applied. This is different from +the behaviour of clutter_actor_apply_transform_to_point(). + + + + + + + A #ClutterActor + + + + A #ClutterActor ancestor, or %NULL to use the + default #ClutterStage + + + + A point as #ClutterVertex + + + + The translated #ClutterVertex + + + + + + Transforms @point in coordinates relative to the actor +into screen-relative coordinates with the current actor +transformation (i.e. scale, rotation, etc) + + + + + + + A #ClutterActor + + + + A point as #ClutterVertex + + + + The translated #ClutterVertex + + + + + + Binds a #GListModel to a #ClutterActor. + +If the #ClutterActor was already bound to a #GListModel, the previous +binding is destroyed. + +The existing children of #ClutterActor are destroyed when setting a +model, and new children are created and added, representing the contents +of the @model. The #ClutterActor is updated whenever the @model changes. +If @model is %NULL, the #ClutterActor is left empty. + +When a #ClutterActor is bound to a model, adding and removing children +directly is undefined behaviour. + + + + + + + a #ClutterActor + + + + a #GListModel + + + + a function that creates #ClutterActor instances + from the contents of the @model + + + + user data passed to @create_child_func + + + + function called when unsetting the @model + + + + + + Binds a #GListModel to a #ClutterActor. + +Unlike clutter_actor_bind_model(), this function automatically creates +a child #ClutterActor of type @child_type, and binds properties on the +items inside the @model to the corresponding properties on the child, +for instance: + +|[<!-- language="C" --> + clutter_actor_bind_model_with_properties (actor, model, + MY_TYPE_CHILD_VIEW, + "label", "text", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE, + "icon", "image", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE, + "selected", "selected", G_BINDING_BIDIRECTIONAL, + "active", "active", G_BINDING_BIDIRECTIONAL, + NULL); +]| + +is the equivalent of calling clutter_actor_bind_model() with a +#ClutterActorCreateChildFunc of: + +|[<!-- language="C" --> + ClutterActor *res = g_object_new (MY_TYPE_CHILD_VIEW, NULL); + + g_object_bind_property (item, "label", res, "text", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE); + g_object_bind_property (item, "icon", res, "image", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE); + g_object_bind_property (item, "selected", res, "selected", G_BINDING_BIDIRECTIONAL); + g_object_bind_property (item, "active", res, "active", G_BINDING_BIDIRECTIONAL); + + return res; +]| + +If the #ClutterActor was already bound to a #GListModel, the previous +binding is destroyed. + +When a #ClutterActor is bound to a model, adding and removing children +directly is undefined behaviour. + +See also: clutter_actor_bind_model() + + + + + + + a #ClutterActor + + + + a #GListModel + + + + the type of #ClutterActor to use when creating + children mapping to items inside the @model + + + + the first property of @model to bind + + + + tuples of property names on the @model, on the child, and the + #GBindingFlags used to bind them, terminated by %NULL + + + + + + Clears the list of actions applied to @self + + + + + + + a #ClutterActor + + + + + + Clears the list of constraints applied to @self + + + + + + + a #ClutterActor + + + + + + Clears the list of effects applied to @self + + + + + + + a #ClutterActor + + + + + + Determines if @descendant is contained inside @self (either as an +immediate child, or as a deeper descendant). If @self and +@descendant point to the same actor then it will also return %TRUE. + + + whether @descendent is contained within @self + + + + + A #ClutterActor + + + + A #ClutterActor, possibly contained in @self + + + + + + Run the next stage of the paint sequence. This function should only +be called within the implementation of the ‘run’ virtual of a +#ClutterEffect. It will cause the run method of the next effect to +be applied, or it will paint the actual actor if the current effect +is the last effect in the chain. + + + + + + + A #ClutterActor + + + + + + Creates a #PangoContext for the given actor. The #PangoContext +is already configured using the appropriate font map, resolution +and font options. + +See also clutter_actor_get_pango_context(). + + + the newly created #PangoContext. + Use g_object_unref() on the returned value to deallocate its + resources + + + + + a #ClutterActor + + + + + + Creates a new #PangoLayout from the same #PangoContext used +by the #ClutterActor. The #PangoLayout is already configured +with the font map, resolution and font options, and the +given @text. + +If you want to keep around a #PangoLayout created by this +function you will have to connect to the #ClutterBackend::font-changed +and #ClutterBackend::resolution-changed signals, and call +pango_layout_context_changed() in response to them. + + + the newly created #PangoLayout. + Use g_object_unref() when done + + + + + a #ClutterActor + + + + the text to set on the #PangoLayout, or %NULL + + + + + + Destroys an actor. When an actor is destroyed, it will break any +references it holds to other objects. If the actor is inside a +container, the actor will be removed. + +When you destroy a container, its children will be destroyed as well. + +Note: you cannot destroy the #ClutterStage returned by +clutter_stage_get_default(). + + + + + + + a #ClutterActor + + + + + + Destroys all children of @self. + +This function releases the reference added by inserting a child +actor in the list of children of @self, and ensures that the +#ClutterActor::destroy signal is emitted on each child of the +actor. + +By default, #ClutterActor will emit the #ClutterActor::destroy signal +when its reference count drops to 0; the default handler of the +#ClutterActor::destroy signal will destroy all the children of an +actor. This function ensures that all children are destroyed, instead +of just removed from @self, unlike clutter_actor_remove_all_children() +which will merely release the reference and remove each child. + +Unless you acquired an additional reference on each child of @self +prior to calling clutter_actor_remove_all_children() and want to reuse +the actors, you should use clutter_actor_destroy_all_children() in +order to make sure that children are destroyed and signal handlers +are disconnected even in cases where circular references prevent this +from automatically happening through reference counting alone. + + + + + + + a #ClutterActor + + + + + + Detaches the #ClutterAnimation used by @actor, if clutter_actor_animate() +has been called on @actor. + +Once the animation has been detached, it loses a reference. If it was +the only reference then the #ClutterAnimation becomes invalid. + +The #ClutterAnimation::completed signal will not be emitted. + Use the implicit transition for animatable properties + in #ClutterActor instead, and clutter_actor_remove_transition() to + remove the transition. + + + + + + + a #ClutterActor + + + + + + This function is used to emit an event on the main stage. +You should rarely need to use this function, except for +synthetising events. + + + the return value from the signal emission: %TRUE + if the actor handled the event, or %FALSE if the event was + not handled + + + + + a #ClutterActor + + + + a #ClutterEvent + + + + %TRUE if event in in capture phase, %FALSE otherwise. + + + + + + Calculates the transformed screen coordinates of the four corners of +the actor; the returned vertices relate to the #ClutterActorBox +coordinates as follows: + + - v[0] contains (x1, y1) + - v[1] contains (x2, y1) + - v[2] contains (x1, y2) + - v[3] contains (x2, y2) + + + + + + + A #ClutterActor + + + + Pointer to a location of an array + of 4 #ClutterVertex where to store the result. + + + + + + + + Returns the accessible object that describes the actor to an +assistive technology. + +If no class-specific #AtkObject implementation is available for the +actor instance in question, it will inherit an #AtkObject +implementation from the first ancestor class for which such an +implementation is defined. + +The documentation of the <ulink +url="http://developer.gnome.org/doc/API/2.0/atk/index.html">ATK</ulink> +library contains more information about accessible objects and +their uses. + + + the #AtkObject associated with @actor + + + + + a #ClutterActor + + + + + + Retrieves the #ClutterAction with the given name in the list +of actions applied to @self + + + a #ClutterAction for the given + name, or %NULL. The returned #ClutterAction is owned by the + actor and it should not be unreferenced directly + + + + + a #ClutterActor + + + + the name of the action to retrieve + + + + + + Retrieves the list of actions applied to @self + + + a copy + of the list of #ClutterAction<!-- -->s. The contents of the list are + owned by the #ClutterActor. Use g_list_free() to free the resources + allocated by the returned #GList + + + + + + + a #ClutterActor + + + + + + Gets the layout box an actor has been assigned. The allocation can +only be assumed valid inside a paint() method; anywhere else, it +may be out-of-date. + +An allocation does not incorporate the actor's scale or anchor point; +those transformations do not affect layout, only rendering. + +Do not call any of the clutter_actor_get_allocation_*() family +of functions inside the implementation of the get_preferred_width() +or get_preferred_height() virtual functions. + + + + + + + A #ClutterActor + + + + the function fills this in with the actor's allocation + + + + + + Gets the layout box an actor has been assigned. The allocation can +only be assumed valid inside a paint() method; anywhere else, it +may be out-of-date. + +An allocation does not incorporate the actor's scale or anchor point; +those transformations do not affect layout, only rendering. + +The returned rectangle is in pixels. + Use clutter_actor_get_allocation_box() instead. + + + + + + + A #ClutterActor + + + + allocation geometry in pixels + + + + + + Calculates the transformed coordinates of the four corners of the +actor in the plane of @ancestor. The returned vertices relate to +the #ClutterActorBox coordinates as follows: + + - @verts[0] contains (x1, y1) + - @verts[1] contains (x2, y1) + - @verts[2] contains (x1, y2) + - @verts[3] contains (x2, y2) + +If @ancestor is %NULL the ancestor will be the #ClutterStage. In +this case, the coordinates returned will be the coordinates on +the stage before the projection is applied. This is different from +the behaviour of clutter_actor_get_abs_allocation_vertices(). + + + + + + + A #ClutterActor + + + + A #ClutterActor to calculate the vertices + against, or %NULL to use the #ClutterStage + + + + return + location for an array of 4 #ClutterVertex in which to store the result + + + + + + + + Gets the current anchor point of the @actor in pixels. + Use #ClutterActor:pivot-point instead + + + + + + + a #ClutterActor + + + + return location for the X coordinate of the anchor point + + + + return location for the Y coordinate of the anchor point + + + + + + Retrieves the anchor position expressed as a #ClutterGravity. If +the anchor point was specified using pixels or units this will +return %CLUTTER_GRAVITY_NONE. + Use #ClutterActor:pivot-point instead. + + + the #ClutterGravity used by the anchor point + + + + + a #ClutterActor + + + + + + Retrieves the #ClutterAnimation used by @actor, if clutter_actor_animate() +has been called on @actor. + Use the implicit transition for animatable properties + in #ClutterActor instead, and clutter_actor_get_transition() to retrieve + the transition. + + + a #ClutterAnimation, or %NULL + + + + + a #ClutterActor + + + + + + Retrieves the color set using clutter_actor_set_background_color(). + + + + + + + a #ClutterActor + + + + return location for a #ClutterColor + + + + + + Retrieves the actor at the given @index_ inside the list of +children of @self. + + + a pointer to a #ClutterActor, or %NULL + + + + + a #ClutterActor + + + + the position in the list of children + + + + + + Retrieves the child transformation matrix set using +clutter_actor_set_child_transform(); if none is currently set, +the @transform matrix will be initialized to the identity matrix. + + + + + + + a #ClutterActor + + + + a #ClutterMatrix + + + + + + Retrieves the list of children of @self. + + + A newly + allocated #GList of #ClutterActor<!-- -->s. Use g_list_free() when + done. + + + + + + + a #ClutterActor + + + + + + Gets the clip area for @self, if any is set. + + + + + + + a #ClutterActor + + + + return location for the X offset of + the clip rectangle, or %NULL + + + + return location for the Y offset of + the clip rectangle, or %NULL + + + + return location for the width of + the clip rectangle, or %NULL + + + + return location for the height of + the clip rectangle, or %NULL + + + + + + Retrieves the value set using clutter_actor_set_clip_to_allocation() + + + %TRUE if the #ClutterActor is clipped to its allocation + + + + + a #ClutterActor + + + + + + Retrieves the #ClutterConstraint with the given name in the list +of constraints applied to @self + + + a #ClutterConstraint for the given + name, or %NULL. The returned #ClutterConstraint is owned by the + actor and it should not be unreferenced directly + + + + + a #ClutterActor + + + + the name of the constraint to retrieve + + + + + + Retrieves the list of constraints applied to @self + + + a copy + of the list of #ClutterConstraint<!-- -->s. The contents of the list are + owned by the #ClutterActor. Use g_list_free() to free the resources + allocated by the returned #GList + + + + + + + a #ClutterActor + + + + + + Retrieves the contents of @self. + + + a pointer to the #ClutterContent instance, + or %NULL if none was set + + + + + a #ClutterActor + + + + + + Retrieves the bounding box for the #ClutterContent of @self. + +The bounding box is relative to the actor's allocation. + +If no #ClutterContent is set for @self, or if @self has not been +allocated yet, then the result is undefined. + +The content box is guaranteed to be, at most, as big as the allocation +of the #ClutterActor. + +If the #ClutterContent used by the actor has a preferred size, then +it is possible to modify the content box by using the +#ClutterActor:content-gravity property. + + + + + + + a #ClutterActor + + + + the return location for the bounding + box for the #ClutterContent + + + + + + Retrieves the content gravity as set using +clutter_actor_set_content_gravity(). + + + the content gravity + + + + + a #ClutterActor + + + + + + Retrieves the repeat policy for a #ClutterActor set by +clutter_actor_set_content_repeat(). + + + the content repeat policy + + + + + a #ClutterActor + + + + + + Retrieves the values set using clutter_actor_set_content_scaling_filters(). + + + + + + + a #ClutterActor + + + + return location for the minification + filter, or %NULL + + + + return location for the magnification + filter, or %NULL + + + + + + Retrieves the default paint volume for @self. + +This function provides the same #ClutterPaintVolume that would be +computed by the default implementation inside #ClutterActor of the +#ClutterActorClass.get_paint_volume() virtual function. + +This function should only be used by #ClutterActor subclasses that +cannot chain up to the parent implementation when computing their +paint volume. + + + a pointer to the default + #ClutterPaintVolume, relative to the #ClutterActor, or %NULL if + the actor could not compute a valid paint volume. The returned value + is not guaranteed to be stable across multiple frames, so if you + want to retain it, you will need to copy it using + clutter_paint_volume_copy(). + + + + + a #ClutterActor + + + + + + Retrieves the depth of @self. + Use clutter_actor_get_z_position() instead. + + + the depth of the actor + + + + + a #ClutterActor + + + + + + Retrieves the delay that should be applied when tweening animatable +properties. + + + a delay, in milliseconds + + + + + a #ClutterActor + + + + + + Retrieves the duration of the tweening for animatable +properties of @self for the current easing state. + + + the duration of the tweening, in milliseconds + + + + + a #ClutterActor + + + + + + Retrieves the easing mode for the tweening of animatable properties +of @self for the current easing state. + + + an easing mode + + + + + a #ClutterActor + + + + + + Retrieves the #ClutterEffect with the given name in the list +of effects applied to @self + + + a #ClutterEffect for the given + name, or %NULL. The returned #ClutterEffect is owned by the + actor and it should not be unreferenced directly + + + + + a #ClutterActor + + + + the name of the effect to retrieve + + + + + + Retrieves the #ClutterEffect<!-- -->s applied on @self, if any + + + a list + of #ClutterEffect<!-- -->s, or %NULL. The elements of the returned + list are owned by Clutter and they should not be freed. You should + free the returned list using g_list_free() when done + + + + + + + a #ClutterActor + + + + + + Retrieves the first child of @self. + +The returned pointer is only valid until the scene graph changes; it +is not safe to modify the list of children of @self while iterating +it. + + + a pointer to a #ClutterActor, or %NULL + + + + + a #ClutterActor + + + + + + Checks whether an actor has a fixed position set (and will thus be +unaffected by any layout manager). + + + %TRUE if the fixed position is set on the actor + + + + + A #ClutterActor + + + + + + Retrieves the flags set on @self + + + a bitwise or of #ClutterActorFlags or 0 + + + + + a #ClutterActor + + + + + + Retrieves the unique id for @self. + The id is not used any longer, and this function + always returns 0. + + + Globally unique value for this object instance. + + + + + A #ClutterActor + + + + + + Retrieves the height of a #ClutterActor. + +If the actor has a valid allocation, this function will return the +height of the allocated area given to the actor. + +If the actor does not have a valid allocation, this function will +return the actor's natural height, that is the preferred height of +the actor. + +If you care whether you get the preferred height or the height that +has been assigned to the actor, you should probably call a different +function like clutter_actor_get_allocation_box() to retrieve the +allocated size or clutter_actor_get_preferred_height() to retrieve the +preferred height. + +If an actor has a fixed height, for instance a height that has been +assigned using clutter_actor_set_height(), the height returned will +be the same value. + + + the height of the actor, in pixels + + + + + A #ClutterActor + + + + + + Retrieves the last child of @self. + +The returned pointer is only valid until the scene graph changes; it +is not safe to modify the list of children of @self while iterating +it. + + + a pointer to a #ClutterActor, or %NULL + + + + + a #ClutterActor + + + + + + Retrieves the #ClutterLayoutManager used by @self. + + + a pointer to the #ClutterLayoutManager, + or %NULL + + + + + a #ClutterActor + + + + + + Retrieves all the components of the margin of a #ClutterActor. + + + + + + + a #ClutterActor + + + + return location for a #ClutterMargin + + + + + + Retrieves the bottom margin of a #ClutterActor. + + + the bottom margin + + + + + a #ClutterActor + + + + + + Retrieves the left margin of a #ClutterActor. + + + the left margin + + + + + a #ClutterActor + + + + + + Retrieves the right margin of a #ClutterActor. + + + the right margin + + + + + a #ClutterActor + + + + + + Retrieves the top margin of a #ClutterActor. + + + the top margin + + + + + a #ClutterActor + + + + + + Retrieves the number of children of @self. + + + the number of children of an actor + + + + + a #ClutterActor + + + + + + Retrieves the name of @self. + + + the name of the actor, or %NULL. The returned string is + owned by the actor and should not be modified or freed. + + + + + A #ClutterActor + + + + + + Retrieves the sibling of @self that comes after it in the list +of children of @self's parent. + +The returned pointer is only valid until the scene graph changes; it +is not safe to modify the list of children of @self while iterating +it. + + + a pointer to a #ClutterActor, or %NULL + + + + + a #ClutterActor + + + + + + Retrieves whether to redirect the actor to an offscreen buffer, as +set by clutter_actor_set_offscreen_redirect(). + + + the value of the offscreen-redirect property of the actor + + + + + a #ClutterActor + + + + + + Retrieves the opacity value of an actor, as set by +clutter_actor_set_opacity(). + +For retrieving the absolute opacity of the actor inside a paint +virtual function, see clutter_actor_get_paint_opacity(). + + + the opacity of the actor + + + + + a #ClutterActor + + + + + + See clutter_actor_set_opacity_override() + + + the override value for the actor's opacity, or -1 if no override + is set. + + + + + a #ClutterActor + + + + + + Retrieves the paint volume of the passed #ClutterActor, and +transforms it into a 2D bounding box in stage coordinates. + +This function is useful to determine the on screen area occupied by +the actor. The box is only an approximation and may often be +considerably larger due to the optimizations used to calculate the +box. The box is never smaller though, so it can reliably be used +for culling. + +There are times when a 2D paint box can't be determined, e.g. +because the actor isn't yet parented under a stage or because +the actor is unable to determine a paint volume. + + + %TRUE if a 2D paint box could be determined, else +%FALSE. + + + + + a #ClutterActor + + + + return location for a #ClutterActorBox + + + + + + Retrieves the absolute opacity of the actor, as it appears on the stage. + +This function traverses the hierarchy chain and composites the opacity of +the actor with that of its parents. + +This function is intended for subclasses to use in the paint virtual +function, to paint themselves with the correct opacity. + + + The actor opacity value. + + + + + A #ClutterActor + + + + + + Retrieves the 'paint' visibility of an actor recursively checking for non +visible parents. + +This is by definition the same as %CLUTTER_ACTOR_IS_MAPPED. + + + %TRUE if the actor is visibile and will be painted. + + + + + A #ClutterActor + + + + + + Retrieves the paint volume of the passed #ClutterActor, or %NULL +when a paint volume can't be determined. + +The paint volume is defined as the 3D space occupied by an actor +when being painted. + +This function will call the #ClutterActorClass.get_paint_volume() +virtual function of the #ClutterActor class. Sub-classes of #ClutterActor +should not usually care about overriding the default implementation, +unless they are, for instance: painting outside their allocation, or +actors with a depth factor (not in terms of #ClutterActor:depth but real +3D depth). + +Note: 2D actors overriding #ClutterActorClass.get_paint_volume() +should ensure that their volume has a depth of 0. (This will be true +as long as you don't call clutter_paint_volume_set_depth().) + + + a pointer to a #ClutterPaintVolume, + or %NULL if no volume could be determined. The returned pointer + is not guaranteed to be valid across multiple frames; if you want + to keep it, you will need to copy it using clutter_paint_volume_copy(). + + + + + a #ClutterActor + + + + + + Retrieves the #PangoContext for @self. The actor's #PangoContext +is already configured using the appropriate font map, resolution +and font options. + +Unlike clutter_actor_create_pango_context(), this context is owend +by the #ClutterActor and it will be updated each time the options +stored by the #ClutterBackend change. + +You can use the returned #PangoContext to create a #PangoLayout +and render text using cogl_pango_render_layout() to reuse the +glyphs cache also used by Clutter. + + + the #PangoContext for a #ClutterActor. + The returned #PangoContext is owned by the actor and should not be + unreferenced by the application code + + + + + a #ClutterActor + + + + + + Retrieves the parent of @self. + + + The #ClutterActor parent, or %NULL + if no parent is set + + + + + A #ClutterActor + + + + + + Retrieves the coordinates of the #ClutterActor:pivot-point. + + + + + + + a #ClutterActor + + + + return location for the normalized X + coordinate of the pivot point, or %NULL + + + + return location for the normalized Y + coordinate of the pivot point, or %NULL + + + + + + Retrieves the Z component of the #ClutterActor:pivot-point. + + + + + + + a #ClutterActor + + + + + + This function tries to "do what you mean" and tell you where the +actor is, prior to any transformations. Retrieves the fixed +position of an actor in pixels, if one has been set; otherwise, if +the allocation is valid, returns the actor's allocated position; +otherwise, returns 0,0. + +The returned position is in pixels. + + + + + + + a #ClutterActor + + + + return location for the X coordinate, or %NULL + + + + return location for the Y coordinate, or %NULL + + + + + + Computes the requested minimum and natural heights for an actor, +or if they are already computed, returns the cached values. + +An actor may not get its request - depending on the layout +manager that's in effect. + +A request should not incorporate the actor's scale or anchor point; +those transformations do not affect layout, only rendering. + + + + + + + A #ClutterActor + + + + available width to assume in computing desired height, + or a negative value to indicate that no width is defined + + + + return location for minimum height, + or %NULL + + + + return location for natural + height, or %NULL + + + + + + Computes the preferred minimum and natural size of an actor, taking into +account the actor's geometry management (either height-for-width +or width-for-height). + +The width and height used to compute the preferred height and preferred +width are the actor's natural ones. + +If you need to control the height for the preferred width, or the width for +the preferred height, you should use clutter_actor_get_preferred_width() +and clutter_actor_get_preferred_height(), and check the actor's preferred +geometry management using the #ClutterActor:request-mode property. + + + + + + + a #ClutterActor + + + + return location for the minimum + width, or %NULL + + + + return location for the minimum + height, or %NULL + + + + return location for the natural + width, or %NULL + + + + return location for the natural + height, or %NULL + + + + + + Computes the requested minimum and natural widths for an actor, +optionally depending on the specified height, or if they are +already computed, returns the cached values. + +An actor may not get its request - depending on the layout +manager that's in effect. + +A request should not incorporate the actor's scale or anchor point; +those transformations do not affect layout, only rendering. + + + + + + + A #ClutterActor + + + + available height when computing the preferred width, + or a negative value to indicate that no height is defined + + + + return location for minimum width, + or %NULL + + + + return location for the natural + width, or %NULL + + + + + + Retrieves the sibling of @self that comes before it in the list +of children of @self's parent. + +The returned pointer is only valid until the scene graph changes; it +is not safe to modify the list of children of @self while iterating +it. + + + a pointer to a #ClutterActor, or %NULL + + + + + a #ClutterActor + + + + + + Checks whether @actor is marked as reactive. + + + %TRUE if the actor is reactive + + + + + a #ClutterActor + + + + + + Retrieves the geometry request mode of @self + + + the request mode for the actor + + + + + a #ClutterActor + + + + + + Retrieves the resource scale for this actor, if available. + +The resource scale refers to the scale the actor should use for its resources. +For example if an actor draws a a picture of size 100 x 100 in the stage +coordinate space, it should use a texture of twice the size (i.e. 200 x 200) +if the resource scale is 2. + +The resource scale is determined by calculating the highest #ClutterStageView +scale the actor will get painted on. + + + TRUE if resource scale is set for the actor, otherwise FALSE + + + + + A #ClutterActor + + + + return location for the resource scale + + + + + + Retrieves the angle and center of rotation on the given axis, +set using clutter_actor_set_rotation(). + Use clutter_actor_get_rotation_angle() and + clutter_actor_get_pivot_point() instead. + + + the angle of rotation + + + + + a #ClutterActor + + + + the axis of rotation + + + + return value for the X coordinate of the center of rotation + + + + return value for the Y coordinate of the center of rotation + + + + return value for the Z coordinate of the center of rotation + + + + + + Retrieves the angle of rotation set by clutter_actor_set_rotation_angle(). + + + the angle of rotation, in degrees + + + + + a #ClutterActor + + + + the axis of the rotation + + + + + + Retrieves an actors scale factors. + + + + + + + A #ClutterActor + + + + Location to store horizonal + scale factor, or %NULL. + + + + Location to store vertical + scale factor, or %NULL. + + + + + + Retrieves the scale center coordinate in pixels relative to the top +left corner of the actor. If the scale center was specified using a +#ClutterGravity this will calculate the pixel offset using the +current size of the actor. + Use clutter_actor_get_pivot_point() instead. + + + + + + + A #ClutterActor + + + + Location to store the X position + of the scale center, or %NULL. + + + + Location to store the Y position + of the scale center, or %NULL. + + + + + + Retrieves the scale center as a compass direction. If the scale +center was specified in pixels or units this will return +%CLUTTER_GRAVITY_NONE. + Use clutter_actor_get_pivot_point() instead. + + + the scale gravity + + + + + A #ClutterActor + + + + + + Retrieves the scaling factor along the Z axis, as set using +clutter_actor_set_scale_z(). + + + the scaling factor along the Z axis + + + + + A #ClutterActor + + + + + + This function tries to "do what you mean" and return +the size an actor will have. If the actor has a valid +allocation, the allocation will be returned; otherwise, +the actors natural size request will be returned. + +If you care whether you get the request vs. the allocation, you +should probably call a different function like +clutter_actor_get_allocation_box() or +clutter_actor_get_preferred_width(). + + + + + + + A #ClutterActor + + + + return location for the width, or %NULL. + + + + return location for the height, or %NULL. + + + + + + Retrieves the #ClutterStage where @actor is contained. + + + the stage + containing the actor, or %NULL + + + + + a #ClutterActor + + + + + + Retrieves the value set using clutter_actor_set_text_direction() + +If no text direction has been previously set, the default text +direction, as returned by clutter_get_default_text_direction(), will +be returned instead + + + the #ClutterTextDirection for the actor + + + + + a #ClutterActor + + + + + + Retrieves the current transformation matrix of a #ClutterActor. + + + + + + + a #ClutterActor + + + + a #ClutterMatrix + + + + + + Retrieves the transformations applied to @self relative to its +parent. + Use clutter_actor_get_transform() instead + + + + + + + a #ClutterActor + + + + the return location for a #ClutterMatrix + + + + + + Retrieves the 3D paint volume of an actor like +clutter_actor_get_paint_volume() does (Please refer to the +documentation of clutter_actor_get_paint_volume() for more +details.) and it additionally transforms the paint volume into the +coordinate space of @relative_to_ancestor. (Or the stage if %NULL +is passed for @relative_to_ancestor) + +This can be used by containers that base their paint volume on +the volume of their children. Such containers can query the +transformed paint volume of all of its children and union them +together using clutter_paint_volume_union(). + + + a pointer to a #ClutterPaintVolume, + or %NULL if no volume could be determined. The returned pointer is + not guaranteed to be valid across multiple frames; if you wish to + keep it, you will have to copy it using clutter_paint_volume_copy(). + + + + + a #ClutterActor + + + + A #ClutterActor that is an ancestor of @self + (or %NULL for the stage) + + + + + + Gets the absolute position of an actor, in pixels relative to the stage. + + + + + + + A #ClutterActor + + + + return location for the X coordinate, or %NULL + + + + return location for the Y coordinate, or %NULL + + + + + + Gets the absolute size of an actor in pixels, taking into account the +scaling factors. + +If the actor has a valid allocation, the allocated size will be used. +If the actor has not a valid allocation then the preferred size will +be transformed and returned. + +If you want the transformed allocation, see +clutter_actor_get_abs_allocation_vertices() instead. + +When the actor (or one of its ancestors) is rotated around the +X or Y axis, it no longer appears as on the stage as a rectangle, but +as a generic quadrangle; in that case this function returns the size +of the smallest rectangle that encapsulates the entire quad. Please +note that in this case no assumptions can be made about the relative +position of this envelope to the absolute position of the actor, as +returned by clutter_actor_get_transformed_position(); if you need this +information, you need to use clutter_actor_get_abs_allocation_vertices() +to get the coords of the actual quadrangle. + + + + + + + A #ClutterActor + + + + return location for the width, or %NULL + + + + return location for the height, or %NULL + + + + + + Retrieves the #ClutterTransition of a #ClutterActor by using the +transition @name. + +Transitions created for animatable properties use the name of the +property itself, for instance the code below: + +|[<!-- language="C" --> + clutter_actor_set_easing_duration (actor, 1000); + clutter_actor_set_rotation (actor, CLUTTER_Y_AXIS, 360.0, x, y, z); + + transition = clutter_actor_get_transition (actor, "rotation-angle-y"); + g_signal_connect (transition, "stopped", + G_CALLBACK (on_transition_stopped), + actor); +]| + +will call the `on_transition_stopped` callback when the transition +is finished. + +If you just want to get notifications of the completion of a transition, +you should use the #ClutterActor::transition-stopped signal, using the +transition name as the signal detail. + + + a #ClutterTransition, or %NULL is none + was found to match the passed name; the returned instance is owned + by Clutter and it should not be freed + + + + + a #ClutterActor + + + + the name of the transition + + + + + + Retrieves the translation set using clutter_actor_set_translation(). + + + + + + + a #ClutterActor + + + + return location for the X component + of the translation, or %NULL + + + + return location for the Y component + of the translation, or %NULL + + + + return location for the Z component + of the translation, or %NULL + + + + + + Retrieves the width of a #ClutterActor. + +If the actor has a valid allocation, this function will return the +width of the allocated area given to the actor. + +If the actor does not have a valid allocation, this function will +return the actor's natural width, that is the preferred width of +the actor. + +If you care whether you get the preferred width or the width that +has been assigned to the actor, you should probably call a different +function like clutter_actor_get_allocation_box() to retrieve the +allocated size or clutter_actor_get_preferred_width() to retrieve the +preferred width. + +If an actor has a fixed width, for instance a width that has been +assigned using clutter_actor_set_width(), the width returned will +be the same value. + + + the width of the actor, in pixels + + + + + A #ClutterActor + + + + + + Retrieves the X coordinate of a #ClutterActor. + +This function tries to "do what you mean", by returning the +correct value depending on the actor's state. + +If the actor has a valid allocation, this function will return +the X coordinate of the origin of the allocation box. + +If the actor has any fixed coordinate set using clutter_actor_set_x(), +clutter_actor_set_position() or clutter_actor_set_geometry(), this +function will return that coordinate. + +If both the allocation and a fixed position are missing, this function +will return 0. + + + the X coordinate, in pixels, ignoring any + transformation (i.e. scaling, rotation) + + + + + A #ClutterActor + + + + + + Retrieves the horizontal alignment policy set using +clutter_actor_set_x_align(). + + + the horizontal alignment policy. + + + + + a #ClutterActor + + + + + + Retrieves the value set with clutter_actor_set_x_expand(). + +See also: clutter_actor_needs_expand() + + + %TRUE if the actor has been set to expand + + + + + a #ClutterActor + + + + + + Retrieves the Y coordinate of a #ClutterActor. + +This function tries to "do what you mean", by returning the +correct value depending on the actor's state. + +If the actor has a valid allocation, this function will return +the Y coordinate of the origin of the allocation box. + +If the actor has any fixed coordinate set using clutter_actor_set_y(), +clutter_actor_set_position() or clutter_actor_set_geometry(), this +function will return that coordinate. + +If both the allocation and a fixed position are missing, this function +will return 0. + + + the Y coordinate, in pixels, ignoring any + transformation (i.e. scaling, rotation) + + + + + A #ClutterActor + + + + + + Retrieves the vertical alignment policy set using +clutter_actor_set_y_align(). + + + the vertical alignment policy. + + + + + a #ClutterActor + + + + + + Retrieves the value set with clutter_actor_set_y_expand(). + +See also: clutter_actor_needs_expand() + + + %TRUE if the actor has been set to expand + + + + + a #ClutterActor + + + + + + Retrieves the actor's position on the Z axis. + + + the position on the Z axis. + + + + + a #ClutterActor + + + + + + Retrieves the center for the rotation around the Z axis as a +compass direction. If the center was specified in pixels or units +this will return %CLUTTER_GRAVITY_NONE. + Use the #ClutterActor:pivot-point instead of + a #ClutterGravity + + + the Z rotation center + + + + + A #ClutterActor + + + + + + Sets the key focus of the #ClutterStage including @self +to this #ClutterActor. + + + + + + + a #ClutterActor + + + + + + Returns whether the actor has any actions applied. + + + %TRUE if the actor has any actions, + %FALSE otherwise + + + + + A #ClutterActor + + + + + + Checks if the actor has an up-to-date allocation assigned to +it. This means that the actor should have an allocation: it's +visible and has a parent. It also means that there is no +outstanding relayout request in progress for the actor or its +children (There might be other outstanding layout requests in +progress that will cause the actor to get a new allocation +when the stage is laid out, however). + +If this function returns %FALSE, then the actor will normally +be allocated before it is next drawn on the screen. + + + %TRUE if the actor has an up-to-date allocation + + + + + a #ClutterActor + + + + + + Determines whether the actor has a clip area set or not. + + + %TRUE if the actor has a clip area set. + + + + + a #ClutterActor + + + + + + Returns whether the actor has any constraints applied. + + + %TRUE if the actor has any constraints, + %FALSE otherwise + + + + + A #ClutterActor + + + + + + + + + + + + + + + + + Returns whether the actor has any effects applied. + + + %TRUE if the actor has any effects, + %FALSE otherwise + + + + + A #ClutterActor + + + + + + Checks whether @self is the #ClutterActor that has key focus + + + %TRUE if the actor has key focus, and %FALSE otherwise + + + + + a #ClutterActor + + + + + + Returns whether a #ClutterActor has any mapped clones. + + + %TRUE if the actor has mapped clones, and %FALSE otherwise + + + + + a #ClutterActor + + + + + + Asks the actor's implementation whether it may contain overlapping +primitives. + +For example; Clutter may use this to determine whether the painting +should be redirected to an offscreen buffer to correctly implement +the opacity property. + +Custom actors can override the default response by implementing the +#ClutterActorClass.has_overlaps() virtual function. See +clutter_actor_set_offscreen_redirect() for more information. + + + %TRUE if the actor may have overlapping primitives, and + %FALSE otherwise + + + + + A #ClutterActor + + + + + + Checks whether an actor contains the pointer of a +#ClutterInputDevice + + + %TRUE if the actor contains the pointer, and + %FALSE otherwise + + + + + a #ClutterActor + + + + + + Flags an actor to be hidden. A hidden actor will not be +rendered on the stage. + +Actors are visible by default. + +If this function is called on an actor without a parent, the +#ClutterActor:show-on-set-parent property will be set to %FALSE +as a side-effect. + + + + + + + A #ClutterActor + + + + + + Calls clutter_actor_hide() on all child actors (if any). + Using clutter_actor_hide() on the actor will + prevent its children from being painted as well. + + + + + + + a #ClutterActor + + + + + + Inserts @child into the list of children of @self, above another +child of @self or, if @sibling is %NULL, above all the children +of @self. + +This function will acquire a reference on @child that will only +be released when calling clutter_actor_remove_child(). + +This function will not take into consideration the #ClutterActor:depth +of @child. + +This function will emit the #ClutterContainer::actor-added signal +on @self. + + + + + + + a #ClutterActor + + + + a #ClutterActor + + + + a child of @self, or %NULL + + + + + + Inserts @child into the list of children of @self, using the +given @index_. If @index_ is greater than the number of children +in @self, or is less than 0, then the new child is added at the end. + +This function will acquire a reference on @child that will only +be released when calling clutter_actor_remove_child(). + +This function will not take into consideration the #ClutterActor:depth +of @child. + +This function will emit the #ClutterContainer::actor-added signal +on @self. + + + + + + + a #ClutterActor + + + + a #ClutterActor + + + + the index + + + + + + Inserts @child into the list of children of @self, below another +child of @self or, if @sibling is %NULL, below all the children +of @self. + +This function will acquire a reference on @child that will only +be released when calling clutter_actor_remove_child(). + +This function will not take into consideration the #ClutterActor:depth +of @child. + +This function will emit the #ClutterContainer::actor-added signal +on @self. + + + + + + + a #ClutterActor + + + + a #ClutterActor + + + + a child of @self, or %NULL + + + + + + Checks whether @self is being currently painted by a #ClutterClone + +This function is useful only inside the ::paint virtual function +implementations or within handlers for the #ClutterActor::paint +signal + +This function should not be used by applications + + + %TRUE if the #ClutterActor is currently being painted + by a #ClutterClone, and %FALSE otherwise + + + + + a #ClutterActor + + + + + + Checks whether a #ClutterActor has been set as mapped. + +See also %CLUTTER_ACTOR_IS_MAPPED and #ClutterActor:mapped + + + %TRUE if the actor is mapped + + + + + a #ClutterActor + + + + + + Checks whether a #ClutterActor is realized. + +See also %CLUTTER_ACTOR_IS_REALIZED and #ClutterActor:realized. + + + %TRUE if the actor is realized + + + + + a #ClutterActor + + + + + + Checks whether any rotation is applied to the actor. + + + %TRUE if the actor is rotated. + + + + + a #ClutterActor + + + + + + Checks whether the actor is scaled in either dimension. + + + %TRUE if the actor is scaled. + + + + + a #ClutterActor + + + + + + Checks whether an actor is marked as visible. + +See also %CLUTTER_ACTOR_IS_VISIBLE and #ClutterActor:visible. + + + %TRUE if the actor visible + + + + + a #ClutterActor + + + + + + Puts @self below @above. + +Both actors must have the same parent, and the parent must implement +the #ClutterContainer interface. + +This function calls clutter_container_lower_child() internally. + Use clutter_actor_set_child_below_sibling() instead. + + + + + + + A #ClutterActor + + + + A #ClutterActor to lower below + + + + + + Lowers @self to the bottom. + +This function calls clutter_actor_lower() internally. + Use clutter_actor_set_child_below_sibling() with + a %NULL sibling, instead. + + + + + + + A #ClutterActor + + + + + + Sets the %CLUTTER_ACTOR_MAPPED flag on the actor and possibly maps +and realizes its children if they are visible. Does nothing if the +actor is not visible. + +Calling this function is strongly disencouraged: the default +implementation of #ClutterActorClass.map() will map all the children +of an actor when mapping its parent. + +When overriding map, it is mandatory to chain up to the parent +implementation. + + + + + + + A #ClutterActor + + + + + + Sets an anchor point for the actor, and adjusts the actor postion so that +the relative position of the actor toward its parent remains the same. + Use #ClutterActor:pivot-point and +clutter_actor_set_translation() instead. + + + + + + + a #ClutterActor + + + + X coordinate of the anchor point + + + + Y coordinate of the anchor point + + + + + + Sets an anchor point on the actor based on the given gravity, adjusting the +actor postion so that its relative position within its parent remains +unchanged. + +Since version 1.0 the anchor point will be stored as a gravity so +that if the actor changes size then the anchor point will move. For +example, if you set the anchor point to %CLUTTER_GRAVITY_SOUTH_EAST +and later double the size of the actor, the anchor point will move +to the bottom right. + Use #ClutterActor:pivot-point and +clutter_actor_set_translation() instead. + + + + + + + a #ClutterActor + + + + #ClutterGravity. + + + + + + Moves an actor by the specified distance relative to its current +position in pixels. + +This function modifies the fixed position of an actor and thus removes +it from any layout management. Another way to move an actor is with an +anchor point, see clutter_actor_set_anchor_point(), or with an additional +translation, using clutter_actor_set_translation(). + + + + + + + A #ClutterActor + + + + Distance to move Actor on X axis. + + + + Distance to move Actor on Y axis. + + + + + + Checks whether an actor, or any of its children, is set to expand +horizontally or vertically. + +This function should only be called by layout managers that can +assign extra space to their children. + +If you want to know whether the actor was explicitly set to expand, +use clutter_actor_get_x_expand() or clutter_actor_get_y_expand(). + + + %TRUE if the actor should expand + + + + + a #ClutterActor + + + + the direction of expansion + + + + + + Renders the actor to display. + +This function should not be called directly by applications. +Call clutter_actor_queue_redraw() to queue paints, instead. + +This function is context-aware, and will either cause a +regular paint or a pick paint. + +This function will emit the #ClutterActor::paint signal or +the #ClutterActor::pick signal, depending on the context. + +This function does not paint the actor if the actor is set to 0, +unless it is performing a pick paint. + + + + + + + A #ClutterActor + + + + + + Disables the effects of clutter_actor_push_internal(). + All children of an actor are accessible through + the #ClutterActor API. This function is only useful for legacy + containers overriding the default implementation of the + #ClutterContainer interface. + + + + + + + a #ClutterActor + + + + + + Should be used by actors implementing the #ClutterContainer and with +internal children added through clutter_actor_set_parent(), for instance: + +|[<!-- language="C" --> + static void + my_actor_init (MyActor *self) + { + self->priv = my_actor_get_instance_private (self); + + clutter_actor_push_internal (CLUTTER_ACTOR (self)); + + // calling clutter_actor_set_parent() now will result in + // the internal flag being set on a child of MyActor + + // internal child - a background texture + self->priv->background_tex = clutter_texture_new (); + clutter_actor_set_parent (self->priv->background_tex, + CLUTTER_ACTOR (self)); + + // internal child - a label + self->priv->label = clutter_text_new (); + clutter_actor_set_parent (self->priv->label, + CLUTTER_ACTOR (self)); + + clutter_actor_pop_internal (CLUTTER_ACTOR (self)); + + // calling clutter_actor_set_parent() now will not result in + // the internal flag being set on a child of MyActor + } +]| + +This function will be used by Clutter to toggle an "internal child" +flag whenever clutter_actor_set_parent() is called; internal children +are handled differently by Clutter, specifically when destroying their +parent. + +Call clutter_actor_pop_internal() when you finished adding internal +children. + +Nested calls to clutter_actor_push_internal() are allowed, but each +one must by followed by a clutter_actor_pop_internal() call. + All children of an actor are accessible through + the #ClutterActor API, and #ClutterActor implements the + #ClutterContainer interface, so this function is only useful + for legacy containers overriding the default implementation. + + + + + + + a #ClutterActor + + + + + + Queues up a redraw of an actor and any children. The redraw occurs +once the main loop becomes idle (after the current batch of events +has been processed, roughly). + +Applications rarely need to call this, as redraws are handled +automatically by modification functions. + +This function will not do anything if @self is not visible, or +if the actor is inside an invisible part of the scenegraph. + +Also be aware that painting is a NOP for actors with an opacity of +0 + +When you are implementing a custom actor you must queue a redraw +whenever some private state changes that will affect painting or +picking of your actor. + + + + + + + A #ClutterActor + + + + + + Queues a redraw on @self limited to a specific, actor-relative +rectangular area. + +If @clip is %NULL this function is equivalent to +clutter_actor_queue_redraw(). + + + + + + + a #ClutterActor + + + + a rectangular clip region, or %NULL + + + + + + Indicates that the actor's size request or other layout-affecting +properties may have changed. This function is used inside #ClutterActor +subclass implementations, not by applications directly. + +Queueing a new layout automatically queues a redraw as well. + + + + + + + A #ClutterActor + + + + + + Puts @self above @below. + +Both actors must have the same parent, and the parent must implement +the #ClutterContainer interface + +This function calls clutter_container_raise_child() internally. + Use clutter_actor_set_child_above_sibling() instead. + + + + + + + A #ClutterActor + + + + A #ClutterActor to raise above. + + + + + + Raises @self to the top. + +This function calls clutter_actor_raise() internally. + Use clutter_actor_set_child_above_sibling() with + a %NULL sibling, instead. + + + + + + + A #ClutterActor + + + + + + Realization informs the actor that it is attached to a stage. It +can use this to allocate resources if it wanted to delay allocation +until it would be rendered. However it is perfectly acceptable for +an actor to create resources before being realized because Clutter +only ever has a single rendering context so that actor is free to +be moved from one stage to another. + +This function does nothing if the actor is already realized. + +Because a realized actor must have realized parent actors, calling +clutter_actor_realize() will also realize all parents of the actor. + +This function does not realize child actors, except in the special +case that realizing the stage, when the stage is visible, will +suddenly map (and thus realize) the children of the stage. + Actors are automatically realized, and nothing + requires explicit realization. + + + + + + + A #ClutterActor + + + + + + Removes @action from the list of actions applied to @self + +The reference held by @self on the #ClutterAction will be released + + + + + + + a #ClutterActor + + + + a #ClutterAction + + + + + + Removes the #ClutterAction with the given name from the list +of actions applied to @self + + + + + + + a #ClutterActor + + + + the name of the action to remove + + + + + + Removes all children of @self. + +This function releases the reference added by inserting a child actor +in the list of children of @self. + +If the reference count of a child drops to zero, the child will be +destroyed. If you want to ensure the destruction of all the children +of @self, use clutter_actor_destroy_all_children(). + + + + + + + a #ClutterActor + + + + + + Removes all transitions associated to @self. + + + + + + + a #ClutterActor + + + + + + Removes @child from the children of @self. + +This function will release the reference added by +clutter_actor_add_child(), so if you want to keep using @child +you will have to acquire a referenced on it before calling this +function. + +This function will emit the #ClutterContainer::actor-removed +signal on @self. + + + + + + + a #ClutterActor + + + + a #ClutterActor + + + + + + Removes clip area from @self. + + + + + + + A #ClutterActor + + + + + + Removes @constraint from the list of constraints applied to @self + +The reference held by @self on the #ClutterConstraint will be released + + + + + + + a #ClutterActor + + + + a #ClutterConstraint + + + + + + Removes the #ClutterConstraint with the given name from the list +of constraints applied to @self + + + + + + + a #ClutterActor + + + + the name of the constraint to remove + + + + + + Removes @effect from the list of effects applied to @self + +The reference held by @self on the #ClutterEffect will be released + + + + + + + a #ClutterActor + + + + a #ClutterEffect + + + + + + Removes the #ClutterEffect with the given name from the list +of effects applied to @self + + + + + + + a #ClutterActor + + + + the name of the effect to remove + + + + + + Removes the transition stored inside a #ClutterActor using @name +identifier. + +If the transition is currently in progress, it will be stopped. + +This function releases the reference acquired when the transition +was added to the #ClutterActor. + + + + + + + a #ClutterActor + + + + the name of the transition to remove + + + + + + Resets the parent actor of @self. + +This function is logically equivalent to calling clutter_actor_unparent() +and clutter_actor_set_parent(), but more efficiently implemented, as it +ensures the child is not finalized when unparented, and emits the +#ClutterActor::parent-set signal only once. + +In reality, calling this function is less useful than it sounds, as some +application code may rely on changes in the intermediate state between +removal and addition of the actor from its old parent to the @new_parent. +Thus, it is strongly encouraged to avoid using this function in application +code. + Use clutter_actor_remove_child() and + clutter_actor_add_child() instead; remember to take a reference on + the actor being removed before calling clutter_actor_remove_child() + to avoid the reference count dropping to zero and the actor being + destroyed. + + + + + + + a #ClutterActor + + + + the new #ClutterActor parent + + + + + + Replaces @old_child with @new_child in the list of children of @self. + + + + + + + a #ClutterActor + + + + the child of @self to replace + + + + the #ClutterActor to replace @old_child + + + + + + Restores the easing state as it was prior to a call to +clutter_actor_save_easing_state(). + + + + + + + a #ClutterActor + + + + + + Saves the current easing state for animatable properties, and creates +a new state with the default values for easing mode and duration. + +New transitions created after calling this function will inherit the +duration, easing mode, and delay of the new easing state; this also +applies to transitions modified in flight. + + + + + + + a #ClutterActor + + + + + + Stores the allocation of @self as defined by @box. + +This function can only be called from within the implementation of +the #ClutterActorClass.allocate() virtual function. + +The allocation should have been adjusted to take into account constraints, +alignment, and margin properties. If you are implementing a #ClutterActor +subclass that provides its own layout management policy for its children +instead of using a #ClutterLayoutManager delegate, you should not call +this function on the children of @self; instead, you should call +clutter_actor_allocate(), which will adjust the allocation box for +you. + +This function should only be used by subclasses of #ClutterActor +that wish to store their allocation but cannot chain up to the +parent's implementation; the default implementation of the +#ClutterActorClass.allocate() virtual function will call this +function. + +It is important to note that, while chaining up was the recommended +behaviour for #ClutterActor subclasses prior to the introduction of +this function, it is recommended to call clutter_actor_set_allocation() +instead. + +If the #ClutterActor is using a #ClutterLayoutManager delegate object +to handle the allocation of its children, this function will call +the clutter_layout_manager_allocate() function only if the +%CLUTTER_DELEGATE_LAYOUT flag is set on @flags, otherwise it is +expected that the subclass will call clutter_layout_manager_allocate() +by itself. For instance, the following code: + +|[<!-- language="C" --> +static void +my_actor_allocate (ClutterActor *actor, + const ClutterActorBox *allocation, + ClutterAllocationFlags flags) +{ + ClutterActorBox new_alloc; + ClutterAllocationFlags new_flags; + + adjust_allocation (allocation, &new_alloc); + + new_flags = flags | CLUTTER_DELEGATE_LAYOUT; + + // this will use the layout manager set on the actor + clutter_actor_set_allocation (actor, &new_alloc, new_flags); +} +]| + +is equivalent to this: + +|[<!-- language="C" --> +static void +my_actor_allocate (ClutterActor *actor, + const ClutterActorBox *allocation, + ClutterAllocationFlags flags) +{ + ClutterLayoutManager *layout; + ClutterActorBox new_alloc; + + adjust_allocation (allocation, &new_alloc); + + clutter_actor_set_allocation (actor, &new_alloc, flags); + + layout = clutter_actor_get_layout_manager (actor); + clutter_layout_manager_allocate (layout, + CLUTTER_CONTAINER (actor), + &new_alloc, + flags); +} +]| + + + + + + + a #ClutterActor + + + + a #ClutterActorBox + + + + allocation flags + + + + + + Sets an anchor point for @self. The anchor point is a point in the +coordinate space of an actor to which the actor position within its +parent is relative; the default is (0, 0), i.e. the top-left corner +of the actor. + Use #ClutterActor:pivot-point instead. + + + + + + + a #ClutterActor + + + + X coordinate of the anchor point + + + + Y coordinate of the anchor point + + + + + + Sets an anchor point on the actor, based on the given gravity (this is a +convenience function wrapping clutter_actor_set_anchor_point()). + +Since version 1.0 the anchor point will be stored as a gravity so +that if the actor changes size then the anchor point will move. For +example, if you set the anchor point to %CLUTTER_GRAVITY_SOUTH_EAST +and later double the size of the actor, the anchor point will move +to the bottom right. + Use #ClutterActor:pivot-point and +clutter_actor_set_translation() instead. E.g. For %CLUTTER_GRAVITY_CENTER set +pivot_point to (0.5,0.5) and the translation to (width/2,height/2). + + + + + + + a #ClutterActor + + + + #ClutterGravity. + + + + + + Sets the background color of a #ClutterActor. + +The background color will be used to cover the whole allocation of the +actor. The default background color of an actor is transparent. + +To check whether an actor has a background color, you can use the +#ClutterActor:background-color-set actor property. + +The #ClutterActor:background-color property is animatable. + + + + + + + a #ClutterActor + + + + a #ClutterColor, or %NULL to unset a previously + set color + + + + + + Sets @child to be above @sibling in the list of children of @self. + +If @sibling is %NULL, @child will be the new last child of @self. + +This function is logically equivalent to removing @child and using +clutter_actor_insert_child_above(), but it will not emit signals +or change state on @child. + + + + + + + a #ClutterActor + + + + a #ClutterActor child of @self + + + + a #ClutterActor child of @self, or %NULL + + + + + + Changes the index of @child in the list of children of @self. + +This function is logically equivalent to removing @child and +calling clutter_actor_insert_child_at_index(), but it will not +emit signals or change state on @child. + + + + + + + a #ClutterActor + + + + a #ClutterActor child of @self + + + + the new index for @child + + + + + + Sets @child to be below @sibling in the list of children of @self. + +If @sibling is %NULL, @child will be the new first child of @self. + +This function is logically equivalent to removing @self and using +clutter_actor_insert_child_below(), but it will not emit signals +or change state on @child. + + + + + + + a #ClutterActor + + + + a #ClutterActor child of @self + + + + a #ClutterActor child of @self, or %NULL + + + + + + Sets the transformation matrix to be applied to all the children +of @self prior to their own transformations. The default child +transformation is the identity matrix. + +If @transform is %NULL, the child transform will be unset. + +The #ClutterActor:child-transform property is animatable. + + + + + + + a #ClutterActor + + + + a #ClutterMatrix, or %NULL + + + + + + Sets clip area for @self. The clip area is always computed from the +upper left corner of the actor, even if the anchor point is set +otherwise. + + + + + + + A #ClutterActor + + + + X offset of the clip rectangle + + + + Y offset of the clip rectangle + + + + Width of the clip rectangle + + + + Height of the clip rectangle + + + + + + Sets whether @self should be clipped to the same size as its +allocation + + + + + + + a #ClutterActor + + + + %TRUE to apply a clip tracking the allocation + + + + + + Sets the contents of a #ClutterActor. + + + + + + + a #ClutterActor + + + + a #ClutterContent, or %NULL + + + + + + Sets the gravity of the #ClutterContent used by @self. + +See the description of the #ClutterActor:content-gravity property for +more information. + +The #ClutterActor:content-gravity property is animatable. + + + + + + + a #ClutterActor + + + + the #ClutterContentGravity + + + + + + Sets the policy for repeating the #ClutterActor:content of a +#ClutterActor. The behaviour is deferred to the #ClutterContent +implementation. + + + + + + + a #ClutterActor + + + + the repeat policy + + + + + + Sets the minification and magnification filter to be applied when +scaling the #ClutterActor:content of a #ClutterActor. + +The #ClutterActor:minification-filter will be used when reducing +the size of the content; the #ClutterActor:magnification-filter +will be used when increasing the size of the content. + + + + + + + a #ClutterActor + + + + the minification filter for the content + + + + the magnification filter for the content + + + + + + Sets the Z coordinate of @self to @depth. + +The unit used by @depth is dependant on the perspective setup. See +also clutter_stage_set_perspective(). + Use clutter_actor_set_z_position() instead. + + + + + + + a #ClutterActor + + + + Z co-ord + + + + + + Sets the delay that should be applied before tweening animatable +properties. + + + + + + + a #ClutterActor + + + + the delay before the start of the tweening, in milliseconds + + + + + + Sets the duration of the tweening for animatable properties +of @self for the current easing state. + + + + + + + a #ClutterActor + + + + the duration of the easing, or %NULL + + + + + + Sets the easing mode for the tweening of animatable properties +of @self. + + + + + + + a #ClutterActor + + + + an easing mode, excluding %CLUTTER_CUSTOM_MODE + + + + + + Sets whether an actor has a fixed position set (and will thus be +unaffected by any layout manager). + + + + + + + A #ClutterActor + + + + whether to use fixed position + + + + + + Sets @flags on @self + +This function will emit notifications for the changed properties + + + + + + + a #ClutterActor + + + + the flags to set + + + + + + Forces a height on an actor, causing the actor's preferred width +and height (if any) to be ignored. + +If @height is -1 the actor will use its preferred height instead of +overriding it, i.e. you can "unset" the height with -1. + +This function sets both the minimum and natural size of the actor. + + + + + + + A #ClutterActor + + + + Requested new height for the actor, in pixels, or -1 + + + + + + Sets the #ClutterLayoutManager delegate object that will be used to +lay out the children of @self. + +The #ClutterActor will take a reference on the passed @manager which +will be released either when the layout manager is removed, or when +the actor is destroyed. + + + + + + + a #ClutterActor + + + + a #ClutterLayoutManager, or %NULL to unset it + + + + + + Sets all the components of the margin of a #ClutterActor. + + + + + + + a #ClutterActor + + + + a #ClutterMargin + + + + + + Sets the margin from the bottom of a #ClutterActor. + +The #ClutterActor:margin-bottom property is animatable. + + + + + + + a #ClutterActor + + + + the bottom margin + + + + + + Sets the margin from the left of a #ClutterActor. + +The #ClutterActor:margin-left property is animatable. + + + + + + + a #ClutterActor + + + + the left margin + + + + + + Sets the margin from the right of a #ClutterActor. + +The #ClutterActor:margin-right property is animatable. + + + + + + + a #ClutterActor + + + + the right margin + + + + + + Sets the margin from the top of a #ClutterActor. + +The #ClutterActor:margin-top property is animatable. + + + + + + + a #ClutterActor + + + + the top margin + + + + + + Sets the given name to @self. The name can be used to identify +a #ClutterActor. + + + + + + + A #ClutterActor + + + + Textual tag to apply to actor + + + + + + Defines the circumstances where the actor should be redirected into +an offscreen image. The offscreen image is used to flatten the +actor into a single image while painting for two main reasons. +Firstly, when the actor is painted a second time without any of its +contents changing it can simply repaint the cached image without +descending further down the actor hierarchy. Secondly, it will make +the opacity look correct even if there are overlapping primitives +in the actor. + +Caching the actor could in some cases be a performance win and in +some cases be a performance lose so it is important to determine +which value is right for an actor before modifying this value. For +example, there is never any reason to flatten an actor that is just +a single texture (such as a #ClutterTexture) because it is +effectively already cached in an image so the offscreen would be +redundant. Also if the actor contains primitives that are far apart +with a large transparent area in the middle (such as a large +CluterGroup with a small actor in the top left and a small actor in +the bottom right) then the cached image will contain the entire +image of the large area and the paint will waste time blending all +of the transparent pixels in the middle. + +The default method of implementing opacity on a container simply +forwards on the opacity to all of the children. If the children are +overlapping then it will appear as if they are two separate glassy +objects and there will be a break in the color where they +overlap. By redirecting to an offscreen buffer it will be as if the +two opaque objects are combined into one and then made transparent +which is usually what is expected. + +The image below demonstrates the difference between redirecting and +not. The image shows two Clutter groups, each containing a red and +a green rectangle which overlap. The opacity on the group is set to +128 (which is 50%). When the offscreen redirect is not used, the +red rectangle can be seen through the blue rectangle as if the two +rectangles were separately transparent. When the redirect is used +the group as a whole is transparent instead so the red rectangle is +not visible where they overlap. + +<figure id="offscreen-redirect"> + <title>Sample of using an offscreen redirect for transparency</title> + <graphic fileref="offscreen-redirect.png" format="PNG"/> +</figure> + +The default value for this property is 0, so we effectively will +never redirect an actor offscreen by default. This means that there +are times that transparent actors may look glassy as described +above. The reason this is the default is because there is a +performance trade off between quality and performance here. In many +cases the default form of glassy opacity looks good enough, but if +it's not you will need to set the +%CLUTTER_OFFSCREEN_REDIRECT_AUTOMATIC_FOR_OPACITY flag to enable +redirection for opacity. + +Custom actors that don't contain any overlapping primitives are +recommended to override the has_overlaps() virtual to return %FALSE +for maximum efficiency. + + + + + + + A #ClutterActor + + + + New offscreen redirect flags for the actor. + + + + + + Sets the actor's opacity, with zero being completely transparent and +255 (0xff) being fully opaque. + +The #ClutterActor:opacity property is animatable. + + + + + + + A #ClutterActor + + + + New opacity value for the actor. + + + + + + Allows overriding the calculated paint opacity (as returned by +clutter_actor_get_paint_opacity()). This is used internally by +ClutterClone and ClutterOffscreenEffect, and should be used by +actors that need to mimick those. + +In almost all cases this should not used by applications. + + + + + + + a #ClutterActor + + + + the override opacity value, or -1 to reset + + + + + + Sets the parent of @self to @parent. + +This function will result in @parent acquiring a reference on @self, +eventually by sinking its floating reference first. The reference +will be released by clutter_actor_unparent(). + +This function should only be called by legacy #ClutterActor<!-- -->s +implementing the #ClutterContainer interface. + Use clutter_actor_add_child() instead. + + + + + + + A #ClutterActor + + + + A new #ClutterActor parent + + + + + + Sets the position of the #ClutterActor:pivot-point around which the +scaling and rotation transformations occur. + +The pivot point's coordinates are in normalized space, with the (0, 0) +point being the top left corner of the actor, and the (1, 1) point being +the bottom right corner. + + + + + + + a #ClutterActor + + + + the normalized X coordinate of the pivot point + + + + the normalized Y coordinate of the pivot point + + + + + + Sets the component on the Z axis of the #ClutterActor:pivot-point around +which the scaling and rotation transformations occur. + +The @pivot_z value is expressed as a distance along the Z axis. + + + + + + + a #ClutterActor + + + + the Z coordinate of the actor's pivot point + + + + + + Sets the actor's fixed position in pixels relative to any parent +actor. + +If a layout manager is in use, this position will override the +layout manager and force a fixed position. + + + + + + + A #ClutterActor + + + + New left position of actor in pixels. + + + + New top position of actor in pixels. + + + + + + Sets @actor as reactive. Reactive actors will receive events. + + + + + + + a #ClutterActor + + + + whether the actor should be reactive to events + + + + + + Sets the geometry request mode of @self. + +The @mode determines the order for invoking +clutter_actor_get_preferred_width() and +clutter_actor_get_preferred_height() + + + + + + + a #ClutterActor + + + + the request mode + + + + + + Sets the rotation angle of @self around the given axis. + +The rotation center coordinates used depend on the value of @axis: + + - %CLUTTER_X_AXIS requires @y and @z + - %CLUTTER_Y_AXIS requires @x and @z + - %CLUTTER_Z_AXIS requires @x and @y + +The rotation coordinates are relative to the anchor point of the +actor, set using clutter_actor_set_anchor_point(). If no anchor +point is set, the upper left corner is assumed as the origin. + Use clutter_actor_set_rotation_angle() and + clutter_actor_set_pivot_point() instead. + + + + + + + a #ClutterActor + + + + the axis of rotation + + + + the angle of rotation + + + + X coordinate of the rotation center + + + + Y coordinate of the rotation center + + + + Z coordinate of the rotation center + + + + + + Sets the @angle of rotation of a #ClutterActor on the given @axis. + +This function is a convenience for setting the rotation properties +#ClutterActor:rotation-angle-x, #ClutterActor:rotation-angle-y, +and #ClutterActor:rotation-angle-z. + +The center of rotation is established by the #ClutterActor:pivot-point +property. + + + + + + + a #ClutterActor + + + + the axis to set the angle one + + + + the angle of rotation, in degrees + + + + + + Scales an actor with the given factors. + +The scale transformation is relative the the #ClutterActor:pivot-point. + +The #ClutterActor:scale-x and #ClutterActor:scale-y properties are +animatable. + + + + + + + A #ClutterActor + + + + double factor to scale actor by horizontally. + + + + double factor to scale actor by vertically. + + + + + + Scales an actor with the given factors around the given center +point. The center point is specified in pixels relative to the +anchor point (usually the top left corner of the actor). + +The #ClutterActor:scale-x and #ClutterActor:scale-y properties +are animatable. + Use clutter_actor_set_pivot_point() to control + the scale center + + + + + + + A #ClutterActor + + + + double factor to scale actor by horizontally. + + + + double factor to scale actor by vertically. + + + + X coordinate of the center of the scaling + + + + Y coordinate of the center of the scaling + + + + + + Scales an actor with the given factors around the given +center point. The center point is specified as one of the compass +directions in #ClutterGravity. For example, setting it to north +will cause the top of the actor to remain unchanged and the rest of +the actor to expand left, right and downwards. + +The #ClutterActor:scale-x and #ClutterActor:scale-y properties are +animatable. + Use clutter_actor_set_pivot_point() to set the + scale center using normalized coordinates instead. + + + + + + + A #ClutterActor + + + + double factor to scale actor by horizontally. + + + + double factor to scale actor by vertically. + + + + the location of the scale center expressed as a compass + direction. + + + + + + Scales an actor on the Z axis by the given @scale_z factor. + +The scale transformation is relative the the #ClutterActor:pivot-point. + +The #ClutterActor:scale-z property is animatable. + + + + + + + a #ClutterActor + + + + the scaling factor along the Z axis + + + + + + Sets the actor's size request in pixels. This overrides any +"normal" size request the actor would have. For example +a text actor might normally request the size of the text; +this function would force a specific size instead. + +If @width and/or @height are -1 the actor will use its +"normal" size request instead of overriding it, i.e. +you can "unset" the size with -1. + +This function sets or unsets both the minimum and natural size. + + + + + + + A #ClutterActor + + + + New width of actor in pixels, or -1 + + + + New height of actor in pixels, or -1 + + + + + + Sets the #ClutterTextDirection for an actor + +The passed text direction must not be %CLUTTER_TEXT_DIRECTION_DEFAULT + +If @self implements #ClutterContainer then this function will recurse +inside all the children of @self (including the internal ones). + +Composite actors not implementing #ClutterContainer, or actors requiring +special handling when the text direction changes, should connect to +the #GObject::notify signal for the #ClutterActor:text-direction property + + + + + + + a #ClutterActor + + + + the text direction for @self + + + + + + Overrides the transformations of a #ClutterActor with a custom +matrix, which will be applied relative to the origin of the +actor's allocation and to the actor's pivot point. + +The #ClutterActor:transform property is animatable. + + + + + + + a #ClutterActor + + + + a #ClutterMatrix, or %NULL to + unset a custom transformation + + + + + + Sets an additional translation transformation on a #ClutterActor, +relative to the #ClutterActor:pivot-point. + + + + + + + a #ClutterActor + + + + the translation along the X axis + + + + the translation along the Y axis + + + + the translation along the Z axis + + + + + + Forces a width on an actor, causing the actor's preferred width +and height (if any) to be ignored. + +If @width is -1 the actor will use its preferred width request +instead of overriding it, i.e. you can "unset" the width with -1. + +This function sets both the minimum and natural size of the actor. + + + + + + + A #ClutterActor + + + + Requested new width for the actor, in pixels, or -1 + + + + + + Sets the actor's X coordinate, relative to its parent, in pixels. + +Overrides any layout manager and forces a fixed position for +the actor. + +The #ClutterActor:x property is animatable. + + + + + + + a #ClutterActor + + + + the actor's position on the X axis + + + + + + Sets the horizontal alignment policy of a #ClutterActor, in case the +actor received extra horizontal space. + +See also the #ClutterActor:x-align property. + + + + + + + a #ClutterActor + + + + the horizontal alignment policy + + + + + + Sets whether a #ClutterActor should expand horizontally; this means +that layout manager should allocate extra space for the actor, if +possible. + +Setting an actor to expand will also make all its parent expand, so +that it's possible to build an actor tree and only set this flag on +its leaves and not on every single actor. + + + + + + + a #ClutterActor + + + + whether the actor should expand horizontally + + + + + + Sets the actor's Y coordinate, relative to its parent, in pixels.# + +Overrides any layout manager and forces a fixed position for +the actor. + +The #ClutterActor:y property is animatable. + + + + + + + a #ClutterActor + + + + the actor's position on the Y axis + + + + + + Sets the vertical alignment policy of a #ClutterActor, in case the +actor received extra vertical space. + +See also the #ClutterActor:y-align property. + + + + + + + a #ClutterActor + + + + the vertical alignment policy + + + + + + Sets whether a #ClutterActor should expand horizontally; this means +that layout manager should allocate extra space for the actor, if +possible. + +Setting an actor to expand will also make all its parent expand, so +that it's possible to build an actor tree and only set this flag on +its leaves and not on every single actor. + + + + + + + a #ClutterActor + + + + whether the actor should expand vertically + + + + + + Sets the actor's position on the Z axis. + +See #ClutterActor:z-position. + + + + + + + a #ClutterActor + + + + the position on the Z axis + + + + + + Sets the rotation angle of @self around the Z axis using the center +point specified as a compass point. For example to rotate such that +the center of the actor remains static you can use +%CLUTTER_GRAVITY_CENTER. If the actor changes size the center point +will move accordingly. + Use clutter_actor_set_rotation_angle() and + clutter_actor_set_pivot_point() instead. + + + + + + + a #ClutterActor + + + + the angle of rotation + + + + the center point of the rotation + + + + + + Should be called inside the implementation of the +#ClutterActor::pick virtual function in order to check whether +the actor should paint itself in pick mode or not. + +This function should never be called directly by applications. + + + %TRUE if the actor should paint its silhouette, + %FALSE otherwise + + + + + A #ClutterActor + + + + + + Flags an actor to be displayed. An actor that isn't shown will not +be rendered on the stage. + +Actors are visible by default. + +If this function is called on an actor without a parent, the +#ClutterActor:show-on-set-parent will be set to %TRUE as a side +effect. + + + + + + + A #ClutterActor + + + + + + Calls clutter_actor_show() on all children of an actor (if any). + Actors are visible by default + + + + + + + a #ClutterActor + + + + + + This function translates screen coordinates (@x, @y) to +coordinates relative to the actor. For example, it can be used to translate +screen events from global screen coordinates into actor-local coordinates. + +The conversion can fail, notably if the transform stack results in the +actor being projected on the screen as a mere line. + +The conversion should not be expected to be pixel-perfect due to the +nature of the operation. In general the error grows when the skewing +of the actor rectangle on screen increases. + +This function can be computationally intensive. + +This function only works when the allocation is up-to-date, i.e. inside of +the #ClutterActorClass.paint() implementation + + + %TRUE if conversion was successful. + + + + + A #ClutterActor + + + + x screen coordinate of the point to unproject + + + + y screen coordinate of the point to unproject + + + + return location for the unprojected x coordinance + + + + return location for the unprojected y coordinance + + + + + + Unsets the %CLUTTER_ACTOR_MAPPED flag on the actor and possibly +unmaps its children if they were mapped. + +Calling this function is not encouraged: the default #ClutterActor +implementation of #ClutterActorClass.unmap() will also unmap any +eventual children by default when their parent is unmapped. + +When overriding #ClutterActorClass.unmap(), it is mandatory to +chain up to the parent implementation. + +It is important to note that the implementation of the +#ClutterActorClass.unmap() virtual function may be called after +the #ClutterActorClass.destroy() or the #GObjectClass.dispose() +implementation, but it is guaranteed to be called before the +#GObjectClass.finalize() implementation. + + + + + + + A #ClutterActor + + + + + + Removes the parent of @self. + +This will cause the parent of @self to release the reference +acquired when calling clutter_actor_set_parent(), so if you +want to keep @self you will have to acquire a reference of +your own, through g_object_ref(). + +This function should only be called by legacy #ClutterActor<!-- -->s +implementing the #ClutterContainer interface. + Use clutter_actor_remove_child() instead. + + + + + + + a #ClutterActor + + + + + + Unrealization informs the actor that it may be being destroyed or +moved to another stage. The actor may want to destroy any +underlying graphics resources at this point. However it is +perfectly acceptable for it to retain the resources until the actor +is destroyed because Clutter only ever uses a single rendering +context and all of the graphics resources are valid on any stage. + +Because mapped actors must be realized, actors may not be +unrealized if they are mapped. This function hides the actor to be +sure it isn't mapped, an application-visible side effect that you +may not be expecting. + +This function should not be called by application code. + +This function should not really be in the public API, because +there isn't a good reason to call it. ClutterActor will already +unrealize things for you when it's important to do so. + +If you were using clutter_actor_unrealize() in a dispose +implementation, then don't, just chain up to ClutterActor's +dispose. + +If you were using clutter_actor_unrealize() to implement +unrealizing children of your container, then don't, ClutterActor +will already take care of that. + Actors are automatically unrealized, and nothing + requires explicit realization. + + + + + + + A #ClutterActor + + + + + + Unsets @flags on @self + +This function will emit notifications for the changed properties + + + + + + + a #ClutterActor + + + + the flags to unset + + + + + + Adds a #ClutterAction to the actor + + + + The allocation for the actor, in pixels + +This is property is read-only, but you might monitor it to know when an +actor moves or resizes + + + + The anchor point expressed as a #ClutterGravity + +It is highly recommended not to use #ClutterActor:anchor-x, +#ClutterActor:anchor-y, and #ClutterActor:anchor-gravity in newly +written code; the anchor point adds an additional translation that +will affect the actor's relative position with regards to its +parent, as well as the position of its children. This change needs +to always be taken into account when positioning the actor. It is +recommended to use the #ClutterActor:pivot-point property instead, +as it will affect only the transformations. + Use #ClutterActor:pivot-point instead + + + + The X coordinate of an actor's anchor point, relative to +the actor coordinate space, in pixels. + +It is highly recommended not to use #ClutterActor:anchor-x, +#ClutterActor:anchor-y, and #ClutterActor:anchor-gravity in newly +written code; the anchor point adds an additional translation that +will affect the actor's relative position with regards to its +parent, as well as the position of its children. This change needs +to always be taken into account when positioning the actor. It is +recommended to use the #ClutterActor:pivot-point property instead, +as it will affect only the transformations. + Use #ClutterActor:pivot-point instead + + + + The Y coordinate of an actor's anchor point, relative to +the actor coordinate space, in pixels + +It is highly recommended not to use #ClutterActor:anchor-x, +#ClutterActor:anchor-y, and #ClutterActor:anchor-gravity in newly +written code; the anchor point adds an additional translation that +will affect the actor's relative position with regards to its +parent, as well as the position of its children. This change needs +to always be taken into account when positioning the actor. It is +recommended to use the #ClutterActor:pivot-point property instead, +as it will affect only the transformations. + Use #ClutterActor:pivot-point instead + + + + Paints a solid fill of the actor's allocation using the specified +color. + +The #ClutterActor:background-color property is animatable. + + + + Whether the #ClutterActor:background-color property has been set. + + + + Applies a transformation matrix on each child of an actor. + +Setting this property with a #ClutterMatrix will set the +#ClutterActor:child-transform-set property to %TRUE as a side effect; +setting this property with %NULL will set the +#ClutterActor:child-transform-set property to %FALSE. + +The #ClutterActor:child-transform property is animatable. + + + + Whether the #ClutterActor:child-transform property is set. + + + + The visible region of the actor, in actor-relative coordinates + Use #ClutterActor:clip-rect instead. + + + + The visible region of the actor, in actor-relative coordinates, +expressed as a #ClutterRect. + +Setting this property to %NULL will unset the existing clip. + +Setting this property will change the #ClutterActor:has-clip +property as a side effect. + + + + Whether the clip region should track the allocated area +of the actor. + +This property is ignored if a clip area has been explicitly +set using clutter_actor_set_clip(). + + + + Adds a #ClutterConstraint to the actor + + + + The #ClutterContent implementation that controls the content +of the actor. + + + + The bounding box for the #ClutterContent used by the actor. + +The value of this property is controlled by the #ClutterActor:allocation +and #ClutterActor:content-gravity properties of #ClutterActor. + +The bounding box for the content is guaranteed to never exceed the +allocation's of the actor. + + + + The alignment that should be honoured by the #ClutterContent +set with the #ClutterActor:content property. + +Changing the value of this property will change the bounding box of +the content; you can use the #ClutterActor:content-box property to +get the position and size of the content within the actor's +allocation. + +This property is meaningful only for #ClutterContent implementations +that have a preferred size, and if the preferred size is smaller than +the actor's allocation. + +The #ClutterActor:content-gravity property is animatable. + + + + The repeat policy for the actor's #ClutterActor:content. + + + + The position of the actor on the Z axis. + +The #ClutterActor:depth property is relative to the parent's +modelview matrix. + +Setting this property will call #ClutterContainerIface.sort_depth_order() +which is usually a no-op, and it's most likely not what you want. + +The #ClutterActor:depth property is animatable. + Use #ClutterActor:z-position instead. + + + + Adds #ClutterEffect to the list of effects be applied on a #ClutterActor + + + + The actor's first child. + + + + This flag controls whether the #ClutterActor:fixed-x and +#ClutterActor:fixed-y properties are used + + + + The fixed X position of the actor in pixels. + +Writing this property sets #ClutterActor:fixed-position-set +property as well, as a side effect + + + + The fixed Y position of the actor in pixels. + +Writing this property sets the #ClutterActor:fixed-position-set +property as well, as a side effect + + + + Whether the actor has the #ClutterActor:clip property set or not + + + + Whether the actor contains the pointer of a #ClutterInputDevice +or not. + + + + Height of the actor (in pixels). If written, forces the minimum and +natural size request of the actor to the given height. If read, returns +the allocated height if available, otherwise the height request. + +The #ClutterActor:height property is animatable. + + + + The actor's last child. + + + + A delegate object for controlling the layout of the children of +an actor. + + + + + + + Whether the actor is mapped (will be painted when the stage +to which it belongs is mapped) + + + + The margin (in pixels) from the bottom of the actor. + +This property adds a margin to the actor's preferred size; the margin +will be automatically taken into account when allocating the actor. + +The #ClutterActor:margin-bottom property is animatable. + + + + The margin (in pixels) from the left of the actor. + +This property adds a margin to the actor's preferred size; the margin +will be automatically taken into account when allocating the actor. + +The #ClutterActor:margin-left property is animatable. + + + + The margin (in pixels) from the right of the actor. + +This property adds a margin to the actor's preferred size; the margin +will be automatically taken into account when allocating the actor. + +The #ClutterActor:margin-right property is animatable. + + + + The margin (in pixels) from the top of the actor. + +This property adds a margin to the actor's preferred size; the margin +will be automatically taken into account when allocating the actor. + +The #ClutterActor:margin-top property is animatable. + + + + A forced minimum height request for the actor, in pixels + +Writing this property sets the #ClutterActor:min-height-set property +as well, as a side effect. This property overrides the usual height +request of the actor. + + + + This flag controls whether the #ClutterActor:min-height property +is used + + + + A forced minimum width request for the actor, in pixels + +Writing this property sets the #ClutterActor:min-width-set property +as well, as a side effect. + +This property overrides the usual width request of the actor. + + + + This flag controls whether the #ClutterActor:min-width property +is used + + + + + + + The name of the actor + + + + A forced natural height request for the actor, in pixels + +Writing this property sets the #ClutterActor:natural-height-set +property as well, as a side effect. This property overrides the +usual height request of the actor + + + + This flag controls whether the #ClutterActor:natural-height property +is used + + + + A forced natural width request for the actor, in pixels + +Writing this property sets the #ClutterActor:natural-width-set +property as well, as a side effect. This property overrides the +usual width request of the actor + + + + This flag controls whether the #ClutterActor:natural-width property +is used + + + + Determines the conditions in which the actor will be redirected +to an offscreen framebuffer while being painted. For example this +can be used to cache an actor in a framebuffer or for improved +handling of transparent actors. See +clutter_actor_set_offscreen_redirect() for details. + + + + Opacity of an actor, between 0 (fully transparent) and +255 (fully opaque) + +The #ClutterActor:opacity property is animatable. + + + + The point around which the scaling and rotation transformations occur. + +The pivot point is expressed in normalized coordinates space, with (0, 0) +being the top left corner of the actor and (1, 1) the bottom right corner +of the actor. + +The default pivot point is located at (0, 0). + +The #ClutterActor:pivot-point property is animatable. + + + + The Z component of the #ClutterActor:pivot-point, expressed as a value +along the Z axis. + +The #ClutterActor:pivot-point-z property is animatable. + + + + The position of the origin of the actor. + +This property is a shorthand for setting and getting the +#ClutterActor:x and #ClutterActor:y properties at the same +time. + +The #ClutterActor:position property is animatable. + + + + Whether the actor is reactive to events or not + +Only reactive actors will emit event-related signals + + + + Whether the actor has been realized + + + + Request mode for the #ClutterActor. The request mode determines the +type of geometry management used by the actor, either height for width +(the default) or width for height. + +For actors implementing height for width, the parent container should get +the preferred width first, and then the preferred height for that width. + +For actors implementing width for height, the parent container should get +the preferred height first, and then the preferred width for that height. + +For instance: + +|[<!-- language="C" --> + ClutterRequestMode mode; + gfloat natural_width, min_width; + gfloat natural_height, min_height; + + mode = clutter_actor_get_request_mode (child); + if (mode == CLUTTER_REQUEST_HEIGHT_FOR_WIDTH) + { + clutter_actor_get_preferred_width (child, -1, + &min_width, + &natural_width); + clutter_actor_get_preferred_height (child, natural_width, + &min_height, + &natural_height); + } + else if (mode == CLUTTER_REQUEST_WIDTH_FOR_HEIGHT) + { + clutter_actor_get_preferred_height (child, -1, + &min_height, + &natural_height); + clutter_actor_get_preferred_width (child, natural_height, + &min_width, + &natural_width); + } + else if (mode == CLUTTER_REQUEST_CONTENT_SIZE) + { + ClutterContent *content = clutter_actor_get_content (child); + + min_width, min_height = 0; + natural_width = natural_height = 0; + + if (content != NULL) + clutter_content_get_preferred_size (content, &natural_width, &natural_height); + } +]| + +will retrieve the minimum and natural width and height depending on the +preferred request mode of the #ClutterActor "child". + +The clutter_actor_get_preferred_size() function will implement this +check for you. + + + + The resource-scale of the #ClutterActor if any or -1 if not available + + + + The rotation angle on the X axis. + +The #ClutterActor:rotation-angle-x property is animatable. + + + + The rotation angle on the Y axis + +The #ClutterActor:rotation-angle-y property is animatable. + + + + The rotation angle on the Z axis + +The #ClutterActor:rotation-angle-z property is animatable. + + + + The rotation center on the X axis. + Use #ClutterActor:pivot-point instead + + + + The rotation center on the Y axis. + Use #ClutterActor:pivot-point instead + + + + The rotation center on the Z axis. + Use #ClutterActor:pivot-point instead + + + + The rotation center on the Z axis expressed as a #ClutterGravity. + Use #ClutterActor:pivot-point instead + + + + The horizontal center point for scaling + Use #ClutterActor:pivot-point instead + + + + The vertical center point for scaling + Use #ClutterActor:pivot-point instead + + + + The center point for scaling expressed as a #ClutterGravity + Use #ClutterActor:pivot-point instead + + + + The horizontal scale of the actor. + +The #ClutterActor:scale-x property is animatable. + + + + The vertical scale of the actor. + +The #ClutterActor:scale-y property is animatable. + + + + The scale factor of the actor along the Z axis. + +The #ClutterActor:scale-y property is animatable. + + + + If %TRUE, the actor is automatically shown when parented. + +Calling clutter_actor_hide() on an actor which has not been +parented will set this property to %FALSE as a side effect. + + + + The size of the actor. + +This property is a shorthand for setting and getting the +#ClutterActor:width and #ClutterActor:height at the same time. + +The #ClutterActor:size property is animatable. + + + + The direction of the text inside a #ClutterActor. + + + + Overrides the transformations of a #ClutterActor with a custom +matrix. + +The matrix specified by the #ClutterActor:transform property is +applied to the actor and its children relative to the actor's +#ClutterActor:allocation and #ClutterActor:pivot-point. + +Application code should rarely need to use this function directly. + +Setting this property with a #ClutterMatrix will set the +#ClutterActor:transform-set property to %TRUE as a side effect; +setting this property with %NULL will set the +#ClutterActor:transform-set property to %FALSE. + +The #ClutterActor:transform property is animatable. + + + + Whether the #ClutterActor:transform property is set. + + + + An additional translation applied along the X axis, relative +to the actor's #ClutterActor:pivot-point. + +The #ClutterActor:translation-x property is animatable. + + + + An additional translation applied along the Y axis, relative +to the actor's #ClutterActor:pivot-point. + +The #ClutterActor:translation-y property is animatable. + + + + An additional translation applied along the Z axis, relative +to the actor's #ClutterActor:pivot-point. + +The #ClutterActor:translation-z property is animatable. + + + + Whether the actor is set to be visible or not + +See also #ClutterActor:mapped + + + + Width of the actor (in pixels). If written, forces the minimum and +natural size request of the actor to the given width. If read, returns +the allocated width if available, otherwise the width request. + +The #ClutterActor:width property is animatable. + + + + X coordinate of the actor in pixels. If written, forces a fixed +position for the actor. If read, returns the fixed position if any, +otherwise the allocation if available, otherwise 0. + +The #ClutterActor:x property is animatable. + + + + The alignment of an actor on the X axis, if the actor has been given +extra space for its allocation. See also the #ClutterActor:x-expand +property. + + + + Whether a layout manager should assign more space to the actor on +the X axis. + + + + Y coordinate of the actor in pixels. If written, forces a fixed +position for the actor. If read, returns the fixed position if +any, otherwise the allocation if available, otherwise 0. + +The #ClutterActor:y property is animatable. + + + + The alignment of an actor on the Y axis, if the actor has been given +extra space for its allocation. + + + + Whether a layout manager should assign more space to the actor on +the Y axis. + + + + The actor's position on the Z axis, relative to the parent's +transformations. + +Positive values will bring the actor's position nearer to the user, +whereas negative values will bring the actor's position farther from +the user. + +The #ClutterActor:z-position does not affect the paint or allocation +order. + +The #ClutterActor:z-position property is animatable. + + + + + + + #ClutterActorFlags + + + + + + + + + + The ::allocation-changed signal is emitted when the +#ClutterActor:allocation property changes. Usually, application +code should just use the notifications for the :allocation property +but if you want to track the allocation flags as well, for instance +to know whether the absolute origin of @actor changed, then you might +want use this signal instead. + + + + + + a #ClutterActorBox with the new allocation + + + + #ClutterAllocationFlags for the allocation + + + + + + The ::button-press-event signal is emitted each time a mouse button +is pressed on @actor. + + %TRUE if the event has been handled by the actor, + or %FALSE to continue the emission. + + + + + a #ClutterButtonEvent + + + + + + The ::button-release-event signal is emitted each time a mouse button +is released on @actor. + + %TRUE if the event has been handled by the actor, + or %FALSE to continue the emission. + + + + + a #ClutterButtonEvent + + + + + + The ::captured-event signal is emitted when an event is captured +by Clutter. This signal will be emitted starting from the top-level +container (the #ClutterStage) to the actor which received the event +going down the hierarchy. This signal can be used to intercept every +event before the specialized events (like +ClutterActor::button-press-event or ::key-released-event) are +emitted. + + %TRUE if the event has been handled by the actor, + or %FALSE to continue the emission. + + + + + a #ClutterEvent + + + + + + The ::destroy signal notifies that all references held on the +actor which emitted it should be released. + +The ::destroy signal should be used by all holders of a reference +on @actor. + +This signal might result in the finalization of the #ClutterActor +if all references are released. + +Composite actors and actors implementing the #ClutterContainer +interface should override the default implementation of the +class handler of this signal and call clutter_actor_destroy() on +their children. When overriding the default class handler, it is +required to chain up to the parent's implementation. + + + + + + The ::enter-event signal is emitted when the pointer enters the @actor + + %TRUE if the event has been handled by the actor, + or %FALSE to continue the emission. + + + + + a #ClutterCrossingEvent + + + + + + The ::event signal is emitted each time an event is received +by the @actor. This signal will be emitted on every actor, +following the hierarchy chain, until it reaches the top-level +container (the #ClutterStage). + + %TRUE if the event has been handled by the actor, + or %FALSE to continue the emission. + + + + + a #ClutterEvent + + + + + + The ::hide signal is emitted when an actor is no longer rendered +on the stage. + + + + + + The ::key-focus-in signal is emitted when @actor receives key focus. + + + + + + The ::key-focus-out signal is emitted when @actor loses key focus. + + + + + + The ::key-press-event signal is emitted each time a keyboard button +is pressed while @actor has key focus (see clutter_stage_set_key_focus()). + + %TRUE if the event has been handled by the actor, + or %FALSE to continue the emission. + + + + + a #ClutterKeyEvent + + + + + + The ::key-release-event signal is emitted each time a keyboard button +is released while @actor has key focus (see +clutter_stage_set_key_focus()). + + %TRUE if the event has been handled by the actor, + or %FALSE to continue the emission. + + + + + a #ClutterKeyEvent + + + + + + The ::leave-event signal is emitted when the pointer leaves the @actor. + + %TRUE if the event has been handled by the actor, + or %FALSE to continue the emission. + + + + + a #ClutterCrossingEvent + + + + + + The ::motion-event signal is emitted each time the mouse pointer is +moved over @actor. + + %TRUE if the event has been handled by the actor, + or %FALSE to continue the emission. + + + + + a #ClutterMotionEvent + + + + + + The ::paint signal is emitted each time an actor is being painted. + +Subclasses of #ClutterActor should override the #ClutterActorClass.paint +virtual function paint themselves in that function. + +It is strongly discouraged to connect a signal handler to +the #ClutterActor::paint signal; if you want to change the paint +sequence of an existing #ClutterActor instance, either create a new +#ClutterActor class and override the #ClutterActorClass.paint virtual +function, or use a #ClutterEffect. The #ClutterActor::paint signal +will be removed in a future version of Clutter. + Override the #ClutterActorClass.paint virtual + function, use a #ClutterContent implementation, or a #ClutterEffect + instead of connecting to this signal. + + + + + + This signal is emitted when the parent of the actor changes. + + + + + + the previous parent of the actor, or %NULL + + + + + + The ::pick signal is emitted each time an actor is being painted +in "pick mode". The pick mode is used to identify the actor during +the event handling phase, or by clutter_stage_get_actor_at_pos(). +The actor should paint its shape using the passed @pick_color. + +Subclasses of #ClutterActor should override the class signal handler +and paint themselves in that function. + +It is possible to connect a handler to the ::pick signal in order +to set up some custom aspect of a paint in pick mode. + Override the #ClutterActorClass.pick virtual function + instead. + + + + + + the #ClutterColor to be used when picking + + + + + + The ::queue_redraw signal is emitted when clutter_actor_queue_redraw() +is called on @origin. + +The default implementation for #ClutterActor chains up to the +parent actor and queues a redraw on the parent, thus "bubbling" +the redraw queue up through the actor graph. The default +implementation for #ClutterStage queues a clutter_stage_ensure_redraw() +in a main loop idle handler. + +Note that the @origin actor may be the stage, or a container; it +does not have to be a leaf node in the actor graph. + +Toolkits embedding a #ClutterStage which require a redraw and +relayout cycle can stop the emission of this signal using the +GSignal API, redraw the UI and then call clutter_stage_ensure_redraw() +themselves, like: + +|[<!-- language="C" --> + static void + on_redraw_complete (gpointer data) + { + ClutterStage *stage = data; + + // execute the Clutter drawing pipeline + clutter_stage_ensure_redraw (stage); + } + + static void + on_stage_queue_redraw (ClutterStage *stage) + { + // this prevents the default handler to run + g_signal_stop_emission_by_name (stage, "queue-redraw"); + + // queue a redraw with the host toolkit and call + // a function when the redraw has been completed + queue_a_redraw (G_CALLBACK (on_redraw_complete), stage); + } +]| + +Note: This signal is emitted before the Clutter paint +pipeline is executed. If you want to know when the pipeline has +been completed you should use clutter_threads_add_repaint_func() +or clutter_threads_add_repaint_func_full(). + + + + + + the actor which initiated the redraw request + + + + paint volume to redraw + + + + + + The ::queue_layout signal is emitted when clutter_actor_queue_relayout() +is called on an actor. + +The default implementation for #ClutterActor chains up to the +parent actor and queues a relayout on the parent, thus "bubbling" +the relayout queue up through the actor graph. + +The main purpose of this signal is to allow relayout to be propagated +properly in the procense of #ClutterClone actors. Applications will +not normally need to connect to this signal. + + + + + + The ::realize signal is emitted each time an actor is being +realized. + The signal should not be used in newly + written code + + + + + + The ::scroll-event signal is emitted each time the mouse is +scrolled on @actor + + %TRUE if the event has been handled by the actor, + or %FALSE to continue the emission. + + + + + a #ClutterScrollEvent + + + + + + The ::show signal is emitted when an actor is visible and +rendered on the stage. + + + + + + The ::touch-event signal is emitted each time a touch +begin/end/update/cancel event. + + %CLUTTER_EVENT_STOP if the event has been handled by + the actor, or %CLUTTER_EVENT_PROPAGATE to continue the emission. + + + + + a #ClutterEvent + + + + + + The ::transition-stopped signal is emitted once a transition +is stopped; a transition is stopped once it reached its total +duration (including eventual repeats), it has been stopped +using clutter_timeline_stop(), or it has been removed from the +transitions applied on @actor, using clutter_actor_remove_transition(). + + + + + + the name of the transition + + + + whether the transition was finished, or stopped + + + + + + The ::transitions-completed signal is emitted once all transitions +involving @actor are complete. + + + + + + The ::unrealize signal is emitted each time an actor is being +unrealized. + The signal should not be used in newly + written code + + + + + + + Controls how a #ClutterActor should align itself inside the extra space +assigned to it during the allocation. + +Alignment only matters if the allocated space given to an actor is +bigger than its natural size; for example, when the #ClutterActor:x-expand +or the #ClutterActor:y-expand properties of #ClutterActor are set to %TRUE. + + Stretch to cover the whole allocated space + + + Snap to left or top side, leaving space + to the right or bottom. For horizontal layouts, in right-to-left + locales this should be reversed. + + + Center the actor inside the allocation + + + Snap to right or bottom side, leaving space + to the left or top. For horizontal layouts, in right-to-left locales + this should be reversed. + + + + Bounding box of an actor. The coordinates of the top left and right bottom +corners of an actor. The coordinates of the two points are expressed in +pixels with sub-pixel precision + + + X coordinate of the top left corner + + + + Y coordinate of the top left corner + + + + X coordinate of the bottom right corner + + + + Y coordinate of the bottom right corner + + + + Allocates a new #ClutterActorBox using the passed coordinates +for the top left and bottom right points. + +This function is the logical equivalent of: + +|[ + clutter_actor_box_init (clutter_actor_box_alloc (), + x_1, y_1, + x_2, y_2); +]| + + + the newly allocated #ClutterActorBox. + Use clutter_actor_box_free() to free the resources + + + + + X coordinate of the top left point + + + + Y coordinate of the top left point + + + + X coordinate of the bottom right point + + + + Y coordinate of the bottom right point + + + + + + Clamps the components of @box to the nearest integer + + + + + + + the #ClutterActorBox to clamp + + + + + + Checks whether a point with @x, @y coordinates is contained +withing @box + + + %TRUE if the point is contained by the #ClutterActorBox + + + + + a #ClutterActorBox + + + + X coordinate of the point + + + + Y coordinate of the point + + + + + + Copies @box + + + a newly allocated copy of #ClutterActorBox. Use + clutter_actor_box_free() to free the allocated resources + + + + + a #ClutterActorBox + + + + + + Checks @box_a and @box_b for equality + + + %TRUE if the passed #ClutterActorBox are equal + + + + + a #ClutterActorBox + + + + a #ClutterActorBox + + + + + + Frees a #ClutterActorBox allocated using clutter_actor_box_new() +or clutter_actor_box_copy() + + + + + + + a #ClutterActorBox + + + + + + Calculates the bounding box represented by the four vertices; for details +of the vertex array see clutter_actor_get_abs_allocation_vertices(). + + + + + + + a #ClutterActorBox + + + + array of four #ClutterVertex + + + + + + + + Retrieves the area of @box + + + the area of a #ClutterActorBox, in pixels + + + + + a #ClutterActorBox + + + + + + Retrieves the height of the @box + + + the height of the box + + + + + a #ClutterActorBox + + + + + + Retrieves the origin of @box + + + + + + + a #ClutterActorBox + + + + return location for the X coordinate, or %NULL + + + + return location for the Y coordinate, or %NULL + + + + + + Retrieves the size of @box + + + + + + + a #ClutterActorBox + + + + return location for the width, or %NULL + + + + return location for the height, or %NULL + + + + + + Retrieves the width of the @box + + + the width of the box + + + + + a #ClutterActorBox + + + + + + Retrieves the X coordinate of the origin of @box + + + the X coordinate of the origin + + + + + a #ClutterActorBox + + + + + + Retrieves the Y coordinate of the origin of @box + + + the Y coordinate of the origin + + + + + a #ClutterActorBox + + + + + + Initializes @box with the given coordinates. + + + the initialized #ClutterActorBox + + + + + a #ClutterActorBox + + + + X coordinate of the top left point + + + + Y coordinate of the top left point + + + + X coordinate of the bottom right point + + + + Y coordinate of the bottom right point + + + + + + Initializes @box with the given origin and size. + + + + + + + a #ClutterActorBox + + + + X coordinate of the origin + + + + Y coordinate of the origin + + + + width of the box + + + + height of the box + + + + + + Interpolates between @initial and @final #ClutterActorBox<!-- -->es +using @progress + + + + + + + the initial #ClutterActorBox + + + + the final #ClutterActorBox + + + + the interpolation progress + + + + return location for the interpolation + + + + + + Rescale the @box by provided @scale factor. + + + + + + + a #ClutterActorBox + + + + scale factor for resizing this box + + + + + + Changes the origin of @box, maintaining the size of the #ClutterActorBox. + + + + + + + a #ClutterActorBox + + + + the X coordinate of the new origin + + + + the Y coordinate of the new origin + + + + + + Sets the size of @box, maintaining the origin of the #ClutterActorBox. + + + + + + + a #ClutterActorBox + + + + the new width + + + + the new height + + + + + + Unions the two boxes @a and @b and stores the result in @result. + + + + + + + the first #ClutterActorBox + + + + the second #ClutterActorBox + + + + the #ClutterActorBox representing a union + of @a and @b + + + + + + Allocates a new #ClutterActorBox. + + + the newly allocated #ClutterActorBox. + Use clutter_actor_box_free() to free its resources + + + + + + Base class for actors. + + + + + + + + + + + + + A #ClutterActor + + + + + + + + + + + + + + a #ClutterActor + + + + + + + + + + + + + + A #ClutterActor + + + + + + + + + + + + + + a #ClutterActor + + + + + + + + + + + + + + A #ClutterActor + + + + + + + + + + + + + + A #ClutterActor + + + + + + + + + + + + + + A #ClutterActor + + + + + + + + + + + + + + A #ClutterActor + + + + + + + + + + + + + + A #ClutterActor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a #ClutterActor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A #ClutterActor + + + + available height when computing the preferred width, + or a negative value to indicate that no height is defined + + + + return location for minimum width, + or %NULL + + + + return location for the natural + width, or %NULL + + + + + + + + + + + + + + A #ClutterActor + + + + available width to assume in computing desired height, + or a negative value to indicate that no width is defined + + + + return location for minimum height, + or %NULL + + + + return location for natural + height, or %NULL + + + + + + + + + + + + + + A #ClutterActor + + + + new allocation of the actor, in parent-relative coordinates + + + + flags that control the allocation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A #ClutterActor + + + + + + + + + + the #AtkObject associated with @actor + + + + + a #ClutterActor + + + + + + + + + + + + + + + + + + + + + + + + + + %TRUE if the actor may have overlapping primitives, and + %FALSE otherwise + + + + + A #ClutterActor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a #ClutterActor using the @item in the model. + +The usual way to implement this function is to create a #ClutterActor +instance and then bind the #GObject properties to the actor properties +of interest, using g_object_bind_property(). This way, when the @item +in the #GListModel changes, the #ClutterActor changes as well. + + + The newly created child #ClutterActor + + + + + the item in the model + + + + Data passed to clutter_actor_bind_model() + + + + + + Flags used to signal the state of an actor. + + the actor will be painted (is visible, and inside + a toplevel, and all parents visible) + + + the resources associated to the actor have been + allocated + + + the actor 'reacts' to mouse events emmitting event + signals + + + the actor has been shown by the application program + + + the actor provides an explicit layout management + policy for its children; this flag will prevent Clutter from automatic + queueing of relayout and will defer all layouting to the actor itself + + + + An iterator structure that allows to efficiently iterate over a +section of the scene graph. + +The contents of the #ClutterActorIter structure +are private and should only be accessed using the provided API. + + + + + + + + + + + + + + + + + + Safely destroys the #ClutterActor currently pointer to by the iterator +from its parent. + +This function can only be called after clutter_actor_iter_next() or +clutter_actor_iter_prev() returned %TRUE, and cannot be called more +than once for the same actor. + +This function will call clutter_actor_destroy() internally. + + + + + + + a #ClutterActorIter + + + + + + Initializes a #ClutterActorIter, which can then be used to iterate +efficiently over a section of the scene graph, and associates it +with @root. + +Modifying the scene graph section that contains @root will invalidate +the iterator. + +|[<!-- language="C" --> + ClutterActorIter iter; + ClutterActor *child; + + clutter_actor_iter_init (&iter, container); + while (clutter_actor_iter_next (&iter, &child)) + { + // do something with child + } +]| + + + + + + + a #ClutterActorIter + + + + a #ClutterActor + + + + + + Checks whether a #ClutterActorIter is still valid. + +An iterator is considered valid if it has been initialized, and +if the #ClutterActor that it refers to hasn't been modified after +the initialization. + + + %TRUE if the iterator is valid, and %FALSE otherwise + + + + + a #ClutterActorIter + + + + + + Advances the @iter and retrieves the next child of the root #ClutterActor +that was used to initialize the #ClutterActorIterator. + +If the iterator can advance, this function returns %TRUE and sets the +@child argument. + +If the iterator cannot advance, this function returns %FALSE, and +the contents of @child are undefined. + + + %TRUE if the iterator could advance, and %FALSE otherwise. + + + + + a #ClutterActorIter + + + + return location for a #ClutterActor + + + + + + Advances the @iter and retrieves the previous child of the root +#ClutterActor that was used to initialize the #ClutterActorIterator. + +If the iterator can advance, this function returns %TRUE and sets the +@child argument. + +If the iterator cannot advance, this function returns %FALSE, and +the contents of @child are undefined. + + + %TRUE if the iterator could advance, and %FALSE otherwise. + + + + + a #ClutterActorIter + + + + return location for a #ClutterActor + + + + + + Safely removes the #ClutterActor currently pointer to by the iterator +from its parent. + +This function can only be called after clutter_actor_iter_next() or +clutter_actor_iter_prev() returned %TRUE, and cannot be called more +than once for the same actor. + +This function will call clutter_actor_remove_child() internally. + + + + + + + a #ClutterActorIter + + + + + + + The #ClutterActorMeta structure contains only +private data and should be accessed using the provided API + + + Virtual function, called when @meta is attached or detached +from a #ClutterActor. + + + + + + + a #ClutterActorMeta + + + + the actor attached to @meta, or %NULL + + + + + + Retrieves a pointer to the #ClutterActor that owns @meta + + + a pointer to a #ClutterActor or %NULL + + + + + a #ClutterActorMeta + + + + + + Retrieves whether @meta is enabled + + + %TRUE if the #ClutterActorMeta instance is enabled + + + + + a #ClutterActorMeta + + + + + + Retrieves the name set using clutter_actor_meta_set_name() + + + the name of the #ClutterActorMeta + instance, or %NULL if none was set. The returned string is owned + by the #ClutterActorMeta instance and it should not be modified + or freed + + + + + a #ClutterActorMeta + + + + + + Sets whether @meta should be enabled or not + + + + + + + a #ClutterActorMeta + + + + whether @meta is enabled + + + + + + Sets the name of @meta + +The name can be used to identify the #ClutterActorMeta instance + + + + + + + a #ClutterActorMeta + + + + the name of @meta + + + + + + The #ClutterActor attached to the #ClutterActorMeta instance + + + + Whether or not the #ClutterActorMeta is enabled + + + + The unique name to access the #ClutterActorMeta + + + + + + + + + + + The #ClutterActorMetaClass structure contains +only private data + + + + + + + + + + + + + a #ClutterActorMeta + + + + the actor attached to @meta, or %NULL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Specifies the axis on which #ClutterAlignConstraint should maintain +the alignment. + + Maintain the alignment on the X axis + + + Maintain the alignment on the Y axis + + + Maintain the alignment on both the X and Y axis + + + + #ClutterAlignConstraint is an opaque structure +whose members cannot be directly accesses + + + Creates a new constraint, aligning a #ClutterActor's position with +regards of the size of the actor to @source, with the given +alignment @factor + + + the newly created #ClutterAlignConstraint + + + + + the #ClutterActor to use as the source of the + alignment, or %NULL + + + + the axis to be used to compute the alignment + + + + the alignment factor, between 0.0 and 1.0 + + + + + + Retrieves the value set using clutter_align_constraint_set_align_axis() + + + the alignment axis + + + + + a #ClutterAlignConstraint + + + + + + Retrieves the factor set using clutter_align_constraint_set_factor() + + + the alignment factor + + + + + a #ClutterAlignConstraint + + + + + + Retrieves the source of the alignment + + + the #ClutterActor used as the source + of the alignment + + + + + a #ClutterAlignConstraint + + + + + + Sets the axis to which the alignment refers to + + + + + + + a #ClutterAlignConstraint + + + + the axis to which the alignment refers to + + + + + + Sets the alignment factor of the constraint + +The factor depends on the #ClutterAlignConstraint:align-axis property +and it is a value between 0.0 (meaning left, when +#ClutterAlignConstraint:align-axis is set to %CLUTTER_ALIGN_X_AXIS; or +meaning top, when #ClutterAlignConstraint:align-axis is set to +%CLUTTER_ALIGN_Y_AXIS) and 1.0 (meaning right, when +#ClutterAlignConstraint:align-axis is set to %CLUTTER_ALIGN_X_AXIS; or +meaning bottom, when #ClutterAlignConstraint:align-axis is set to +%CLUTTER_ALIGN_Y_AXIS). A value of 0.5 aligns in the middle in either +cases + + + + + + + a #ClutterAlignConstraint + + + + the alignment factor, between 0.0 and 1.0 + + + + + + Sets the source of the alignment constraint + + + + + + + a #ClutterAlignConstraint + + + + a #ClutterActor, or %NULL to unset the source + + + + + + The axis to be used to compute the alignment + + + + The alignment factor, as a normalized value between 0.0 and 1.0 + +The factor depends on the #ClutterAlignConstraint:align-axis property: +with an align-axis value of %CLUTTER_ALIGN_X_AXIS, 0.0 means left and +1.0 means right; with a value of %CLUTTER_ALIGN_Y_AXIS, 0.0 means top +and 1.0 means bottom. + + + + The #ClutterActor used as the source for the alignment. + +The #ClutterActor must not be a child or a grandchild of the actor +using the constraint. + + + + + + + + Flags passed to the #ClutterActorClass.allocate() virtual function +and to the clutter_actor_allocate() function. + + No flag set + + + Whether the absolute origin of the + actor has changed; this implies that any ancestor of the actor has + been moved. + + + Whether the allocation should be delegated + to the #ClutterLayoutManager instance stored inside the + #ClutterActor:layout-manager property of #ClutterActor. This flag + should only be used if you are subclassing #ClutterActor and + overriding the #ClutterActorClass.allocate() virtual function, but + you wish to use the default implementation of the virtual function + inside #ClutterActor. Added in Clutter 1.10. + + + + #ClutterAlpha combines a #ClutterTimeline and a function. +The contents of the #ClutterAlpha structure are private and should +only be accessed using the provided API. + Use #ClutterTimeline instead + + + + Creates a new #ClutterAlpha instance. You must set a function +to compute the alpha value using clutter_alpha_set_func() and +bind a #ClutterTimeline object to the #ClutterAlpha instance +using clutter_alpha_set_timeline(). + +You should use the newly created #ClutterAlpha instance inside +a #ClutterBehaviour object. + Use #ClutterTimeline instead + + + the newly created empty #ClutterAlpha instance. + + + + + Creates a new #ClutterAlpha instance and sets the timeline +and animation mode. + +See also clutter_alpha_set_timeline() and clutter_alpha_set_mode(). + Use #ClutterTimeline instead + + + the newly created #ClutterAlpha + + + + + #ClutterTimeline timeline + + + + animation mode + + + + + + Creates a new #ClutterAlpha instances and sets the timeline +and the alpha function. + +This function will not register @func as a global alpha function. + +See also clutter_alpha_set_timeline() and clutter_alpha_set_func(). + Use #ClutterTimeline instead + + + the newly created #ClutterAlpha + + + + + a #ClutterTimeline + + + + a #ClutterAlphaFunc + + + + data to pass to the function, or %NULL + + + + function to call when removing the alpha function, or %NULL + + + + + + #GClosure variant of clutter_alpha_register_func(). + +Registers a global alpha function and returns its logical id +to be used by clutter_alpha_set_mode() or by #ClutterAnimation. + +The logical id is always greater than %CLUTTER_ANIMATION_LAST. + There is no direct replacement for this + function. Use clutter_timeline_set_progress_func() on each + specific #ClutterTimeline instance + + + the logical id of the alpha function + + + + + a #GClosure + + + + + + Registers a global alpha function and returns its logical id +to be used by clutter_alpha_set_mode() or by #ClutterAnimation. + +The logical id is always greater than %CLUTTER_ANIMATION_LAST. + There is no direct replacement for this + function. Use clutter_timeline_set_progress_func() on each + specific #ClutterTimeline instance + + + the logical id of the alpha function + + + + + a #ClutterAlphaFunc + + + + user data to pass to @func, or %NULL + + + + + + Query the current alpha value. + Use clutter_timeline_get_progress() + + + The current alpha value for the alpha + + + + + A #ClutterAlpha + + + + + + Retrieves the #ClutterAnimationMode used by @alpha. + Use #ClutterTimeline instead + + + the animation mode + + + + + a #ClutterAlpha + + + + + + Gets the #ClutterTimeline bound to @alpha. + Use #ClutterTimeline directlry + + + a #ClutterTimeline instance + + + + + A #ClutterAlpha + + + + + + Sets the #GClosure used to compute the alpha value at each +frame of the #ClutterTimeline bound to @alpha. + Use clutter_timeline_set_progress_func() + + + + + + + A #ClutterAlpha + + + + A #GClosure + + + + + + Sets the #ClutterAlphaFunc function used to compute +the alpha value at each frame of the #ClutterTimeline +bound to @alpha. + +This function will not register @func as a global alpha function. + Use clutter_timeline_set_progress_func() + + + + + + + A #ClutterAlpha + + + + A #ClutterAlphaFunc + + + + user data to be passed to the alpha function, or %NULL + + + + notify function used when disposing the alpha function + + + + + + Sets the progress function of @alpha using the symbolic value +of @mode, as taken by the #ClutterAnimationMode enumeration or +using the value returned by clutter_alpha_register_func(). + Use #ClutterTimeline and + clutter_timeline_set_progress_mode() instead + + + + + + + a #ClutterAlpha + + + + a #ClutterAnimationMode + + + + + + Binds @alpha to @timeline. + Use #ClutterTimeline directly + + + + + + + A #ClutterAlpha + + + + A #ClutterTimeline + + + + + + The alpha value as computed by the alpha function. The linear +interval is 0.0 to 1.0, but the Alpha allows overshooting by +one unit in each direction, so the valid interval is -1.0 to 2.0. + Use #ClutterTimeline::new-frame and + clutter_timeline_get_progress() instead + + + + The progress function logical id - either a value from the +#ClutterAnimationMode enumeration or a value returned by +clutter_alpha_register_func(). + +If %CLUTTER_CUSTOM_MODE is used then the function set using +clutter_alpha_set_closure() or clutter_alpha_set_func() +will be used. + Use #ClutterTimeline:progress-mode + + + + A #ClutterTimeline instance used to drive the alpha function. + + + + + + + + + + + Base class for #ClutterAlpha + Use #ClutterTimeline instead + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A function returning a value depending on the position of +the #ClutterTimeline bound to @alpha. + Use #ClutterTimelineProgressFunc instead. + + + a floating point value + + + + + a #ClutterAlpha + + + + user data passed to the function + + + + + + + + + + + + + + + + + + + + + + + Calls the animate_property() virtual function for @animatable. + +The @initial_value and @final_value #GValue<!-- -->s must contain +the same type; @value must have been initialized to the same +type of @initial_value and @final_value. + +All implementation of the #ClutterAnimatable interface must +implement this function. + Use clutter_animatable_interpolate_value() + instead + + + %TRUE if the value has been validated and can + be applied to the #ClutterAnimatable, and %FALSE otherwise + + + + + a #ClutterAnimatable + + + + a #ClutterAnimation + + + + the name of the animated property + + + + the initial value of the animation interval + + + + the final value of the animation interval + + + + the progress factor + + + + return location for the animation value + + + + + + Finds the #GParamSpec for @property_name + + + The #GParamSpec for the given property + or %NULL + + + + + a #ClutterAnimatable + + + + the name of the animatable property to find + + + + + + Retrieves the current state of @property_name and sets @value with it + + + + + + + a #ClutterAnimatable + + + + the name of the animatable property to retrieve + + + + a #GValue initialized to the type of the property to retrieve + + + + + + Asks a #ClutterAnimatable implementation to interpolate a +a named property between the initial and final values of +a #ClutterInterval, using @progress as the interpolation +value, and store the result inside @value. + +This function should be used for every property animation +involving #ClutterAnimatable<!-- -->s. + +This function replaces clutter_animatable_animate_property(). + + + %TRUE if the interpolation was successful, + and %FALSE otherwise + + + + + a #ClutterAnimatable + + + + the name of the property to interpolate + + + + a #ClutterInterval with the animation range + + + + the progress to use to interpolate between the + initial and final values of the @interval + + + + return location for an initialized #GValue + using the same type of the @interval + + + + + + Sets the current state of @property_name to @value + + + + + + + a #ClutterAnimatable + + + + the name of the animatable property to set + + + + the value of the animatable property to set + + + + + + Calls the animate_property() virtual function for @animatable. + +The @initial_value and @final_value #GValue<!-- -->s must contain +the same type; @value must have been initialized to the same +type of @initial_value and @final_value. + +All implementation of the #ClutterAnimatable interface must +implement this function. + Use clutter_animatable_interpolate_value() + instead + + + %TRUE if the value has been validated and can + be applied to the #ClutterAnimatable, and %FALSE otherwise + + + + + a #ClutterAnimatable + + + + a #ClutterAnimation + + + + the name of the animated property + + + + the initial value of the animation interval + + + + the final value of the animation interval + + + + the progress factor + + + + return location for the animation value + + + + + + Finds the #GParamSpec for @property_name + + + The #GParamSpec for the given property + or %NULL + + + + + a #ClutterAnimatable + + + + the name of the animatable property to find + + + + + + Retrieves the current state of @property_name and sets @value with it + + + + + + + a #ClutterAnimatable + + + + the name of the animatable property to retrieve + + + + a #GValue initialized to the type of the property to retrieve + + + + + + Asks a #ClutterAnimatable implementation to interpolate a +a named property between the initial and final values of +a #ClutterInterval, using @progress as the interpolation +value, and store the result inside @value. + +This function should be used for every property animation +involving #ClutterAnimatable<!-- -->s. + +This function replaces clutter_animatable_animate_property(). + + + %TRUE if the interpolation was successful, + and %FALSE otherwise + + + + + a #ClutterAnimatable + + + + the name of the property to interpolate + + + + a #ClutterInterval with the animation range + + + + the progress to use to interpolate between the + initial and final values of the @interval + + + + return location for an initialized #GValue + using the same type of the @interval + + + + + + Sets the current state of @property_name to @value + + + + + + + a #ClutterAnimatable + + + + the name of the animatable property to set + + + + the value of the animatable property to set + + + + + + + Base interface for #GObject<!-- -->s that can be animated by a +a #ClutterAnimation. + + + + + + + + + %TRUE if the value has been validated and can + be applied to the #ClutterAnimatable, and %FALSE otherwise + + + + + a #ClutterAnimatable + + + + a #ClutterAnimation + + + + the name of the animated property + + + + the initial value of the animation interval + + + + the final value of the animation interval + + + + the progress factor + + + + return location for the animation value + + + + + + + + + + The #GParamSpec for the given property + or %NULL + + + + + a #ClutterAnimatable + + + + the name of the animatable property to find + + + + + + + + + + + + + + a #ClutterAnimatable + + + + the name of the animatable property to retrieve + + + + a #GValue initialized to the type of the property to retrieve + + + + + + + + + + + + + + a #ClutterAnimatable + + + + the name of the animatable property to set + + + + the value of the animatable property to set + + + + + + + + + + %TRUE if the interpolation was successful, + and %FALSE otherwise + + + + + a #ClutterAnimatable + + + + the name of the property to interpolate + + + + a #ClutterInterval with the animation range + + + + the progress to use to interpolate between the + initial and final values of the @interval + + + + return location for an initialized #GValue + using the same type of the @interval + + + + + + + + The #ClutterAnimation structure contains only private data and should +be accessed using the provided functions. + Use the implicit animation on #ClutterActor + + + + Creates a new #ClutterAnimation instance. You should set the +#GObject to be animated using clutter_animation_set_object(), +set the duration with clutter_animation_set_duration() and the +easing mode using clutter_animation_set_mode(). + +Use clutter_animation_bind() or clutter_animation_bind_interval() +to define the properties to be animated. The interval and the +animated properties can be updated at runtime. + +The clutter_actor_animate() and relative family of functions provide +an easy way to animate a #ClutterActor and automatically manage the +lifetime of a #ClutterAnimation instance, so you should consider using +those functions instead of manually creating an animation. + Use #ClutterPropertyTransition instead + + + the newly created #ClutterAnimation. Use g_object_unref() + to release the associated resources + + + + + Emits the ::completed signal on @animation + +When using this function with a #ClutterAnimation created +by the clutter_actor_animate() family of functions, @animation +will be unreferenced and it will not be valid anymore, +unless g_object_ref() was called before calling this function +or unless a reference was taken inside a handler for the +#ClutterAnimation::completed signal + Use #ClutterPropertyTransition instead + + + + + + + a #ClutterAnimation + + + + + + + + + + + + + + + + + Adds a single property with name @property_name to the +animation @animation. For more information about animations, +see clutter_actor_animate(). + +This method returns the animation primarily to make chained +calls convenient in language bindings. + Use #ClutterPropertyTransition instead + + + The animation itself. + + + + + a #ClutterAnimation + + + + the property to control + + + + The final value of the property + + + + + + Binds @interval to the @property_name of the #GObject +attached to @animation. The #ClutterAnimation will take +ownership of the passed #ClutterInterval. For more information +about animations, see clutter_actor_animate(). + +If you need to update the interval instance use +clutter_animation_update_interval() instead. + Use #ClutterPropertyTransition instead + + + The animation itself. + + + + + a #ClutterAnimation + + + + the property to control + + + + a #ClutterInterval + + + + + + Emits the ::completed signal on @animation + +When using this function with a #ClutterAnimation created +by the clutter_actor_animate() family of functions, @animation +will be unreferenced and it will not be valid anymore, +unless g_object_ref() was called before calling this function +or unless a reference was taken inside a handler for the +#ClutterAnimation::completed signal + Use #ClutterPropertyTransition instead + + + + + + + a #ClutterAnimation + + + + + + Retrieves the #ClutterAlpha used by @animation. + Use clutter_animation_get_timeline() and + clutter_timeline_get_progress_mode() instead. + + + the alpha object used by the animation + + + + + a #ClutterAnimation + + + + + + Retrieves the duration of @animation, in milliseconds. + Use #ClutterPropertyTransition instead + + + the duration of the animation + + + + + a #ClutterAnimation + + + + + + Retrieves the #ClutterInterval associated to @property_name +inside @animation. + Use #ClutterPropertyTransition instead + + + a #ClutterInterval or %NULL if no + property with the same name was found. The returned interval is + owned by the #ClutterAnimation and should not be unreferenced + + + + + a #ClutterAnimation + + + + name of the property + + + + + + Retrieves whether @animation is looping. + Use #ClutterPropertyTransition instead + + + %TRUE if the animation is looping + + + + + a #ClutterAnimation + + + + + + Retrieves the animation mode of @animation, as set by +clutter_animation_set_mode(). + Use #ClutterPropertyTransition instead + + + the mode for the animation + + + + + a #ClutterAnimation + + + + + + Retrieves the #GObject attached to @animation. + Use #ClutterPropertyTransition instead + + + a #GObject + + + + + a #ClutterAnimation + + + + + + Retrieves the #ClutterTimeline used by @animation + Use #ClutterPropertyTransition instead + + + the timeline used by the animation + + + + + a #ClutterAnimation + + + + + + Checks whether @animation is controlling @property_name. + Use #ClutterPropertyTransition instead + + + %TRUE if the property is animated by the + #ClutterAnimation, %FALSE otherwise + + + + + a #ClutterAnimation + + + + name of the property + + + + + + Sets @alpha as the #ClutterAlpha used by @animation. + +If @alpha is not %NULL, the #ClutterAnimation will take ownership +of the #ClutterAlpha instance. + Use clutter_animation_get_timeline() and + clutter_timeline_set_progress_mode() instead. + + + + + + + a #ClutterAnimation + + + + a #ClutterAlpha, or %NULL to unset the current #ClutterAlpha + + + + + + Sets the duration of @animation in milliseconds. + +This function will set #ClutterAnimation:alpha and +#ClutterAnimation:timeline if needed. + Use #ClutterPropertyTransition instead + + + + + + + a #ClutterAnimation + + + + the duration in milliseconds + + + + + + Sets whether @animation should loop over itself once finished. + +A looping #ClutterAnimation will not emit the #ClutterAnimation::completed +signal when finished. + +This function will set #ClutterAnimation:alpha and +#ClutterAnimation:timeline if needed. + Use #ClutterPropertyTransition instead + + + + + + + a #ClutterAnimation + + + + %TRUE if the animation should loop + + + + + + Sets the animation @mode of @animation. The animation @mode is +a logical id, either coming from the #ClutterAnimationMode enumeration +or the return value of clutter_alpha_register_func(). + +This function will also set #ClutterAnimation:alpha if needed. + Use #ClutterPropertyTransition instead + + + + + + + a #ClutterAnimation + + + + an animation mode logical id + + + + + + Attaches @animation to @object. The #ClutterAnimation will take a +reference on @object. + Use #ClutterPropertyTransition instead + + + + + + + a #ClutterAnimation + + + + a #GObject + + + + + + Sets the #ClutterTimeline used by @animation. + +This function will take a reference on the passed @timeline. + Use #ClutterPropertyTransition instead + + + + + + + a #ClutterAnimation + + + + a #ClutterTimeline, or %NULL to unset the + current #ClutterTimeline + + + + + + Removes @property_name from the list of animated properties. + Use #ClutterPropertyTransition instead + + + + + + + a #ClutterAnimation + + + + name of the property + + + + + + Updates the @final value of the interval for @property_name + Use #ClutterPropertyTransition instead + + + The animation itself. + + + + + a #ClutterAnimation + + + + name of the property + + + + The final value of the property + + + + + + Changes the @interval for @property_name. The #ClutterAnimation +will take ownership of the passed #ClutterInterval. + Use #ClutterPropertyTransition instead + + + + + + + a #ClutterAnimation + + + + name of the property + + + + a #ClutterInterval + + + + + + The #ClutterAlpha used by the animation. + Use the #ClutterAnimation:timeline property and + the #ClutterTimeline:progress-mode property instead. + + + + The duration of the animation, expressed in milliseconds. + Use #ClutterPropertyTransition instead + + + + Whether the animation should loop. + Use #ClutterPropertyTransition instead + + + + The animation mode, either a value from #ClutterAnimationMode +or a value returned by clutter_alpha_register_func(). The +default value is %CLUTTER_LINEAR. + Use #ClutterPropertyTransition instead + + + + The #GObject to which the animation applies. + Use #ClutterPropertyTransition instead + + + + The #ClutterTimeline used by the animation. + Use #ClutterPropertyTransition instead + + + + + + + + + + The ::completed signal is emitted once the animation has +been completed. + +The @animation instance is guaranteed to be valid for the entire +duration of the signal emission chain. + Use #ClutterPropertyTransition instead + + + + + + The ::started signal is emitted once the animation has been +started + Use #ClutterPropertyTransition instead + + + + + + + The #ClutterAnimationClass structure contains only private data and +should be accessed using the provided functions. + Use the implicit animation on #ClutterActor + + + + + + + + + + + + + + + + + + + + + + + + + + a #ClutterAnimation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The animation modes used by #ClutterAlpha and #ClutterAnimation. This +enumeration can be expanded in later versions of Clutter. + +<figure id="easing-modes"> + <title>Easing modes provided by Clutter</title> + <graphic fileref="easing-modes.png" format="PNG"/> +</figure> + +Every global alpha function registered using clutter_alpha_register_func() +or clutter_alpha_register_closure() will have a logical id greater than +%CLUTTER_ANIMATION_LAST. + + custom progress function + + + linear tweening + + + quadratic tweening + + + quadratic tweening, inverse of + %CLUTTER_EASE_IN_QUAD + + + quadratic tweening, combininig + %CLUTTER_EASE_IN_QUAD and %CLUTTER_EASE_OUT_QUAD + + + cubic tweening + + + cubic tweening, invers of + %CLUTTER_EASE_IN_CUBIC + + + cubic tweening, combining + %CLUTTER_EASE_IN_CUBIC and %CLUTTER_EASE_OUT_CUBIC + + + quartic tweening + + + quartic tweening, inverse of + %CLUTTER_EASE_IN_QUART + + + quartic tweening, combining + %CLUTTER_EASE_IN_QUART and %CLUTTER_EASE_OUT_QUART + + + quintic tweening + + + quintic tweening, inverse of + %CLUTTER_EASE_IN_QUINT + + + fifth power tweening, combining + %CLUTTER_EASE_IN_QUINT and %CLUTTER_EASE_OUT_QUINT + + + sinusoidal tweening + + + sinusoidal tweening, inverse of + %CLUTTER_EASE_IN_SINE + + + sine wave tweening, combining + %CLUTTER_EASE_IN_SINE and %CLUTTER_EASE_OUT_SINE + + + exponential tweening + + + exponential tweening, inverse of + %CLUTTER_EASE_IN_EXPO + + + exponential tweening, combining + %CLUTTER_EASE_IN_EXPO and %CLUTTER_EASE_OUT_EXPO + + + circular tweening + + + circular tweening, inverse of + %CLUTTER_EASE_IN_CIRC + + + circular tweening, combining + %CLUTTER_EASE_IN_CIRC and %CLUTTER_EASE_OUT_CIRC + + + elastic tweening, with offshoot on start + + + elastic tweening, with offshoot on end + + + elastic tweening with offshoot on both ends + + + overshooting cubic tweening, with + backtracking on start + + + overshooting cubic tweening, with + backtracking on end + + + overshooting cubic tweening, with + backtracking on both ends + + + exponentially decaying parabolic (bounce) + tweening, with bounce on start + + + exponentially decaying parabolic (bounce) + tweening, with bounce on end + + + exponentially decaying parabolic (bounce) + tweening, with bounce on both ends + + + parametrized step function; see clutter_timeline_set_step_progress() + for further details. (Since 1.12) + + + equivalent to %CLUTTER_STEPS with a number of steps + equal to 1, and a step mode of %CLUTTER_STEP_MODE_START. (Since 1.12) + + + equivalent to %CLUTTER_STEPS with a number of steps + equal to 1, and a step mode of %CLUTTER_STEP_MODE_END. (Since 1.12) + + + cubic bezier between (0, 0) and (1, 1) with two + control points; see clutter_timeline_set_cubic_bezier_progress(). (Since 1.12) + + + equivalent to %CLUTTER_CUBIC_BEZIER with control points + in (0.25, 0.1) and (0.25, 1.0). (Since 1.12) + + + equivalent to %CLUTTER_CUBIC_BEZIER with control points + in (0.42, 0) and (1.0, 1.0). (Since 1.12) + + + equivalent to %CLUTTER_CUBIC_BEZIER with control points + in (0, 0) and (0.58, 1.0). (Since 1.12) + + + equivalent to %CLUTTER_CUBIC_BEZIER with control points + in (0.42, 0) and (0.58, 1.0). (Since 1.12) + + + last animation mode, used as a guard for + registered global alpha functions + + + + + + + Common members for a #ClutterEvent + + + event type + + + + event time + + + + event flags + + + + + + + event source actor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The middle button of a pointer device. + + + + + The primary button of a pointer device. + +This is typically the left mouse button in a right-handed +mouse configuration. + + + + + The secondary button of a pointer device. + +This is typically the right mouse button in a right-handed +mouse configuration. + + + + + + + + + + + + + + + + + + + + + #ClutterBackend is an opaque structure whose +members cannot be directly accessed. + + + + + + + + + + + + + + Retrieves the #CoglContext associated with the given clutter +@backend. A #CoglContext is required when using some of the +experimental 2.0 Cogl API. + +Since CoglContext is itself experimental API this API should +be considered experimental too. + +This API is not yet supported on OSX because OSX still +uses the stub Cogl winsys and the Clutter backend doesn't +explicitly create a CoglContext. + + + The #CoglContext associated with @backend. + + + + + a #ClutterBackend + + + + + + Retrieves the font options for @backend. + + + the font options of the #ClutterBackend. + The returned #cairo_font_options_t is owned by the backend and should + not be modified or freed + + + + + a #ClutterBackend + + + + + + Returns the input method used by Clutter + + + the input method + + + + + the #CLutterBackend + + + + + + Gets the keymap used by Clutter + + + the keymap + + + + + the #ClutterBackend + + + + + + Gets the resolution for font handling on the screen. + +The resolution is a scale factor between points specified in a +#PangoFontDescription and cairo units. The default value is 96.0, +meaning that a 10 point font will be 13 units +high (10 * 96. / 72. = 13.3). + +Clutter will set the resolution using the current backend when +initializing; the resolution is also stored in the +#ClutterSettings:font-dpi property. + + + the current resolution, or -1 if no resolution + has been set. + + + + + a #ClutterBackend + + + + + + Sets the new font options for @backend. The #ClutterBackend will +copy the #cairo_font_options_t. + +If @options is %NULL, the first following call to +clutter_backend_get_font_options() will return the default font +options for @backend. + +This function is intended for actors creating a Pango layout +using the PangoCairo API. + + + + + + + a #ClutterBackend + + + + Cairo font options for the backend, or %NULL + + + + + + Sets the input method to be used by Clutter + + + + + + + the #ClutterBackend + + + + the input method + + + + + + The ::font-changed signal is emitted each time the font options +have been changed through #ClutterSettings. + + + + + + The ::resolution-changed signal is emitted each time the font +resolutions has been changed through #ClutterSettings. + + + + + + The ::settings-changed signal is emitted each time the #ClutterSettings +properties have been changed. + + + + + + + + + + + + + + + + + + #ClutterBehaviour-struct contains only private data and should +be accessed with the functions below. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Calls @func for every actor driven by @behave. + + + + + + + a #ClutterBehaviour + + + + a function called for each actor + + + + optional data to be passed to the function, or %NULL + + + + + + Applies @behave to @actor. This function adds a reference on +the actor. + + + + + + + a #ClutterBehaviour + + + + a #ClutterActor + + + + + + Retrieves all the actors to which @behave applies. It is not recommended +for derived classes to use this in there alpha notify method but use +#clutter_behaviour_actors_foreach as it avoids alot of needless allocations. + + + a list of + actors. You should free the returned list with g_slist_free() when + finished using it. + + + + + + + a #ClutterBehaviour + + + + + + Retrieves the #ClutterAlpha object bound to @behave. + + + a #ClutterAlpha object, or %NULL if no alpha + object has been bound to this behaviour. + + + + + a #ClutterBehaviour + + + + + + Gets the number of actors this behaviour is applied too. + + + The number of applied actors + + + + + a #ClutterBehaviour + + + + + + Gets an actor the behaviour was applied to referenced by index num. + + + A Clutter actor or NULL if @index_ is invalid. + + + + + a #ClutterBehaviour + + + + the index of an actor this behaviour is applied too. + + + + + + Check if @behave applied to @actor. + + + TRUE if actor has behaviour. FALSE otherwise. + + + + + a #ClutterBehaviour + + + + a #ClutterActor + + + + + + Removes @actor from the list of #ClutterActor<!-- -->s to which +@behave applies. This function removes a reference on the actor. + + + + + + + a #ClutterBehaviour + + + + a #ClutterActor + + + + + + Removes every actor from the list that @behave holds. + + + + + + + a #ClutterBehaviour + + + + + + Binds @alpha to a #ClutterBehaviour. The #ClutterAlpha object +is what makes a behaviour work: for each tick of the timeline +used by #ClutterAlpha a new value of the alpha parameter is +computed by the alpha function; the value should be used by +the #ClutterBehaviour to update one or more properties of the +actors to which the behaviour applies. + +If @alpha is not %NULL, the #ClutterBehaviour will take ownership +of the #ClutterAlpha instance. + + + + + + + a #ClutterBehaviour + + + + a #ClutterAlpha or %NULL to unset a previously set alpha + + + + + + The #ClutterAlpha object used to drive this behaviour. A #ClutterAlpha +object binds a #ClutterTimeline and a function which computes a value +(the "alpha") depending on the time. Each time the alpha value changes +the alpha-notify virtual function is called. + + + + + + + + + + The ::apply signal is emitted each time the behaviour is applied +to an actor. + + + + + + the actor the behaviour was applied to. + + + + + + The ::removed signal is emitted each time a behaviour is not applied +to an actor anymore. + + + + + + the removed actor + + + + + + + Base class for behaviours. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterBehaviourDepth structure contains only private data +and should be accessed using the provided API + Use clutter_actor_animate() with #ClutterActor:depth + instead. + + + + Creates a new #ClutterBehaviourDepth which can be used to control +the ClutterActor:depth property of a set of #ClutterActor<!-- -->s. + +If @alpha is not %NULL, the #ClutterBehaviour will take ownership +of the #ClutterAlpha instance. In the case when @alpha is %NULL, +it can be set later with clutter_behaviour_set_alpha(). + + + the newly created behaviour + + + + + a #ClutterAlpha instance, or %NULL + + + + initial value of the depth + + + + final value of the depth + + + + + + Gets the boundaries of the @behaviour + + + + + + + a #ClutterBehaviourDepth + + + + return location for the initial depth value, or %NULL + + + + return location for the final depth value, or %NULL + + + + + + Sets the boundaries of the @behaviour. + + + + + + + a #ClutterBehaviourDepth + + + + initial value of the depth + + + + final value of the depth + + + + + + End depth level to apply to the actors. + + + + Start depth level to apply to the actors. + + + + + + + + + + + The #ClutterBehaviourDepthClass structure contains only private data + + + + + + + + + + This function is passed to clutter_behaviour_actors_foreach() and +will be called for each actor driven by @behaviour. + + + + + + + the #ClutterBehaviour + + + + an actor driven by @behaviour + + + + optional data passed to the function + + + + + + The #ClutterBehaviourOpacity structure contains only private data and +should be accessed using the provided API + Use clutter_actor_animate() and #ClutterActor:opacity + instead. + + + + Creates a new #ClutterBehaviourOpacity object, driven by @alpha +which controls the opacity property of every actor, making it +change in the interval between @opacity_start and @opacity_end. + +If @alpha is not %NULL, the #ClutterBehaviour will take ownership +of the #ClutterAlpha instance. In the case when @alpha is %NULL, +it can be set later with clutter_behaviour_set_alpha(). + + + the newly created #ClutterBehaviourOpacity + + + + + a #ClutterAlpha instance, or %NULL + + + + minimum level of opacity + + + + maximum level of opacity + + + + + + Gets the initial and final levels of the opacity applied by @behaviour +on each actor it controls. + + + + + + + a #ClutterBehaviourOpacity + + + + return location for the minimum level of opacity, or %NULL + + + + return location for the maximum level of opacity, or %NULL + + + + + + Sets the initial and final levels of the opacity applied by @behaviour +on each actor it controls. + + + + + + + a #ClutterBehaviourOpacity + + + + minimum level of opacity + + + + maximum level of opacity + + + + + + Final opacity level of the behaviour. + + + + Initial opacity level of the behaviour. + + + + + + + + + + + The #ClutterBehaviourOpacityClass structure contains only private data + + + + + + + + + + + + + The #ClutterBehaviourScale struct contains only private data and +should be accessed using the provided API + Use clutter_actor_animate() with #ClutterActor:scale-x + and #ClutterActor:scale-y instead. + + + + Creates a new #ClutterBehaviourScale instance. + +If @alpha is not %NULL, the #ClutterBehaviour will take ownership +of the #ClutterAlpha instance. In the case when @alpha is %NULL, +it can be set later with clutter_behaviour_set_alpha(). + + + the newly created #ClutterBehaviourScale + + + + + a #ClutterAlpha instance, or %NULL + + + + initial scale factor on the X axis + + + + initial scale factor on the Y axis + + + + final scale factor on the X axis + + + + final scale factor on the Y axis + + + + + + Retrieves the bounds used by scale behaviour. + + + + + + + a #ClutterBehaviourScale + + + + return location for the initial scale factor on the X + axis, or %NULL + + + + return location for the initial scale factor on the Y + axis, or %NULL + + + + return location for the final scale factor on the X axis, + or %NULL + + + + return location for the final scale factor on the Y axis, + or %NULL + + + + + + Sets the bounds used by scale behaviour. + + + + + + + a #ClutterBehaviourScale + + + + initial scale factor on the X axis + + + + initial scale factor on the Y axis + + + + final scale factor on the X axis + + + + final scale factor on the Y axis + + + + + + The final scaling factor on the X axis for the actors. + + + + The initial scaling factor on the X axis for the actors. + + + + The final scaling factor on the Y axis for the actors. + + + + The initial scaling factor on the Y axis for the actors. + + + + + + + + + + + The #ClutterBehaviourScaleClass struct contains only private data + + + + + + + + + + The alignment policies available on each axis for #ClutterBinLayout + Use #ClutterActorAlign and the #ClutterActor + API instead + + Fixed position alignment; the + #ClutterBinLayout will honour the fixed position provided + by the actors themselves when allocating them + + + Fill the allocation size + + + Position the actors at the top + or left side of the container, depending on the axis + + + Position the actors at the bottom + or right side of the container, depending on the axis + + + Position the actors at the + center of the container, depending on the axis + + + + The #ClutterBinLayout structure contains only private data +and should be accessed using the provided API + + + Creates a new #ClutterBinLayout layout manager + + + the newly created layout manager + + + + + the default alignment policy to be used on the + horizontal axis + + + + the default alignment policy to be used on the + vertical axis + + + + + + Adds a #ClutterActor to the container using @self and +sets the alignment policies for it + +This function is equivalent to clutter_container_add_actor() +and clutter_layout_manager_child_set_property() but it does not +require a pointer to the #ClutterContainer associated to the +#ClutterBinLayout + Use clutter_actor_add_child() instead. + + + + + + + a #ClutterBinLayout + + + + a #ClutterActor + + + + horizontal alignment policy for @child + + + + vertical alignment policy for @child + + + + + + Retrieves the horizontal and vertical alignment policies for +a child of @self + +If @child is %NULL the default alignment policies will be returned +instead + Use the #ClutterActor:x-align and the + #ClutterActor:y-align properties of #ClutterActor instead. + + + + + + + a #ClutterBinLayout + + + + a child of @container + + + + return location for the horizontal + alignment policy + + + + return location for the vertical + alignment policy + + + + + + Sets the horizontal and vertical alignment policies to be applied +to a @child of @self + +If @child is %NULL then the @x_align and @y_align values will +be set as the default alignment policies + Use the #ClutterActor:x-align and + #ClutterActor:y-align properties of #ClutterActor instead. + + + + + + + a #ClutterBinLayout + + + + a child of @container + + + + the horizontal alignment policy to be used for the @child + inside @container + + + + the vertical aligment policy to be used on the @child + inside @container + + + + + + The default horizontal alignment policy for actors managed +by the #ClutterBinLayout + Use the #ClutterActor:x-expand and the + #ClutterActor:x-align properties on #ClutterActor instead. + + + + The default vertical alignment policy for actors managed +by the #ClutterBinLayout + Use the #ClutterActor:y-expand and the + #ClutterActor:y-align properties on #ClutterActor instead. + + + + + + + + + + + The #ClutterBinLayoutClass structure contains only private +data and should be accessed using the provided API + + + + + + + + + + #ClutterBindConstraint is an opaque structure +whose members cannot be directly accessed + + + Creates a new constraint, binding a #ClutterActor's position to +the given @coordinate of the position of @source + + + the newly created #ClutterBindConstraint + + + + + the #ClutterActor to use as the source of + the binding, or %NULL + + + + the coordinate to bind + + + + the offset to apply to the binding, in pixels + + + + + + Retrieves the bound coordinate of the constraint + + + the bound coordinate + + + + + a #ClutterBindConstraint + + + + + + Retrieves the offset set using clutter_bind_constraint_set_offset() + + + the offset, in pixels + + + + + a #ClutterBindConstraint + + + + + + Retrieves the #ClutterActor set using clutter_bind_constraint_set_source() + + + a pointer to the source actor + + + + + a #ClutterBindConstraint + + + + + + Sets the coordinate to bind in the constraint + + + + + + + a #ClutterBindConstraint + + + + the coordinate to bind + + + + + + Sets the offset to be applied to the constraint + + + + + + + a #ClutterBindConstraint + + + + the offset to apply, in pixels + + + + + + Sets the source #ClutterActor for the constraint + + + + + + + a #ClutterBindConstraint + + + + a #ClutterActor, or %NULL to unset the source + + + + + + The coordinate to be bound + + + + The offset, in pixels, to be applied to the binding + + + + The #ClutterActor used as the source for the binding. + +The #ClutterActor must not be contained inside the actor associated +to the constraint. + + + + + + + + Specifies which property should be used in a binding + + Bind the X coordinate + + + Bind the Y coordinate + + + Bind the width + + + Bind the height + + + Equivalent to to %CLUTTER_BIND_X and + %CLUTTER_BIND_Y (added in Clutter 1.6) + + + Equivalent to %CLUTTER_BIND_WIDTH and + %CLUTTER_BIND_HEIGHT (added in Clutter 1.6) + + + Equivalent to %CLUTTER_BIND_POSITION and + %CLUTTER_BIND_SIZE (added in Clutter 1.10) + + + + The prototype for the callback function registered with +clutter_binding_pool_install_action() and invoked by +clutter_binding_pool_activate(). + + + the function should return %TRUE if the key + binding has been handled, and return %FALSE otherwise + + + + + a #GObject + + + + the name of the action + + + + the key symbol + + + + bitmask of the modifier flags + + + + data passed to the function + + + + + + Container of key bindings. The #ClutterBindingPool struct is +private. + + + Creates a new #ClutterBindingPool that can be used to store +key bindings for an actor. The @name must be a unique identifier +for the binding pool, so that clutter_binding_pool_find() will +be able to return the correct binding pool. + + + the newly created binding pool with the given + name. Use g_object_unref() when done. + + + + + the name of the binding pool + + + + + + Finds the #ClutterBindingPool with @name. + + + a pointer to the #ClutterBindingPool, or %NULL + + + + + the name of the binding pool to find + + + + + + Retrieves the #ClutterBindingPool for the given #GObject class +and, eventually, creates it. This function is a wrapper around +clutter_binding_pool_new() and uses the class type name as the +unique name for the binding pool. + +Calling this function multiple times will return the same +#ClutterBindingPool. + +A binding pool for a class can also be retrieved using +clutter_binding_pool_find() with the class type name: + +|[ + pool = clutter_binding_pool_find (G_OBJECT_TYPE_NAME (instance)); +]| + + + the binding pool for the given class. + The returned #ClutterBindingPool is owned by Clutter and should not + be freed directly + + + + + a #GObjectClass pointer + + + + + + Activates the callback associated to the action that is +bound to the @key_val and @modifiers pair. + +The callback has the following signature: + +|[ + void (* callback) (GObject *gobject, + const gchar *action_name, + guint key_val, + ClutterModifierType modifiers, + gpointer user_data); +]| + +Where the #GObject instance is @gobject and the user data +is the one passed when installing the action with +clutter_binding_pool_install_action(). + +If the action bound to the @key_val, @modifiers pair has been +blocked using clutter_binding_pool_block_action(), the callback +will not be invoked, and this function will return %FALSE. + + + %TRUE if an action was found and was activated + + + + + a #ClutterBindingPool + + + + the key symbol + + + + bitmask for the modifiers + + + + a #GObject + + + + + + Blocks all the actions with name @action_name inside @pool. + + + + + + + a #ClutterBindingPool + + + + an action name + + + + + + Retrieves the name of the action matching the given key symbol +and modifiers bitmask. + + + the name of the action, if found, or %NULL. The + returned string is owned by the binding pool and should never + be modified or freed + + + + + a #ClutterBindingPool + + + + a key symbol + + + + a bitmask for the modifiers + + + + + + Installs a new action inside a #ClutterBindingPool. The action +is bound to @key_val and @modifiers. + +The same action name can be used for multiple @key_val, @modifiers +pairs. + +When an action has been activated using clutter_binding_pool_activate() +the passed @callback will be invoked (with @data). + +Actions can be blocked with clutter_binding_pool_block_action() +and then unblocked using clutter_binding_pool_unblock_action(). + + + + + + + a #ClutterBindingPool + + + + the name of the action + + + + key symbol + + + + bitmask of modifiers + + + + function to be called + when the action is activated + + + + data to be passed to @callback + + + + function to be called when the action is removed + from the pool + + + + + + A #GClosure variant of clutter_binding_pool_install_action(). + +Installs a new action inside a #ClutterBindingPool. The action +is bound to @key_val and @modifiers. + +The same action name can be used for multiple @key_val, @modifiers +pairs. + +When an action has been activated using clutter_binding_pool_activate() +the passed @closure will be invoked. + +Actions can be blocked with clutter_binding_pool_block_action() +and then unblocked using clutter_binding_pool_unblock_action(). + + + + + + + a #ClutterBindingPool + + + + the name of the action + + + + key symbol + + + + bitmask of modifiers + + + + a #GClosure + + + + + + Allows overriding the action for @key_val and @modifiers inside a +#ClutterBindingPool. See clutter_binding_pool_install_action(). + +When an action has been activated using clutter_binding_pool_activate() +the passed @callback will be invoked (with @data). + +Actions can be blocked with clutter_binding_pool_block_action() +and then unblocked using clutter_binding_pool_unblock_action(). + + + + + + + a #ClutterBindingPool + + + + key symbol + + + + bitmask of modifiers + + + + function to be called when the action is activated + + + + data to be passed to @callback + + + + function to be called when the action is removed + from the pool + + + + + + A #GClosure variant of clutter_binding_pool_override_action(). + +Allows overriding the action for @key_val and @modifiers inside a +#ClutterBindingPool. See clutter_binding_pool_install_closure(). + +When an action has been activated using clutter_binding_pool_activate() +the passed @callback will be invoked (with @data). + +Actions can be blocked with clutter_binding_pool_block_action() +and then unblocked using clutter_binding_pool_unblock_action(). + + + + + + + a #ClutterBindingPool + + + + key symbol + + + + bitmask of modifiers + + + + a #GClosure + + + + + + Removes the action matching the given @key_val, @modifiers pair, +if any exists. + + + + + + + a #ClutterBindingPool + + + + a key symbol + + + + a bitmask for the modifiers + + + + + + Unblockes all the actions with name @action_name inside @pool. + +Unblocking an action does not cause the callback bound to it to +be invoked in case clutter_binding_pool_activate() was called on +an action previously blocked with clutter_binding_pool_block_action(). + + + + + + + a #ClutterBindingPool + + + + an action name + + + + + + The unique name of the #ClutterBindingPool. + + + + + + + + + + + + + + + + #ClutterBlurEffect is an opaque structure +whose members cannot be accessed directly + + + Creates a new #ClutterBlurEffect to be used with +clutter_actor_add_effect() + + + the newly created #ClutterBlurEffect or %NULL + + + + + + + + + + + + + + + + + The #ClutterBox structure contains only private data and should +be accessed using the provided API + + + + + + + Creates a new #ClutterBox. The children of the box will be layed +out by the passed @manager + Use clutter_actor_new() instead. + + + the newly created #ClutterBox actor + + + + + a #ClutterLayoutManager + + + + + + Retrieves the background color of @box + +If the #ClutterBox:color-set property is set to %FALSE the +returned #ClutterColor is undefined + Use clutter_actor_get_background_color() instead. + + + + + + + a #ClutterBox + + + + return location for a #ClutterColor + + + + + + Retrieves the #ClutterLayoutManager instance used by @box + Use clutter_actor_get_layout_manager() instead. + + + a #ClutterLayoutManager. The returned + #ClutterLayoutManager is owned by the #ClutterBox and it should not + be unreferenced + + + + + a #ClutterBox + + + + + + Adds @actor to @box and sets layout properties at the same time, +if the #ClutterLayoutManager used by @box has them + +This function is a wrapper around clutter_container_add_actor() +and clutter_layout_manager_child_set() + +Language bindings should use the vector-based clutter_box_packv() +variant instead + Use clutter_actor_add_child() instead. To set + specific layout properties, use clutter_layout_manager_child_set() + + + + + + + a #ClutterBox + + + + a #ClutterActor + + + + the name of the first property to set, or %NULL + + + + a list of property name and value pairs, terminated by %NULL + + + + + + Adds @actor to @box, placing it after @sibling, and sets layout +properties at the same time, if the #ClutterLayoutManager used by +@box supports them + +If @sibling is %NULL then @actor is placed at the end of the +list of children, to be allocated and painted after every other child + +This function is a wrapper around clutter_container_add_actor(), +clutter_container_raise_child() and clutter_layout_manager_child_set() + Use clutter_actor_insert_child_above() instead. + To set specific layout properties, use clutter_layout_manager_child_set() + + + + + + + a #ClutterBox + + + + a #ClutterActor + + + + a #ClutterActor or %NULL + + + + the name of the first property to set, or %NULL + + + + a list of property name and value pairs, terminated by %NULL + + + + + + Adds @actor to @box, placing it at @position, and sets layout +properties at the same time, if the #ClutterLayoutManager used by +@box supports them + +If @position is a negative number, or is larger than the number of +children of @box, the new child is added at the end of the list of +children + Use clutter_actor_insert_child_at_index() instead. + To set specific layout properties, use clutter_layout_manager_child_set() + + + + + + + a #ClutterBox + + + + a #ClutterActor + + + + the position to insert the @actor at + + + + the name of the first property to set, or %NULL + + + + a list of property name and value pairs, terminated by %NULL + + + + + + Adds @actor to @box, placing it before @sibling, and sets layout +properties at the same time, if the #ClutterLayoutManager used by +@box supports them + +If @sibling is %NULL then @actor is placed at the beginning of the +list of children, to be allocated and painted below every other child + +This function is a wrapper around clutter_container_add_actor(), +clutter_container_lower_child() and clutter_layout_manager_child_set() + Use clutter_actor_insert_child_below() instead. + To set specific layout properties, use clutter_layout_manager_child_set() + + + + + + + a #ClutterBox + + + + a #ClutterActor + + + + a #ClutterActor or %NULL + + + + the name of the first property to set, or %NULL + + + + a list of property name and value pairs, terminated by %NULL + + + + + + Vector-based variant of clutter_box_pack(), intended for language +bindings to use + Use clutter_actor_add_child() instead. To set + specific layout properties, use clutter_layout_manager_child_set() + + + + + + + a #ClutterBox + + + + a #ClutterActor + + + + the number of properties to set + + + + a vector + containing the property names to set + + + + + + a vector containing the property + values to set + + + + + + + + Sets (or unsets) the background color for @box + Use clutter_actor_set_background_color() instead. + + + + + + + a #ClutterBox + + + + the background color, or %NULL to unset + + + + + + Sets the #ClutterLayoutManager for @box + +A #ClutterLayoutManager is a delegate object that controls the +layout of the children of @box + Use clutter_actor_set_layout_manager() instead. + + + + + + + a #ClutterBox + + + + a #ClutterLayoutManager + + + + + + The color to be used to paint the background of the +#ClutterBox. Setting this property will set the +#ClutterBox:color-set property as a side effect + +This property sets the #ClutterActor:background-color property +internally. + Use the #ClutterActor:background-color property + + + + Whether the #ClutterBox:color property has been set. + +This property reads the #ClutterActor:background-color-set property +internally. + Use the #ClutterActor:background-color-set property + + + + + + + + + + + The alignment policies available on each axis of the #ClutterBoxLayout + + Align the child to the top or to + to the left, depending on the used axis + + + Align the child to the bottom or to + the right, depending on the used axis + + + Align the child to the center + + + + The #ClutterBoxClass structure contains only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterBoxLayout structure contains only private data +and should be accessed using the provided API + + + Creates a new #ClutterBoxLayout layout manager + + + the newly created #ClutterBoxLayout + + + + + Retrieves the horizontal and vertical alignment policies for @actor +as set using clutter_box_layout_pack() or clutter_box_layout_set_alignment() + #ClutterBoxLayout will honour #ClutterActor's + #ClutterActor:x-align and #ClutterActor:y-align properies + + + + + + + a #ClutterBoxLayout + + + + a #ClutterActor child of @layout + + + + return location for the horizontal alignment policy + + + + return location for the vertical alignment policy + + + + + + Retrieves the duration set using clutter_box_layout_set_easing_duration() + + + the duration of the animations, in milliseconds + + + + + a #ClutterBoxLayout + + + + + + Retrieves the easing mode set using clutter_box_layout_set_easing_mode() + + + an easing mode + + + + + a #ClutterBoxLayout + + + + + + Retrieves whether @actor should expand inside @layout + #ClutterBoxLayout will honour #ClutterActor's + #ClutterActor:x-expand and #ClutterActor:y-expand properies + + + %TRUE if the #ClutterActor should expand, %FALSE otherwise + + + + + a #ClutterBoxLayout + + + + a #ClutterActor child of @layout + + + + + + Retrieves the horizontal and vertical fill policies for @actor +as set using clutter_box_layout_pack() or clutter_box_layout_set_fill() + #ClutterBoxLayout will honour #ClutterActor's + #ClutterActor:x-align and #ClutterActor:y-align properies + + + + + + + a #ClutterBoxLayout + + + + a #ClutterActor child of @layout + + + + return location for the horizontal fill policy + + + + return location for the vertical fill policy + + + + + + Retrieves if the children sizes are allocated homogeneously. + + + %TRUE if the #ClutterBoxLayout is arranging its children + homogeneously, and %FALSE otherwise + + + + + a #ClutterBoxLayout + + + + + + Retrieves the orientation of the @layout. + + + the orientation of the layout + + + + + a #ClutterBoxLayout + + + + + + Retrieves the value set using clutter_box_layout_set_pack_start() + + + %TRUE if the #ClutterBoxLayout should pack children + at the beginning of the layout, and %FALSE otherwise + + + + + a #ClutterBoxLayout + + + + + + Retrieves the spacing set using clutter_box_layout_set_spacing() + + + the spacing between children of the #ClutterBoxLayout + + + + + a #ClutterBoxLayout + + + + + + Retrieves whether @layout should animate changes in the layout properties. + + + %TRUE if the animations should be used, %FALSE otherwise + + + + + a #ClutterBoxLayout + + + + + + Retrieves the orientation of the @layout as set using the +clutter_box_layout_set_vertical() function + Use clutter_box_layout_get_orientation() instead + + + %TRUE if the #ClutterBoxLayout is arranging its children + vertically, and %FALSE otherwise + + + + + a #ClutterBoxLayout + + + + + + Packs @actor inside the #ClutterContainer associated to @layout +and sets the layout properties + #ClutterBoxLayout honours #ClutterActor's + align and expand properties. The preferred way is adding + the @actor with clutter_actor_add_child() and setting + #ClutterActor:x-align, #ClutterActor:y-align, + #ClutterActor:x-expand and #ClutterActor:y-expand + + + + + + + a #ClutterBoxLayout + + + + a #ClutterActor + + + + whether the @actor should expand + + + + whether the @actor should fill horizontally + + + + whether the @actor should fill vertically + + + + the horizontal alignment policy for @actor + + + + the vertical alignment policy for @actor + + + + + + Sets the horizontal and vertical alignment policies for @actor +inside @layout + #ClutterBoxLayout will honour #ClutterActor's + #ClutterActor:x-align and #ClutterActor:y-align properies + + + + + + + a #ClutterBoxLayout + + + + a #ClutterActor child of @layout + + + + Horizontal alignment policy for @actor + + + + Vertical alignment policy for @actor + + + + + + Sets the duration of the animations used by @layout when animating changes +in the layout properties. + The layout manager will honour the easing state + of the children when allocating them. + + + + + + + a #ClutterBoxLayout + + + + the duration of the animations, in milliseconds + + + + + + Sets the easing mode to be used by @layout when animating changes in layout +properties. + The layout manager will honour the easing state + of the children when allocating them. + + + + + + + a #ClutterBoxLayout + + + + an easing mode, either from #ClutterAnimationMode or a logical id + from clutter_alpha_register_func() + + + + + + Sets whether @actor should expand inside @layout + #ClutterBoxLayout will honour #ClutterActor's + #ClutterActor:x-expand and #ClutterActor:y-expand properies + + + + + + + a #ClutterBoxLayout + + + + a #ClutterActor child of @layout + + + + whether @actor should expand + + + + + + Sets the horizontal and vertical fill policies for @actor +inside @layout + #ClutterBoxLayout will honour #ClutterActor's + #ClutterActor:x-align and #ClutterActor:y-align properies + + + + + + + a #ClutterBoxLayout + + + + a #ClutterActor child of @layout + + + + whether @actor should fill horizontally the allocated space + + + + whether @actor should fill vertically the allocated space + + + + + + Sets whether the size of @layout children should be +homogeneous + + + + + + + a #ClutterBoxLayout + + + + %TRUE if the layout should be homogeneous + + + + + + Sets the orientation of the #ClutterBoxLayout layout manager. + + + + + + + a #ClutterBoxLayout + + + + the orientation of the #ClutterBoxLayout + + + + + + Sets whether children of @layout should be layed out by appending +them or by prepending them + + + + + + + a #ClutterBoxLayout + + + + %TRUE if the @layout should pack children at the + beginning of the layout + + + + + + Sets the spacing between children of @layout + + + + + + + a #ClutterBoxLayout + + + + the spacing between children of the layout, in pixels + + + + + + Sets whether @layout should animate changes in the layout properties + +The duration of the animations is controlled by +clutter_box_layout_set_easing_duration(); the easing mode to be used +by the animations is controlled by clutter_box_layout_set_easing_mode(). + +Enabling animations will override the easing state of each child +of the actor using @layout, and will use the #ClutterBoxLayout:easing-mode +and #ClutterBoxLayout:easing-duration properties instead. + The layout manager will honour the easing state + of the children when allocating them. + + + + + + + a #ClutterBoxLayout + + + + %TRUE if the @layout should use animations + + + + + + Sets whether @layout should arrange its children vertically alongside +the Y axis, instead of horizontally alongside the X axis + Use clutter_box_layout_set_orientation() instead. + + + + + + + a #ClutterBoxLayout + + + + %TRUE if the layout should be vertical + + + + + + The duration of the animations, in case #ClutterBoxLayout:use-animations +is set to %TRUE. + +The duration is expressed in milliseconds. + The #ClutterBoxLayout will honour the easing state of + the children when allocating them. + + + + The easing mode for the animations, in case +#ClutterBoxLayout:use-animations is set to %TRUE. + +The easing mode has the same semantics of #ClutterAnimation:mode: it can +either be a value from the #ClutterAnimationMode enumeration, like +%CLUTTER_EASE_OUT_CUBIC, or a logical id as returned by +clutter_alpha_register_func(). + +The default value is %CLUTTER_EASE_OUT_CUBIC. + The #ClutterBoxLayout will honour the easing state of + the children when allocating them. + + + + Whether the #ClutterBoxLayout should arrange its children +homogeneously, i.e. all children get the same size + + + + The orientation of the #ClutterBoxLayout, either horizontal +or vertical + + + + Whether the #ClutterBoxLayout should pack items at the start +or append them at the end + + + + The spacing between children of the #ClutterBoxLayout, in pixels + + + + Whether the #ClutterBoxLayout should animate changes in the +layout, overriding the easing state of the children. + #ClutterBoxLayout will honour the easing state + of the children when allocating them. + + + + Whether the #ClutterBoxLayout should arrange its children +alongside the Y axis, instead of alongside the X axis + Use #ClutterBoxLayout:orientation instead. + + + + + + + + + + + The #ClutterBoxLayoutClass structure contains only private +data and should be accessed using the provided API + + + + + + + + + + + + + + + + + + + + + #ClutterBrightnessContrastEffect is an opaque structure +whose members cannot be directly accessed + + + Creates a new #ClutterBrightnessContrastEffect to be used with +clutter_actor_add_effect() + + + the newly created + #ClutterBrightnessContrastEffect or %NULL. Use g_object_unref() when + done. + + + + + Retrieves the change in brightness used by @effect. + + + + + + + a #ClutterBrightnessContrastEffect + + + + return location for red component of the + change in brightness + + + + return location for green component of the + change in brightness + + + + return location for blue component of the + change in brightness + + + + + + Retrieves the contrast value used by @effect. + + + + + + + a #ClutterBrightnessContrastEffect + + + + return location for red component of the + change in contrast + + + + return location for green component of the + change in contrast + + + + return location for blue component of the + change in contrast + + + + + + The range of @brightness is [-1.0, 1.0], where 0.0 designates no change; +a value below 0.0 indicates a decrease in brightness; and a value +above 0.0 indicates an increase of brightness. + + + + + + + a #ClutterBrightnessContrastEffect + + + + the brightness change for all three components (r, g, b) + + + + + + The range for each component is [-1.0, 1.0] where 0.0 designates no change, +values below 0.0 mean a decrease in brightness, and values above indicate +an increase. + + + + + + + a #ClutterBrightnessContrastEffect + + + + red component of the change in brightness + + + + green component of the change in brightness + + + + blue component of the change in brightness + + + + + + The range for @contrast is [-1.0, 1.0], where 0.0 designates no change; +a value below 0.0 indicates a decrease in contrast; and a value above +0.0 indicates an increase. + + + + + + + a #ClutterBrightnessContrastEffect + + + + contrast change for all three channels + + + + + + The range for each component is [-1.0, 1.0] where 0.0 designates no change, +values below 0.0 mean a decrease in contrast, and values above indicate +an increase. + + + + + + + a #ClutterBrightnessContrastEffect + + + + red component of the change in contrast + + + + green component of the change in contrast + + + + blue component of the change in contrast + + + + + + The brightness change to apply to the effect. + +This property uses a #ClutterColor to represent the changes to each +color channel. The range is [ 0, 255 ], with 127 as the value used +to indicate no change; values smaller than 127 indicate a decrease +in brightness, and values larger than 127 indicate an increase in +brightness. + + + + The contrast change to apply to the effect. + +This property uses a #ClutterColor to represent the changes to each +color channel. The range is [ 0, 255 ], with 127 as the value used +to indicate no change; values smaller than 127 indicate a decrease +in contrast, and values larger than 127 indicate an increase in +contrast. + + + + + + + + Button event. + +The event coordinates are relative to the stage that received the +event, and can be transformed into actor-relative coordinates by +using clutter_actor_transform_stage_point(). + + + event type + + + + event time + + + + event flags + + + + event source stage + + + + event source actor + + + + event X coordinate, relative to the stage + + + + event Y coordinate, relative to the stage + + + + button modifiers + + + + event button + + + + number of button presses within the default time + and radius + + + + reserved for future use + + + + the device that originated the event. If you want the physical +device the event originated from, use clutter_event_get_source_device() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Cogl (internal GL abstraction utility library) backend. Can be "gl" or +"gles" currently + The macro evaluates to "deprecated" as Cogl can be + compiled against multiple GL implementations. + + + + + Default value for "now". + + + + + + + + + + + + + + + + + + + + + The #ClutterCairoTexture struct contains only private data. + Use #ClutterCanvas instead + + + + + + + Creates a new #ClutterCairoTexture actor, with a surface of @width by +@height pixels. + Use #ClutterCanvas instead + + + the newly created #ClutterCairoTexture actor + + + + + the width of the surface + + + + the height of the surface + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Clears @self's internal drawing surface, so that the next upload +will replace the previous contents of the #ClutterCairoTexture +rather than adding to it. + +Calling this function from within a #ClutterCairoTexture::draw +signal handler will clear the invalidated area. + Use #ClutterCanvas instead + + + + + + + a #ClutterCairoTexture + + + + + + Creates a new Cairo context for the @cairo texture. It is +similar to using clutter_cairo_texture_create_region() with @x_offset +and @y_offset of 0, @width equal to the @cairo texture surface width +and @height equal to the @cairo texture surface height. + +Do not call this function within the paint virtual +function or from a callback to the #ClutterActor::paint +signal. + Use the #ClutterCairoTexture::draw signal and + the clutter_cairo_texture_invalidate() function to obtain a + Cairo context for 2D drawing. + + + a newly created Cairo context. Use cairo_destroy() + to upload the contents of the context when done drawing + + + + + a #ClutterCairoTexture + + + + + + Creates a new Cairo context that will updat the region defined +by @x_offset, @y_offset, @width and @height. + +Do not call this function within the paint virtual +function or from a callback to the #ClutterActor::paint +signal. + Use the #ClutterCairoTexture::draw signal and + clutter_cairo_texture_invalidate_rectangle() to obtain a + clipped Cairo context for 2D drawing. + + + a newly created Cairo context. Use cairo_destroy() + to upload the contents of the context when done drawing + + + + + a #ClutterCairoTexture + + + + offset of the region on the X axis + + + + offset of the region on the Y axis + + + + width of the region, or -1 for the full surface width + + + + height of the region, or -1 for the full surface height + + + + + + Retrieves the value set using clutter_cairo_texture_set_auto_resize(). + Use #ClutterCanvas instead + + + %TRUE if the #ClutterCairoTexture should track the + allocation, and %FALSE otherwise + + + + + a #ClutterCairoTexture + + + + + + Retrieves the surface width and height for @self. + Use #ClutterCanvas instead + + + + + + + a #ClutterCairoTexture + + + + return location for the surface width, or %NULL + + + + return location for the surface height, or %NULL + + + + + + Invalidates the whole surface of a #ClutterCairoTexture. + +This function will cause the #ClutterCairoTexture::draw signal +to be emitted. + +See also: clutter_cairo_texture_invalidate_rectangle() + Use #ClutterCanvas instead + + + + + + + a #ClutterCairoTexture + + + + + + Invalidates a rectangular region of a #ClutterCairoTexture. + +The invalidation will cause the #ClutterCairoTexture::draw signal +to be emitted. + +See also: clutter_cairo_texture_invalidate() + Use #ClutterCanvas instead + + + + + + + a #ClutterCairoTexture + + + + a rectangle with the area to invalida, + or %NULL to perform an unbounded invalidation + + + + + + Sets whether the #ClutterCairoTexture should ensure that the +backing Cairo surface used matches the allocation assigned to +the actor. If the allocation changes, the contents of the +#ClutterCairoTexture will also be invalidated automatically. + Use #ClutterCanvas instead + + + + + + + a #ClutterCairoTexture + + + + %TRUE if the #ClutterCairoTexture should bind the surface + size to the allocation + + + + + + Resizes the Cairo surface used by @self to @width and @height. + +This function will not invalidate the contents of the Cairo +texture: you will have to explicitly call either +clutter_cairo_texture_invalidate_rectangle() or +clutter_cairo_texture_invalidate(). + Use #ClutterCanvas instead + + + + + + + a #ClutterCairoTexture + + + + the new width of the surface + + + + the new height of the surface + + + + + + Controls whether the #ClutterCairoTexture should automatically +resize the Cairo surface whenever the actor's allocation changes. +If :auto-resize is set to %TRUE the surface contents will also +be invalidated automatically. + + + + The height of the Cairo surface used by the #ClutterCairoTexture +actor, in pixels. + + + + The width of the Cairo surface used by the #ClutterCairoTexture +actor, in pixels. + + + + + + + + + + The ::create-surface signal is emitted when a #ClutterCairoTexture +news its surface (re)created, which happens either when the Cairo +context is created with clutter_cairo_texture_create() or +clutter_cairo_texture_create_region(), or when the surface is resized +through clutter_cairo_texture_set_surface_size(). + +The first signal handler that returns a non-%NULL, valid surface will +stop any further signal emission, and the returned surface will be +the one used. + + the newly created #cairo_surface_t for the texture + + + + + the width of the surface to create + + + + the height of the surface to create + + + + + + The ::draw signal is emitted each time a #ClutterCairoTexture has +been invalidated. + +The passed Cairo context passed will be clipped to the invalidated +area. + +It is safe to connect multiple callbacks to this signals; the state +of the Cairo context passed to each callback is automatically saved +and restored, so it's not necessary to call cairo_save() and +cairo_restore(). + + %TRUE if the signal emission should stop, and %FALSE + to continue + + + + + the Cairo context to use to draw + + + + + + + The #ClutterCairoTextureClass struct contains only private data. + Use #ClutterCanvas instead + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Generic callback + + + + + + + a #ClutterActor + + + + user data + + + + + + + + + + The #ClutterCanvas structure contains +private data and should only be accessed using the provided +API. + + + + Creates a new instance of #ClutterCanvas. + +You should call clutter_canvas_set_size() to set the size of the canvas. + +You should call clutter_content_invalidate() every time you wish to +draw the contents of the canvas. + + + The newly allocated instance of + #ClutterCanvas. Use g_object_unref() when done. + + + + + + + + + + + + + + + + + + + + + + + + + Gets the scale factor of the @canvas. + + + the current @canvas scale factor or -1 if invalid + + + + + a #ClutterCanvas + + + + + + Sets the scaling factor of the @canvas, and invalidates the content. + +This function will cause the @canvas to be invalidated only +if the scale factor of the canvas surface has changed. + + + + + + + a #ClutterCanvas + + + + the integer scaling factor of the canvas + + + + + + Sets the size of the @canvas, and invalidates the content. + +This function will cause the @canvas to be invalidated only +if the size of the canvas surface has changed. + +If you want to invalidate the contents of the @canvas when setting +the size, you can use the return value of the function to conditionally +call clutter_content_invalidate(): + +|[ + if (!clutter_canvas_set_size (canvas, width, height)) + clutter_content_invalidate (CLUTTER_CONTENT (canvas)); +]| + + + this function returns %TRUE if the size change + caused a content invalidation, and %FALSE otherwise + + + + + a #ClutterCanvas + + + + the width of the canvas, in pixels + + + + the height of the canvas, in pixels + + + + + + The height of the canvas. + + + + The height of the canvas. + + + + The width of the canvas. + + + + + + + + + + The #ClutterCanvas::draw signal is emitted each time a canvas is +invalidated. + +It is safe to connect multiple handlers to this signal: each +handler invocation will be automatically protected by cairo_save() +and cairo_restore() pairs. + + %TRUE if the signal emission should stop, and + %FALSE otherwise + + + + + the Cairo context used to draw + + + + the width of the @canvas + + + + the height of the @canvas + + + + + + + The #ClutterCanvasClass structure contains +private data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Base interface for container specific state for child actors. A child +data is meant to be used when you need to keep track of information +about each individual child added to a container. + +In order to use it you should create your own subclass of +#ClutterChildMeta and set the #ClutterContainerIface child_meta_type +interface member to your subclass type, like: + +|[ +static void +my_container_iface_init (ClutterContainerIface *iface) +{ + // set the rest of the #ClutterContainer vtable + + container_iface->child_meta_type = MY_TYPE_CHILD_META; +} +]| + +This will automatically create a #ClutterChildMeta of type +`MY_TYPE_CHILD_META` for every actor that is added to the container. + +The child data for an actor can be retrieved using the +clutter_container_get_child_meta() function. + +The properties of the data and your subclass can be manipulated with +clutter_container_child_set() and clutter_container_child_get() which +act like g_object_set() and g_object_get(). + +You can provide hooks for your own storage as well as control the +instantiation by overriding the #ClutterContainerIface virtual functions +#ClutterContainerIface.create_child_meta(), #ClutterContainerIface.destroy_child_meta(), +and #ClutterContainerIface.get_child_meta(). + + + Retrieves the actor wrapped by @data + + + a #ClutterActor + + + + + a #ClutterChildMeta + + + + + + Retrieves the container using @data + + + a #ClutterContainer + + + + + a #ClutterChildMeta + + + + + + The #ClutterActor being wrapped by this #ClutterChildMeta + + + + The #ClutterContainer that created this #ClutterChildMeta. + + + + + + + the container handling this data + + + + the actor wrapped by this data + + + + + The #ClutterChildMetaClass contains only private data + + + + + + + + + + + + + + + The #ClutterClickAction structure contains +only private data and should be accessed using the provided API + + + Creates a new #ClutterClickAction instance + + + the newly created #ClutterClickAction + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Retrieves the button that was pressed. + + + the button value + + + + + a #ClutterClickAction + + + + + + Retrieves the screen coordinates of the button press. + + + + + + + a #ClutterClickAction + + + + return location for the X coordinate, or %NULL + + + + return location for the Y coordinate, or %NULL + + + + + + Retrieves the modifier state of the click action. + + + the modifier state parameter, or 0 + + + + + a #ClutterClickAction + + + + + + Emulates a release of the pointer button, which ungrabs the pointer +and unsets the #ClutterClickAction:pressed state. + +This function will also cancel the long press gesture if one was +initiated. + +This function is useful to break a grab, for instance after a certain +amount of time has passed. + + + + + + + a #ClutterClickAction + + + + + + Whether the clickable actor has the pointer grabbed + + + + The minimum duration of a press for it to be recognized as a long +press gesture, in milliseconds. + +A value of -1 will make the #ClutterClickAction use the value of +the #ClutterSettings:long-press-duration property. + + + + The maximum allowed distance that can be covered (on both axes) before +a long press gesture is cancelled, in pixels. + +A value of -1 will make the #ClutterClickAction use the value of +the #ClutterSettings:dnd-drag-threshold property. + + + + Whether the clickable actor should be in "pressed" state + + + + + + + + + + The ::clicked signal is emitted when the #ClutterActor to which +a #ClutterClickAction has been applied should respond to a +pointer button press and release events + + + + + + the #ClutterActor attached to the @action + + + + + + The ::long-press signal is emitted during the long press gesture +handling. + +This signal can be emitted multiple times with different states. + +The %CLUTTER_LONG_PRESS_QUERY state will be emitted on button presses, +and its return value will determine whether the long press handling +should be initiated. If the signal handlers will return %TRUE, the +%CLUTTER_LONG_PRESS_QUERY state will be followed either by a signal +emission with the %CLUTTER_LONG_PRESS_ACTIVATE state if the long press +constraints were respected, or by a signal emission with the +%CLUTTER_LONG_PRESS_CANCEL state if the long press was cancelled. + +It is possible to forcibly cancel a long press detection using +clutter_click_action_release(). + + Only the %CLUTTER_LONG_PRESS_QUERY state uses the + returned value of the handler; other states will ignore it + + + + + the #ClutterActor attached to the @action + + + + the long press state + + + + + + + The #ClutterClickActionClass structure +contains only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterTextNode structure is an opaque +type whose members cannot be directly accessed. + + + Creates a new #ClutterPaintNode that will clip its child +nodes to the 2D regions added to it. + + + the newly created #ClutterPaintNode. + Use clutter_paint_node_unref() when done. + + + + + + The `ClutterClipNodeClass` structure is an opaque +type whose members cannot be directly accessed. + + + + The #ClutterClone structure contains only private data +and should be accessed using the provided API + + + + + + + Creates a new #ClutterActor which clones @source/ + + + the newly created #ClutterClone + + + + + a #ClutterActor, or %NULL + + + + + + Retrieves the source #ClutterActor being cloned by @self. + + + the actor source for the clone + + + + + a #ClutterClone + + + + + + Sets @source as the source actor to be cloned by @self. + + + + + + + a #ClutterClone + + + + a #ClutterActor, or %NULL + + + + + + This property specifies the source actor being cloned. + + + + + + + + + + + The #ClutterCloneClass structure contains only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Color representation. + + + red component, between 0 and 255 + + + + green component, between 0 and 255 + + + + blue component, between 0 and 255 + + + + alpha component, between 0 and 255 + + + + Allocates a new, transparent black #ClutterColor. + + + the newly allocated #ClutterColor; use + clutter_color_free() to free its resources + + + + + Creates a new #ClutterColor with the given values. + +This function is the equivalent of: + +|[ + clutter_color_init (clutter_color_alloc (), red, green, blue, alpha); +]| + + + the newly allocated color. + Use clutter_color_free() when done + + + + + red component of the color, between 0 and 255 + + + + green component of the color, between 0 and 255 + + + + blue component of the color, between 0 and 255 + + + + alpha component of the color, between 0 and 255 + + + + + + Adds @a to @b and saves the resulting color inside @result. + +The alpha channel of @result is set as as the maximum value +between the alpha channels of @a and @b. + + + + + + + a #ClutterColor + + + + a #ClutterColor + + + + return location for the result + + + + + + Makes a copy of the color structure. The result must be +freed using clutter_color_free(). + + + an allocated copy of @color. + + + + + a #ClutterColor + + + + + + Darkens @color by a fixed amount, and saves the changed color +in @result. + + + + + + + a #ClutterColor + + + + return location for the darker color + + + + + + Compares two #ClutterColor<!-- -->s and checks if they are the same. + +This function can be passed to g_hash_table_new() as the @key_equal_func +parameter, when using #ClutterColor<!-- -->s as keys in a #GHashTable. + + + %TRUE if the two colors are the same. + + + + + a #ClutterColor + + + + a #ClutterColor + + + + + + Frees a color structure created with clutter_color_copy(). + + + + + + + a #ClutterColor + + + + + + Converts a #ClutterColor to a hash value. + +This function can be passed to g_hash_table_new() as the @hash_func +parameter, when using #ClutterColor<!-- -->s as keys in a #GHashTable. + + + a hash value corresponding to the color + + + + + a #ClutterColor + + + + + + Initializes @color with the given values. + + + the initialized #ClutterColor + + + + + a #ClutterColor + + + + red component of the color, between 0 and 255 + + + + green component of the color, between 0 and 255 + + + + blue component of the color, between 0 and 255 + + + + alpha component of the color, between 0 and 255 + + + + + + Interpolates between @initial and @final #ClutterColor<!-- -->s +using @progress + + + + + + + the initial #ClutterColor + + + + the final #ClutterColor + + + + the interpolation progress + + + + return location for the interpolation + + + + + + Lightens @color by a fixed amount, and saves the changed color +in @result. + + + + + + + a #ClutterColor + + + + return location for the lighter color + + + + + + Shades @color by @factor and saves the modified color into @result. + + + + + + + a #ClutterColor + + + + the shade factor to apply + + + + return location for the shaded color + + + + + + Subtracts @b from @a and saves the resulting color inside @result. + +This function assumes that the components of @a are greater than the +components of @b; the result is, otherwise, undefined. + +The alpha channel of @result is set as the minimum value +between the alpha channels of @a and @b. + + + + + + + a #ClutterColor + + + + a #ClutterColor + + + + return location for the result + + + + + + Converts @color to the HLS format. + +The @hue value is in the 0 .. 360 range. The @luminance and +@saturation values are in the 0 .. 1 range. + + + + + + + a #ClutterColor + + + + return location for the hue value or %NULL + + + + return location for the luminance value or %NULL + + + + return location for the saturation value or %NULL + + + + + + Converts @color into a packed 32 bit integer, containing +all the four 8 bit channels used by #ClutterColor. + + + a packed color + + + + + a #ClutterColor + + + + + + Returns a textual specification of @color in the hexadecimal form +<literal>&num;rrggbbaa</literal>, where <literal>r</literal>, +<literal>g</literal>, <literal>b</literal> and <literal>a</literal> are +hexadecimal digits representing the red, green, blue and alpha components +respectively. + + + a newly-allocated text string + + + + + a #ClutterColor + + + + + + Converts a color expressed in HLS (hue, luminance and saturation) +values into a #ClutterColor. + + + + + + + return location for a #ClutterColor + + + + hue value, in the 0 .. 360 range + + + + luminance value, in the 0 .. 1 range + + + + saturation value, in the 0 .. 1 range + + + + + + Converts @pixel from the packed representation of a four 8 bit channel +color to a #ClutterColor. + + + + + + + return location for a #ClutterColor + + + + a 32 bit packed integer containing a color + + + + + + Parses a string definition of a color, filling the #ClutterColor.red, +#ClutterColor.green, #ClutterColor.blue and #ClutterColor.alpha fields +of @color. + +The @color is not allocated. + +The format of @str can be either one of: + + - a standard name (as taken from the X11 rgb.txt file) + - an hexadecimal value in the form: `#rgb`, `#rrggbb`, `#rgba`, or `#rrggbbaa` + - a RGB color in the form: `rgb(r, g, b)` + - a RGB color in the form: `rgba(r, g, b, a)` + - a HSL color in the form: `hsl(h, s, l)` + -a HSL color in the form: `hsla(h, s, l, a)` + +where 'r', 'g', 'b' and 'a' are (respectively) the red, green, blue color +intensities and the opacity. The 'h', 's' and 'l' are (respectively) the +hue, saturation and luminance values. + +In the rgb() and rgba() formats, the 'r', 'g', and 'b' values are either +integers between 0 and 255, or percentage values in the range between 0% +and 100%; the percentages require the '%' character. The 'a' value, if +specified, can only be a floating point value between 0.0 and 1.0. + +In the hls() and hlsa() formats, the 'h' value (hue) is an angle between +0 and 360.0 degrees; the 'l' and 's' values (luminance and saturation) are +percentage values in the range between 0% and 100%. The 'a' value, if specified, +can only be a floating point value between 0.0 and 1.0. + +Whitespace inside the definitions is ignored; no leading whitespace +is allowed. + +If the alpha component is not specified then it is assumed to be set to +be fully opaque. + + + %TRUE if parsing succeeded, and %FALSE otherwise + + + + + return location for a #ClutterColor + + + + a string specifiying a color + + + + + + Retrieves a static color for the given @color name + +Static colors are created by Clutter and are guaranteed to always be +available and valid + + + a pointer to a static color; the returned pointer + is owned by Clutter and it should never be modified or freed + + + + + the named global color + + + + + + + The #ClutterTextNode structure is an opaque +type whose members cannot be directly accessed. + + + Creates a new #ClutterPaintNode that will paint a solid color +fill using @color. + + + the newly created #ClutterPaintNode. Use + clutter_paint_node_unref() when done + + + + + the color to paint, or %NULL + + + + + + + The `ClutterColorNodeClass` structure is an +opaque type whose members cannot be directly accessed. + + + + #ClutterColorizeEffect is an opaque structure +whose members cannot be directly accessed + + + Creates a new #ClutterColorizeEffect to be used with +clutter_actor_add_effect() + + + the newly created #ClutterColorizeEffect or %NULL + + + + + the color to be used + + + + + + Retrieves the tint used by @effect + + + + + + + a #ClutterColorizeEffect + + + + return location for the color used + + + + + + Sets the tint to be used when colorizing + + + + + + + a #ClutterColorizeEffect + + + + the color to be used + + + + + + The tint to apply to the actor + + + + + + + + + + + + The #ClutterConstraint structure contains only +private data and should be accessed using the provided API + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterConstraintClass structure contains +only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #ClutterContainer is an opaque structure whose members cannot be directly +accessed + + + Looks up the #GParamSpec for a child property of @klass. + + + The #GParamSpec for the property or %NULL + if no such property exist. + + + + + a #GObjectClass implementing the #ClutterContainer interface. + + + + a property name. + + + + + + Returns an array of #GParamSpec for all child properties. + + + an array + of #GParamSpec<!-- -->s which should be freed after use. + + + + + + + a #GObjectClass implementing the #ClutterContainer interface. + + + + return location for length of returned array. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Adds a #ClutterActor to @container. This function will emit the +"actor-added" signal. The actor should be parented to +@container. You cannot add a #ClutterActor to more than one +#ClutterContainer. + +This function will call #ClutterContainerIface.add(), which is a +deprecated virtual function. The default implementation will +call clutter_actor_add_child(). + Use clutter_actor_add_child() instead. + + + + + + + a #ClutterContainer + + + + the first #ClutterActor to add + + + + + + Calls the #ClutterContainerIface.child_notify() virtual function +of #ClutterContainer. The default implementation will emit the +#ClutterContainer::child-notify signal. + + + + + + + a #ClutterContainer + + + + a #ClutterActor + + + + a #GParamSpec + + + + + + Creates the #ClutterChildMeta wrapping @actor inside the +@container, if the #ClutterContainerIface::child_meta_type +class member is not set to %G_TYPE_INVALID. + +This function is only useful when adding a #ClutterActor to +a #ClutterContainer implementation outside of the +#ClutterContainer::add() virtual function implementation. + +Applications should not call this function. + + + + + + + a #ClutterContainer + + + + a #ClutterActor + + + + + + Destroys the #ClutterChildMeta wrapping @actor inside the +@container, if any. + +This function is only useful when removing a #ClutterActor to +a #ClutterContainer implementation outside of the +#ClutterContainer::add() virtual function implementation. + +Applications should not call this function. + + + + + + + a #ClutterContainer + + + + a #ClutterActor + + + + + + Calls @callback for each child of @container that was added +by the application (with clutter_container_add_actor()). Does +not iterate over "internal" children that are part of the +container's own implementation, if any. + +This function calls the #ClutterContainerIface.foreach() +virtual function, which has been deprecated. + Use clutter_actor_get_first_child() or + clutter_actor_get_last_child() to retrieve the beginning of + the list of children, and clutter_actor_get_next_sibling() + and clutter_actor_get_previous_sibling() to iterate over it; + alternatively, use the #ClutterActorIter API. + + + + + + + a #ClutterContainer + + + + a function to be called for each child + + + + data to be passed to the function, or %NULL + + + + + + Calls @callback for each child of @container, including "internal" +children built in to the container itself that were never added +by the application. + +This function calls the #ClutterContainerIface.foreach_with_internals() +virtual function, which has been deprecated. + See clutter_container_foreach(). + + + + + + + a #ClutterContainer + + + + a function to be called for each child + + + + data to be passed to the function, or %NULL + + + + + + Retrieves the #ClutterChildMeta which contains the data about the +@container specific state for @actor. + + + the #ClutterChildMeta for the @actor child + of @container or %NULL if the specifiec actor does not exist or the + container is not configured to provide #ClutterChildMeta<!-- -->s + + + + + a #ClutterContainer + + + + a #ClutterActor that is a child of @container. + + + + + + Lowers @actor to @sibling level, in the depth ordering. + +This function calls the #ClutterContainerIface.lower() virtual function, +which has been deprecated. The default implementation will call +clutter_actor_set_child_below_sibling(). + Use clutter_actor_set_child_below_sibling() instead. + + + + + + + a #ClutterContainer + + + + the actor to raise + + + + the sibling to lower to, or %NULL to lower + to the bottom + + + + + + Raises @actor to @sibling level, in the depth ordering. + +This function calls the #ClutterContainerIface.raise() virtual function, +which has been deprecated. The default implementation will call +clutter_actor_set_child_above_sibling(). + Use clutter_actor_set_child_above_sibling() instead. + + + + + + + a #ClutterContainer + + + + the actor to raise + + + + the sibling to raise to, or %NULL to raise + to the top + + + + + + Removes @actor from @container. The actor should be unparented, so +if you want to keep it around you must hold a reference to it +yourself, using g_object_ref(). When the actor has been removed, +the "actor-removed" signal is emitted by @container. + +This function will call #ClutterContainerIface.remove(), which is a +deprecated virtual function. The default implementation will call +clutter_actor_remove_child(). + Use clutter_actor_remove_child() instead. + + + + + + + a #ClutterContainer + + + + a #ClutterActor + + + + + + Sorts a container's children using their depth. This function should not +be normally used by applications. + The #ClutterContainerIface.sort_depth_order() virtual + function should not be used any more; the default implementation in + #ClutterContainer does not do anything. + + + + + + + a #ClutterContainer + + + + + + Adds a list of #ClutterActor<!-- -->s to @container. Each time and +actor is added, the "actor-added" signal is emitted. Each actor should +be parented to @container, which takes a reference on the actor. You +cannot add a #ClutterActor to more than one #ClutterContainer. + +This function will call #ClutterContainerIface.add(), which is a +deprecated virtual function. The default implementation will +call clutter_actor_add_child(). + Use clutter_actor_add_child() instead. + + + + + + + a #ClutterContainer + + + + the first #ClutterActor to add + + + + %NULL terminated list of actors to add + + + + + + Adds a #ClutterActor to @container. This function will emit the +"actor-added" signal. The actor should be parented to +@container. You cannot add a #ClutterActor to more than one +#ClutterContainer. + +This function will call #ClutterContainerIface.add(), which is a +deprecated virtual function. The default implementation will +call clutter_actor_add_child(). + Use clutter_actor_add_child() instead. + + + + + + + a #ClutterContainer + + + + the first #ClutterActor to add + + + + + + Alternative va_list version of clutter_container_add(). + +This function will call #ClutterContainerIface.add(), which is a +deprecated virtual function. The default implementation will +call clutter_actor_add_child(). + Use clutter_actor_add_child() instead. + + + + + + + a #ClutterContainer + + + + the first #ClutterActor to add + + + + list of actors to add, followed by %NULL + + + + + + Gets @container specific properties of an actor. + +In general, a copy is made of the property contents and the caller is +responsible for freeing the memory in the appropriate manner for the type, for +instance by calling g_free() or g_object_unref(). + + + + + + + a #ClutterContainer + + + + a #ClutterActor that is a child of @container. + + + + name of the first property to be set. + + + + value for the first property, followed optionally by more name/value +pairs terminated with NULL. + + + + + + Gets a container specific property of a child of @container, In general, +a copy is made of the property contents and the caller is responsible for +freeing the memory by calling g_value_unset(). + +Note that clutter_container_child_set_property() is really intended for +language bindings, clutter_container_child_set() is much more convenient +for C programming. + + + + + + + a #ClutterContainer + + + + a #ClutterActor that is a child of @container. + + + + the name of the property to set. + + + + the value. + + + + + + Calls the #ClutterContainerIface.child_notify() virtual function +of #ClutterContainer. The default implementation will emit the +#ClutterContainer::child-notify signal. + + + + + + + a #ClutterContainer + + + + a #ClutterActor + + + + a #GParamSpec + + + + + + Sets container specific properties on the child of a container. + + + + + + + a #ClutterContainer + + + + a #ClutterActor that is a child of @container. + + + + name of the first property to be set. + + + + value for the first property, followed optionally by more name/value +pairs terminated with NULL. + + + + + + Sets a container-specific property on a child of @container. + + + + + + + a #ClutterContainer + + + + a #ClutterActor that is a child of @container. + + + + the name of the property to set. + + + + the value. + + + + + + Creates the #ClutterChildMeta wrapping @actor inside the +@container, if the #ClutterContainerIface::child_meta_type +class member is not set to %G_TYPE_INVALID. + +This function is only useful when adding a #ClutterActor to +a #ClutterContainer implementation outside of the +#ClutterContainer::add() virtual function implementation. + +Applications should not call this function. + + + + + + + a #ClutterContainer + + + + a #ClutterActor + + + + + + Destroys the #ClutterChildMeta wrapping @actor inside the +@container, if any. + +This function is only useful when removing a #ClutterActor to +a #ClutterContainer implementation outside of the +#ClutterContainer::add() virtual function implementation. + +Applications should not call this function. + + + + + + + a #ClutterContainer + + + + a #ClutterActor + + + + + + Finds a child actor of a container by its name. Search recurses +into any child container. + + + The child actor with the requested name, + or %NULL if no actor with that name was found. + + + + + a #ClutterContainer + + + + the name of the requested child. + + + + + + Calls @callback for each child of @container that was added +by the application (with clutter_container_add_actor()). Does +not iterate over "internal" children that are part of the +container's own implementation, if any. + +This function calls the #ClutterContainerIface.foreach() +virtual function, which has been deprecated. + Use clutter_actor_get_first_child() or + clutter_actor_get_last_child() to retrieve the beginning of + the list of children, and clutter_actor_get_next_sibling() + and clutter_actor_get_previous_sibling() to iterate over it; + alternatively, use the #ClutterActorIter API. + + + + + + + a #ClutterContainer + + + + a function to be called for each child + + + + data to be passed to the function, or %NULL + + + + + + Calls @callback for each child of @container, including "internal" +children built in to the container itself that were never added +by the application. + +This function calls the #ClutterContainerIface.foreach_with_internals() +virtual function, which has been deprecated. + See clutter_container_foreach(). + + + + + + + a #ClutterContainer + + + + a function to be called for each child + + + + data to be passed to the function, or %NULL + + + + + + Retrieves the #ClutterChildMeta which contains the data about the +@container specific state for @actor. + + + the #ClutterChildMeta for the @actor child + of @container or %NULL if the specifiec actor does not exist or the + container is not configured to provide #ClutterChildMeta<!-- -->s + + + + + a #ClutterContainer + + + + a #ClutterActor that is a child of @container. + + + + + + Retrieves all the children of @container. + Use clutter_actor_get_children() instead. + + + a list + of #ClutterActor<!-- -->s. Use g_list_free() on the returned + list when done. + + + + + + + a #ClutterContainer + + + + + + Lowers @actor to @sibling level, in the depth ordering. + +This function calls the #ClutterContainerIface.lower() virtual function, +which has been deprecated. The default implementation will call +clutter_actor_set_child_below_sibling(). + Use clutter_actor_set_child_below_sibling() instead. + + + + + + + a #ClutterContainer + + + + the actor to raise + + + + the sibling to lower to, or %NULL to lower + to the bottom + + + + + + Raises @actor to @sibling level, in the depth ordering. + +This function calls the #ClutterContainerIface.raise() virtual function, +which has been deprecated. The default implementation will call +clutter_actor_set_child_above_sibling(). + Use clutter_actor_set_child_above_sibling() instead. + + + + + + + a #ClutterContainer + + + + the actor to raise + + + + the sibling to raise to, or %NULL to raise + to the top + + + + + + Removes a %NULL terminated list of #ClutterActor<!-- -->s from +@container. Each actor should be unparented, so if you want to keep it +around you must hold a reference to it yourself, using g_object_ref(). +Each time an actor is removed, the "actor-removed" signal is +emitted by @container. + +This function will call #ClutterContainerIface.remove(), which is a +deprecated virtual function. The default implementation will call +clutter_actor_remove_child(). + Use clutter_actor_remove_child() instead. + + + + + + + a #ClutterContainer + + + + first #ClutterActor to remove + + + + a %NULL-terminated list of actors to remove + + + + + + Removes @actor from @container. The actor should be unparented, so +if you want to keep it around you must hold a reference to it +yourself, using g_object_ref(). When the actor has been removed, +the "actor-removed" signal is emitted by @container. + +This function will call #ClutterContainerIface.remove(), which is a +deprecated virtual function. The default implementation will call +clutter_actor_remove_child(). + Use clutter_actor_remove_child() instead. + + + + + + + a #ClutterContainer + + + + a #ClutterActor + + + + + + Alternative va_list version of clutter_container_remove(). + +This function will call #ClutterContainerIface.remove(), which is a +deprecated virtual function. The default implementation will call +clutter_actor_remove_child(). + Use clutter_actor_remove_child() instead. + + + + + + + a #ClutterContainer + + + + the first #ClutterActor to add + + + + list of actors to remove, followed by %NULL + + + + + + Sorts a container's children using their depth. This function should not +be normally used by applications. + The #ClutterContainerIface.sort_depth_order() virtual + function should not be used any more; the default implementation in + #ClutterContainer does not do anything. + + + + + + + a #ClutterContainer + + + + + + The ::actor-added signal is emitted each time an actor +has been added to @container. + + + + + + the new child that has been added to @container + + + + + + The ::actor-removed signal is emitted each time an actor +is removed from @container. + + + + + + the child that has been removed from @container + + + + + + The ::child-notify signal is emitted each time a property is +being set through the clutter_container_child_set() and +clutter_container_child_set_property() calls. + + + + + + the child that has had a property set + + + + the #GParamSpec of the property set + + + + + + + Base interface for container actors. The @add, @remove and @foreach +virtual functions must be provided by any implementation; the other +virtual functions are optional. + + + + + + + + + + + + + a #ClutterContainer + + + + the first #ClutterActor to add + + + + + + + + + + + + + + a #ClutterContainer + + + + a #ClutterActor + + + + + + + + + + + + + + a #ClutterContainer + + + + a function to be called for each child + + + + data to be passed to the function, or %NULL + + + + + + + + + + + + + + a #ClutterContainer + + + + a function to be called for each child + + + + data to be passed to the function, or %NULL + + + + + + + + + + + + + + a #ClutterContainer + + + + the actor to raise + + + + the sibling to raise to, or %NULL to raise + to the top + + + + + + + + + + + + + + a #ClutterContainer + + + + the actor to raise + + + + the sibling to lower to, or %NULL to lower + to the bottom + + + + + + + + + + + + + + a #ClutterContainer + + + + + + + The GType used for storing auxiliary information about + each of the containers children. + + + + + + + + + + + a #ClutterContainer + + + + a #ClutterActor + + + + + + + + + + + + + + a #ClutterContainer + + + + a #ClutterActor + + + + + + + + + + the #ClutterChildMeta for the @actor child + of @container or %NULL if the specifiec actor does not exist or the + container is not configured to provide #ClutterChildMeta<!-- -->s + + + + + a #ClutterContainer + + + + a #ClutterActor that is a child of @container. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a #ClutterContainer + + + + a #ClutterActor + + + + a #GParamSpec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Retrieves the natural size of the @content, if any. + +The natural size of a #ClutterContent is defined as the size the content +would have regardless of the allocation of the actor that is painting it, +for instance the size of an image data. + + + %TRUE if the content has a preferred size, and %FALSE + otherwise + + + + + a #ClutterContent + + + + return location for the natural width of the content + + + + return location for the natural height of the content + + + + + + Invalidates a #ClutterContent. + +This function should be called by #ClutterContent implementations when +they change the way a the content should be painted regardless of the +actor state. + + + + + + + a #ClutterContent + + + + + + Signals that @content's size changed. Attached actors with request mode +set to %CLUTTER_REQUEST_CONTENT_SIZE will have a relayout queued. + +Attached actors with other request modes are not redrawn. To redraw them +too, use clutter_content_invalidate(). + + + + + + + a #ClutterContent + + + + + + + + + + + + + + + + + + + + + + + Retrieves the natural size of the @content, if any. + +The natural size of a #ClutterContent is defined as the size the content +would have regardless of the allocation of the actor that is painting it, +for instance the size of an image data. + + + %TRUE if the content has a preferred size, and %FALSE + otherwise + + + + + a #ClutterContent + + + + return location for the natural width of the content + + + + return location for the natural height of the content + + + + + + Invalidates a #ClutterContent. + +This function should be called by #ClutterContent implementations when +they change the way a the content should be painted regardless of the +actor state. + + + + + + + a #ClutterContent + + + + + + Signals that @content's size changed. Attached actors with request mode +set to %CLUTTER_REQUEST_CONTENT_SIZE will have a relayout queued. + +Attached actors with other request modes are not redrawn. To redraw them +too, use clutter_content_invalidate(). + + + + + + + a #ClutterContent + + + + + + This signal is emitted each time a #ClutterContent implementation is +assigned to a #ClutterActor. + + + + + + a #ClutterActor + + + + + + This signal is emitted each time a #ClutterContent implementation is +removed from a #ClutterActor. + + + + + + a #ClutterActor + + + + + + + Controls the alignment of the #ClutterContent inside a #ClutterActor. + + Align the content to the top left corner + + + Align the content to the top edge + + + Align the content to the top right corner + + + Align the content to the left edge + + + Align the content to the center + + + Align the content to the right edge + + + Align the content to the bottom left corner + + + Align the content to the bottom edge + + + Align the content to the bottom right corner + + + Resize the content to fill the allocation + + + Resize the content to remain within the + allocation, while maintaining the aspect ratio + + + + The #ClutterContentInterface structure contains only +private data. + + + + + + + + + %TRUE if the content has a preferred size, and %FALSE + otherwise + + + + + a #ClutterContent + + + + return location for the natural width of the content + + + + return location for the natural height of the content + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a #ClutterContent + + + + + + + + + + + + + + a #ClutterContent + + + + + + + + Content repeat modes. + + No repeat + + + Repeat the content on the X axis + + + Repeat the content on the Y axis + + + Repeat the content on both axis + + + + + + + + + + + + + + + + + + + + Event for the movement of the pointer across different actors + + + event type + + + + event time + + + + event flags + + + + event source stage + + + + event source actor + + + + event X coordinate + + + + event Y coordinate + + + + the device that originated the event. If you want the physical +device the event originated from, use clutter_event_get_source_device() + + + + actor related to the crossing + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterDeformEffect structure contains +only private data and should be accessed using the provided API + + + + + + + + + + + + + + + + + + + + + + + Retrieves the handle to the back face material used by @effect + + + a handle for the material, or %NULL. + The returned material is owned by the #ClutterDeformEffect and it + should not be freed directly + + + + + a #ClutterDeformEffect + + + + + + Retrieves the number of horizontal and vertical tiles used to sub-divide +the actor's geometry during the effect + + + + + + + a #ClutterDeformEffect + + + + return location for the number of horizontal tiles, + or %NULL + + + + return location for the number of vertical tiles, + or %NULL + + + + + + Invalidates the @effect<!-- -->'s vertices and, if it is associated +to an actor, it will queue a redraw + + + + + + + a #ClutterDeformEffect + + + + + + Sets the material that should be used when drawing the back face +of the actor during a deformation + +The #ClutterDeformEffect will take a reference on the material's +handle + + + + + + + a #ClutterDeformEffect + + + + a handle to a Cogl material + + + + + + Sets the number of horizontal and vertical tiles to be used +when applying the effect + +More tiles allow a finer grained deformation at the expenses +of computation + + + + + + + a #ClutterDeformEffect + + + + number of horizontal tiles + + + + number of vertical tiles + + + + + + A material to be used when painting the back of the actor +to which this effect has been applied + +By default, no material will be used + + + + The number of horizontal tiles. The bigger the number, the +smaller the tiles + + + + The number of vertical tiles. The bigger the number, the +smaller the tiles + + + + + + + + + + + The #ClutterDeformEffectClass structure contains +only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #ClutterDesaturateEffect is an opaque structure +whose members cannot be directly accessed + + + Creates a new #ClutterDesaturateEffect to be used with +clutter_actor_add_effect() + + + the newly created #ClutterDesaturateEffect or %NULL + + + + + the desaturation factor, between 0.0 and 1.0 + + + + + + Retrieves the desaturation factor of @effect + + + the desaturation factor + + + + + a #ClutterDesaturateEffect + + + + + + Sets the desaturation factor for @effect, with 0.0 being "do not desaturate" +and 1.0 being "fully desaturate" + + + + + + + a #ClutterDesaturateEffect + + + + the desaturation factor, between 0.0 and 1.0 + + + + + + The desaturation factor, between 0.0 (no desaturation) and 1.0 (full +desaturation). + + + + + + + + The #ClutterDeviceManager structure contains only private data + + + Retrieves the device manager singleton + + + the #ClutterDeviceManager singleton. + The returned instance is owned by Clutter and it should not be + modified or freed + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a virtual input device. + + + a newly created virtual device + + + + + a #ClutterDeviceManager + + + + the type of the virtual device + + + + + + Retrieves the core #ClutterInputDevice of type @device_type + +Core devices are devices created automatically by the default +Clutter backend + + + a #ClutterInputDevice or %NULL. The + returned device is owned by the #ClutterDeviceManager and should + not be modified or freed + + + + + a #ClutterDeviceManager + + + + the type of the core device + + + + + + Retrieves the #ClutterInputDevice with the given @device_id + + + a #ClutterInputDevice or %NULL. The + returned device is owned by the #ClutterDeviceManager and should + never be modified or freed + + + + + a #ClutterDeviceManager + + + + the integer id of a device + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a virtual input device. + + + a newly created virtual device + + + + + a #ClutterDeviceManager + + + + the type of the virtual device + + + + + + Retrieves the core #ClutterInputDevice of type @device_type + +Core devices are devices created automatically by the default +Clutter backend + + + a #ClutterInputDevice or %NULL. The + returned device is owned by the #ClutterDeviceManager and should + not be modified or freed + + + + + a #ClutterDeviceManager + + + + the type of the core device + + + + + + Retrieves the #ClutterInputDevice with the given @device_id + + + a #ClutterInputDevice or %NULL. The + returned device is owned by the #ClutterDeviceManager and should + never be modified or freed + + + + + a #ClutterDeviceManager + + + + the integer id of a device + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lists all currently registered input devices + + + + a newly allocated list of #ClutterInputDevice objects. Use + g_slist_free() to deallocate it when done + + + + + + + a #ClutterDeviceManager + + + + + + Lists all currently registered input devices + + + + a pointer to the internal list of #ClutterInputDevice objects. The + returned list is owned by the #ClutterDeviceManager and should never + be modified or freed + + + + + + + a #ClutterDeviceManager + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The ::device-added signal is emitted each time a device has been +added to the #ClutterDeviceManager + + + + + + the newly added #ClutterInputDevice + + + + + + The ::device-removed signal is emitted each time a device has been +removed from the #ClutterDeviceManager + + + + + + the removed #ClutterInputDevice + + + + + + The ::kbd-a11y-flags-changed signal is emitted each time the +ClutterKeyboardA11yFlags configuration is changed as the result of +keyboard accessibilty operations. + + + + + + the new ClutterKeyboardA11yFlags configuration + + + + the ClutterKeyboardA11yFlags changed + + + + + + The ::kbd-a11y-mods-state-changed signal is emitted each time either the +latched modifiers mask or locked modifiers mask are changed as the +result of keyboard accessibilty's sticky keys operations. + + + + + + the latched modifier mask from stickykeys + + + + the locked modifier mask from stickykeys + + + + + + + + + + + + + + + + + + + + The #ClutterDeviceManagerClass structure contains only private data + + + + + + + + + + + + + + + + + + + + + + + + a #ClutterInputDevice or %NULL. The + returned device is owned by the #ClutterDeviceManager and should + not be modified or freed + + + + + a #ClutterDeviceManager + + + + the type of the core device + + + + + + + + + + a #ClutterInputDevice or %NULL. The + returned device is owned by the #ClutterDeviceManager and should + never be modified or freed + + + + + a #ClutterDeviceManager + + + + the integer id of a device + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a newly created virtual device + + + + + a #ClutterDeviceManager + + + + the type of the virtual device + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterDragAction structure contains only +private data and should be accessed using the provided API + + + Creates a new #ClutterDragAction instance + + + the newly created #ClutterDragAction + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Retrieves the "drag area" associated with @action, that +is a #ClutterRect that constrains the actor movements, +in parents coordinates. + + + %TRUE if the actor is actually constrained (and thus + @drag_area is valid), %FALSE otherwise + + + + + a #ClutterDragAction + + + + a #ClutterRect to be filled + + + + + + Retrieves the axis constraint set by clutter_drag_action_set_drag_axis() + + + the axis constraint + + + + + a #ClutterDragAction + + + + + + Retrieves the drag handle set by clutter_drag_action_set_drag_handle() + + + a #ClutterActor, used as the drag + handle, or %NULL if none was set + + + + + a #ClutterDragAction + + + + + + Retrieves the values set by clutter_drag_action_set_drag_threshold(). + +If the #ClutterDragAction:x-drag-threshold property or the +#ClutterDragAction:y-drag-threshold property have been set to -1 then +this function will return the default drag threshold value as stored +by the #ClutterSettings:dnd-drag-threshold property of #ClutterSettings. + + + + + + + a #ClutterDragAction + + + + return location for the horizontal drag + threshold value, in pixels + + + + return location for the vertical drag + threshold value, in pixels + + + + + + Retrieves the coordinates, in stage space, of the latest motion +event during the dragging + + + + + + + a #ClutterDragAction + + + + return location for the latest motion + event's X coordinate + + + + return location for the latest motion + event's Y coordinate + + + + + + Retrieves the coordinates, in stage space, of the press event +that started the dragging + + + + + + + a #ClutterDragAction + + + + return location for the press event's X coordinate + + + + return location for the press event's Y coordinate + + + + + + Sets @drag_area to constrain the dragging of the actor associated +with @action, so that it position is always within @drag_area, expressed +in parent's coordinates. +If @drag_area is %NULL, the actor is not constrained. + + + + + + + a #ClutterDragAction + + + + a #ClutterRect + + + + + + Restricts the dragging action to a specific axis + + + + + + + a #ClutterDragAction + + + + the axis to constraint the dragging to + + + + + + Sets the actor to be used as the drag handle. + + + + + + + a #ClutterDragAction + + + + a #ClutterActor, or %NULL to unset + + + + + + Sets the horizontal and vertical drag thresholds that must be +cleared by the pointer before @action can begin the dragging. + +If @x_threshold or @y_threshold are set to -1 then the default +drag threshold stored in the #ClutterSettings:dnd-drag-threshold +property of #ClutterSettings will be used. + + + + + + + a #ClutterDragAction + + + + a distance on the horizontal axis, in pixels, or + -1 to use the default drag threshold from #ClutterSettings + + + + a distance on the vertical axis, in pixels, or + -1 to use the default drag threshold from #ClutterSettings + + + + + + Constains the dragging action (or in particular, the resulting +actor position) to the specified #ClutterRect, in parent's +coordinates. + + + + Whether the #ClutterDragAction:drag-area property has been set. + + + + Constraints the dragging action to the specified axis + + + + The #ClutterActor that is effectively being dragged + +A #ClutterDragAction will, be default, use the #ClutterActor that +has been attached to the action; it is possible to create a +separate #ClutterActor and use it instead. + +Setting this property has no effect on the #ClutterActor argument +passed to the #ClutterDragAction signals + + + + The horizontal threshold, in pixels, that the cursor must travel +in order to begin a drag action. + +When set to a positive value, #ClutterDragAction will only emit +#ClutterDragAction::drag-begin if the pointer has moved +horizontally at least of the given amount of pixels since +the button press event. + +When set to -1, #ClutterDragAction will use the default threshold +stored in the #ClutterSettings:dnd-drag-threshold property of +#ClutterSettings. + +When read, this property will always return a valid drag +threshold, either as set or the default one. + + + + The vertical threshold, in pixels, that the cursor must travel +in order to begin a drag action. + +When set to a positive value, #ClutterDragAction will only emit +#ClutterDragAction::drag-begin if the pointer has moved +vertically at least of the given amount of pixels since +the button press event. + +When set to -1, #ClutterDragAction will use the value stored +in the #ClutterSettings:dnd-drag-threshold property of +#ClutterSettings. + +When read, this property will always return a valid drag +threshold, either as set or the default one. + + + + + + + + + + The ::drag-begin signal is emitted when the #ClutterDragAction +starts the dragging + +The emission of this signal can be delayed by using the +#ClutterDragAction:x-drag-threshold and +#ClutterDragAction:y-drag-threshold properties + + + + + + the #ClutterActor attached to the action + + + + the X coordinate (in stage space) of the press event + + + + the Y coordinate (in stage space) of the press event + + + + the modifiers of the press event + + + + + + The ::drag-end signal is emitted at the end of the dragging, +when the pointer button's is released + +This signal is emitted if and only if the #ClutterDragAction::drag-begin +signal has been emitted first + + + + + + the #ClutterActor attached to the action + + + + the X coordinate (in stage space) of the release event + + + + the Y coordinate (in stage space) of the release event + + + + the modifiers of the release event + + + + + + The ::drag-motion signal is emitted for each motion event after +the #ClutterDragAction::drag-begin signal has been emitted. + +The components of the distance between the press event and the +latest motion event are computed in the actor's coordinate space, +to take into account eventual transformations. If you want the +stage coordinates of the latest motion event you can use +clutter_drag_action_get_motion_coords(). + +The default handler of the signal will call clutter_actor_move_by() +either on @actor or, if set, of #ClutterDragAction:drag-handle using +the @delta_x and @delta_y components of the dragging motion. If you +want to override the default behaviour, you can connect to the +#ClutterDragAction::drag-progress signal and return %FALSE from the +handler. + + + + + + the #ClutterActor attached to the action + + + + the X component of the distance between the press event + that began the dragging and the current position of the pointer, + as of the latest motion event + + + + the Y component of the distance between the press event + that began the dragging and the current position of the pointer, + as of the latest motion event + + + + + + The ::drag-progress signal is emitted for each motion event after +the #ClutterDragAction::drag-begin signal has been emitted. + +The components of the distance between the press event and the +latest motion event are computed in the actor's coordinate space, +to take into account eventual transformations. If you want the +stage coordinates of the latest motion event you can use +clutter_drag_action_get_motion_coords(). + +The default handler will emit #ClutterDragAction::drag-motion, +if #ClutterDragAction::drag-progress emission returns %TRUE. + + %TRUE if the drag should continue, and %FALSE + if it should be stopped. + + + + + the #ClutterActor attached to the action + + + + the X component of the distance between the press event + that began the dragging and the current position of the pointer, + as of the latest motion event + + + + the Y component of the distance between the press event + that began the dragging and the current position of the pointer, + as of the latest motion event + + + + + + + The #ClutterDragActionClass structure contains +only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The axis of the constraint that should be applied on the +dragging action + + No constraint + + + Set a constraint on the X axis + + + Set a constraint on the Y axis + + + + The #ClutterDropAction structure contains only +private data and should be accessed using the provided API. + + + Creates a new #ClutterDropAction. + +Use clutter_actor_add_action() to add the action to a #ClutterActor. + + + the newly created #ClutterDropAction + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The ::can-drop signal is emitted when the dragged actor is dropped +on @actor. The return value of the ::can-drop signal will determine +whether or not the #ClutterDropAction::drop signal is going to be +emitted on @action. + +The default implementation of #ClutterDropAction returns %TRUE for +this signal. + + %TRUE if the drop is accepted, and %FALSE otherwise + + + + + the #ClutterActor attached to the @action + + + + the X coordinate (in stage space) of the drop event + + + + the Y coordinate (in stage space) of the drop event + + + + + + The ::drop signal is emitted when the dragged actor is dropped +on @actor. This signal is only emitted if at least an handler of +#ClutterDropAction::can-drop returns %TRUE. + + + + + + the #ClutterActor attached to the @action + + + + the X coordinate (in stage space) of the drop event + + + + the Y coordinate (in stage space) of the drop event + + + + + + The ::drop-cancel signal is emitted when the drop is refused +by an emission of the #ClutterDropAction::can-drop signal. + +After the ::drop-cancel signal is fired the active drag is +terminated. + + + + + + the #ClutterActor attached to the @action + + + + the X coordinate (in stage space) of the drop event + + + + the Y coordinate (in stage space) of the drop event + + + + + + The ::over-in signal is emitted when the dragged actor crosses +into @actor. + + + + + + the #ClutterActor attached to the @action + + + + + + The ::over-out signal is emitted when the dragged actor crosses +outside @actor. + + + + + + the #ClutterActor attached to the @action + + + + + + + The #ClutterDropActionClass structure contains +only private data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Continues the propagation of an event; this macro should be +used in event-related signals. + + + + + Stops the propagation of an event; this macro should be used +in event-related signals. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterEffect structure contains only private data and should +be accessed using the provided API + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Queues a repaint of the effect. The effect can detect when the ‘paint’ +method is called as a result of this function because it will not +have the %CLUTTER_EFFECT_PAINT_ACTOR_DIRTY flag set. In that case the +effect is free to assume that the actor has not changed its +appearance since the last time it was painted so it doesn't need to +call clutter_actor_continue_paint() if it can draw a cached +image. This is mostly intended for effects that are using a +%CoglOffscreen to redirect the actor (such as +%ClutterOffscreenEffect). In that case the effect can save a bit of +rendering time by painting the cached texture without causing the +entire actor to be painted. + +This function can be used by effects that have their own animatable +parameters. For example, an effect which adds a varying degree of a +red tint to an actor by redirecting it through a CoglOffscreen +might have a property to specify the level of tint. When this value +changes, the underlying actor doesn't need to be redrawn so the +effect can call clutter_effect_queue_repaint() to make sure the +effect is repainted. + +Note however that modifying the position of the parent of an actor +may change the appearance of the actor because its transformation +matrix would change. In this case a redraw wouldn't be queued on +the actor itself so the %CLUTTER_EFFECT_PAINT_ACTOR_DIRTY would still +not be set. The effect can detect this case by keeping track of the +last modelview matrix that was used to render the actor and +veryifying that it remains the same in the next paint. + +Any other effects that are layered on top of the passed in effect +will still be passed the %CLUTTER_EFFECT_PAINT_ACTOR_DIRTY flag. If +anything queues a redraw on the actor without specifying an effect +or with an effect that is lower in the chain of effects than this +one then that will override this call. In that case this effect +will instead be called with the %CLUTTER_EFFECT_PAINT_ACTOR_DIRTY +flag set. + + + + + + + A #ClutterEffect which needs redrawing + + + + + + + + + + The #ClutterEffectClass structure contains only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Flags passed to the ‘paint’ or ‘pick’ method of #ClutterEffect. + + The actor or one of its children + has queued a redraw before this paint. This implies that the effect + should call clutter_actor_continue_paint() to chain to the next + effect and can not cache any results from a previous paint. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Generic event wrapper. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a new #ClutterEvent of the specified type. + + + A newly allocated #ClutterEvent. + + + + + The type of event. + + + + + + Copies @event. + + + A newly allocated #ClutterEvent + + + + + A #ClutterEvent. + + + + + + Frees all resources used by @event. + + + + + + + A #ClutterEvent. + + + + + + Retrieves the angle relative from @source to @target. + +The direction of the angle is from the position X axis towards +the positive Y axis. + + + the angle between two #ClutterEvent + + + + + a #ClutterEvent + + + + a #ClutterEvent + + + + + + Retrieves the array of axes values attached to the event. + + + an array of axis values + + + + + a #ClutterEvent + + + + return location for the number of axes returned + + + + + + Retrieves the button number of @event + + + the button number + + + + + a #ClutterEvent of type %CLUTTER_BUTTON_PRESS or + of type %CLUTTER_BUTTON_RELEASE + + + + + + Retrieves the number of clicks of @event + + + the click count + + + + + a #ClutterEvent of type %CLUTTER_BUTTON_PRESS or + of type %CLUTTER_BUTTON_RELEASE + + + + + + Retrieves the coordinates of @event and puts them into @x and @y. + + + + + + + a #ClutterEvent + + + + return location for the X coordinate, or %NULL + + + + return location for the Y coordinate, or %NULL + + + + + + Retrieves the #ClutterInputDevice for the event. +If you want the physical device the event originated from, use +clutter_event_get_source_device(). + +The #ClutterInputDevice structure is completely opaque and should +be cast to the platform-specific implementation. + + + the #ClutterInputDevice or %NULL. The + returned device is owned by the #ClutterEvent and it should not + be unreferenced + + + + + a #ClutterEvent + + + + + + Retrieves the events device id if set. + + + A unique identifier for the device or -1 if the event has + no specific device set. + + + + + a clutter event + + + + + + Returns the device tool that originated this event + + + The tool of this event + + + + + a #ClutterEvent + + + + + + Retrieves the type of the device for @event + + + the #ClutterInputDeviceType for the device, if + any is set + + + + + a #ClutterEvent + + + + + + Retrieves the distance between two events, a @source and a @target. + + + the distance between two #ClutterEvent + + + + + a #ClutterEvent + + + + a #ClutterEvent + + + + + + Retrieves the #ClutterEventSequence of @event. + + + the event sequence, or %NULL + + + + + a #ClutterEvent of type %CLUTTER_TOUCH_BEGIN, + %CLUTTER_TOUCH_UPDATE, %CLUTTER_TOUCH_END, or + %CLUTTER_TOUCH_CANCEL + + + + + + Retrieves the #ClutterEventFlags of @event + + + the event flags + + + + + a #ClutterEvent + + + + + + Returns the gesture motion deltas relative to the current pointer +position. + + + + + + + A clutter touchpad gesture event + + + + the displacement relative to the pointer + position in the X axis, or %NULL + + + + the displacement relative to the pointer + position in the Y axis, or %NULL + + + + + + Returns the phase of the event, See #ClutterTouchpadGesturePhase. + + + the phase of the gesture event. + + + + + a touchpad gesture event + + + + + + Returns the angle delta reported by this specific event. + + + The angle delta relative to the previous event. + + + + + a touchpad pinch event + + + + + + Returns the current scale as reported by @event, 1.0 being the original +distance at the time the corresponding event with phase +%CLUTTER_TOUCHPAD_GESTURE_PHASE_BEGIN is received. +is received. + + + the current pinch gesture scale + + + + + a touchpad pinch event + + + + + + Retrieves the keycode of the key that caused @event + + + The keycode representing the key + + + + + a #ClutterEvent of type %CLUTTER_KEY_PRESS or + of type %CLUTTER_KEY_RELEASE + + + + + + Retrieves the key symbol of @event + + + the key symbol representing the key + + + + + a #ClutterEvent of type %CLUTTER_KEY_PRESS or + of type %CLUTTER_KEY_RELEASE + + + + + + Retrieves the unicode value for the key that caused @keyev. + + + The unicode value representing the key + + + + + a #ClutterEvent of type %CLUTTER_KEY_PRESS + or %CLUTTER_KEY_RELEASE + + + + + + + + + + + + + + + + + Returns the details of a pad event. + + + #TRUE if event details could be obtained + + + + + a pad event + + + + ring/strip/button number + + + + pad mode as per the event + + + + event axis value + + + + + + Retrieves the event coordinates as a #ClutterPoint. + + + + + + + a #ClutterEvent + + + + a #ClutterPoint + + + + + + Retrieves the related actor of a crossing event. + + + the related #ClutterActor, or %NULL + + + + + a #ClutterEvent of type %CLUTTER_ENTER or of + type %CLUTTER_LEAVE + + + + + + Retrieves the precise scrolling information of @event. + +The @event has to have a #ClutterScrollEvent.direction value +of %CLUTTER_SCROLL_SMOOTH. + + + + + + + a #ClutterEvent of type %CLUTTER_SCROLL + + + + return location for the delta on the horizontal axis + + + + return location for the delta on the vertical axis + + + + + + Retrieves the direction of the scrolling of @event + + + the scrolling direction + + + + + a #ClutterEvent of type %CLUTTER_SCROLL + + + + + + Returns the #ClutterScrollFinishFlags of an scroll event. Those +can be used to determine whether post-scroll effects like kinetic +scrolling should be applied. + + + The scroll finish flags + + + + + an scroll event + + + + + + Returns the #ClutterScrollSource that applies to an scroll event. + + + The source of scroll events + + + + + an scroll event + + + + + + Retrieves the source #ClutterActor the event originated from, or +NULL if the event has no source. + + + a #ClutterActor + + + + + a #ClutterEvent + + + + + + Retrieves the hardware device that originated the event. + +If you need the virtual device, use clutter_event_get_device(). + +If no hardware device originated this event, this function will +return the same device as clutter_event_get_device(). + + + a pointer to a #ClutterInputDevice + or %NULL + + + + + a #ClutterEvent + + + + + + Retrieves the source #ClutterStage the event originated for, or +%NULL if the event has no stage. + + + a #ClutterStage + + + + + a #ClutterEvent + + + + + + Retrieves the modifier state of the event. In case the window system +supports reporting latched and locked modifiers, this function returns +the effective state. + + + the modifier state parameter, or 0 + + + + + a #ClutterEvent + + + + + + Retrieves the decomposition of the keyboard state into button, base, +latched, locked and effective. This can be used to transmit to other +applications, for example when implementing a wayland compositor. + + + + + + + a #ClutterEvent + + + + the pressed buttons as a mask + + + + the regular pressed modifier keys + + + + the latched modifier keys (currently released but still valid for one key press/release) + + + + the locked modifier keys (valid until the lock key is pressed and released again) + + + + the logical OR of all the state bits above + + + + + + Retrieves the time of the event. + + + the time of the event, or %CLUTTER_CURRENT_TIME + + + + + a #ClutterEvent + + + + + + Returns the number of fingers that is triggering the touchpad gesture. + + + the number of fingers in the gesture. + + + + + a touchpad swipe/pinch event + + + + + + Checks whether @event has the Control modifier mask set. + + + %TRUE if the event has the Control modifier mask set + + + + + a #ClutterEvent + + + + + + Checks whether @event has the Shift modifier mask set. + + + %TRUE if the event has the Shift modifier mask set + + + + + a #ClutterEvent + + + + + + Checks whether a pointer @event has been generated by the windowing +system. The returned value can be used to distinguish between events +synthesized by the windowing system itself (as opposed by Clutter). + + + %TRUE if the event is pointer emulated + + + + + a #ClutterEvent + + + + + + Puts a copy of the event on the back of the event queue. The event will +have the %CLUTTER_EVENT_FLAG_SYNTHETIC flag set. If the source is set +event signals will be emitted for this source and capture/bubbling for +its ancestors. If the source is not set it will be generated by picking +or use the actor that currently has keyboard focus + + + + + + + a #ClutterEvent + + + + + + Sets the button number of @event + + + + + + + a #ClutterEvent or type %CLUTTER_BUTTON_PRESS or + of type %CLUTTER_BUTTON_RELEASE + + + + the button number + + + + + + Sets the coordinates of the @event. + + + + + + + a #ClutterEvent + + + + the X coordinate of the event + + + + the Y coordinate of the event + + + + + + Sets the device for @event. + + + + + + + a #ClutterEvent + + + + a #ClutterInputDevice, or %NULL + + + + + + Sets the tool in use for this event + + + + + + + a #ClutterEvent + + + + a #ClutterInputDeviceTool + + + + + + Sets the #ClutterEventFlags of @event + + + + + + + a #ClutterEvent + + + + a binary OR of #ClutterEventFlags values + + + + + + Sets the keycode of the @event. + + + + + + + a #ClutterEvent of type %CLUTTER_KEY_PRESS + or %CLUTTER_KEY_RELEASE + + + + the keycode representing the key + + + + + + Sets the key symbol of @event. + + + + + + + a #ClutterEvent of type %CLUTTER_KEY_PRESS + or %CLUTTER_KEY_RELEASE + + + + the key symbol representing the key + + + + + + Sets the Unicode value of @event. + + + + + + + a #ClutterEvent of type %CLUTTER_KEY_PRESS + or %CLUTTER_KEY_RELEASE + + + + the Unicode value representing the key + + + + + + Sets the related actor of a crossing event + + + + + + + a #ClutterEvent of type %CLUTTER_ENTER or %CLUTTER_LEAVE + + + + a #ClutterActor or %NULL + + + + + + Sets the precise scrolling information of @event. + + + + + + + a #ClutterEvent of type %CLUTTER_SCROLL + + + + delta on the horizontal axis + + + + delta on the vertical axis + + + + + + Sets the direction of the scrolling of @event + + + + + + + a #ClutterEvent + + + + the scrolling direction + + + + + + Sets the source #ClutterActor of @event. + + + + + + + a #ClutterEvent + + + + a #ClutterActor, or %NULL + + + + + + Sets the source #ClutterInputDevice for @event. + +The #ClutterEvent must have been created using clutter_event_new(). + + + + + + + a #ClutterEvent + + + + a #ClutterInputDevice + + + + + + Sets the source #ClutterStage of the event. + + + + + + + a #ClutterEvent + + + + a #ClutterStage, or %NULL + + + + + + Sets the modifier state of the event. + + + + + + + a #ClutterEvent + + + + the modifier state to set + + + + + + Sets the time of the event. + + + + + + + a #ClutterEvent + + + + the time of the event + + + + + + Retrieves the type of the event. + + + a #ClutterEventType + + + + + a #ClutterEvent + + + + + + Adds a function which will be called for all events that Clutter +processes. The function will be called before any signals are +emitted for the event and it will take precedence over any grabs. + + + an identifier for the event filter, to be used + with clutter_event_remove_filter(). + + + + + The #ClutterStage to capture events for + + + + The callback function which will be passed all events. + + + + A #GDestroyNotify + + + + A data pointer to pass to the function. + + + + + + Pops an event off the event queue. Applications should not need to call +this. + + + A #ClutterEvent or NULL if queue empty + + + + + Returns a pointer to the first event from the event queue but +does not remove it. + + + A #ClutterEvent or NULL if queue empty. + + + + + Removes an event filter that was previously added with +clutter_event_add_filter(). + + + + + + + The ID of the event filter, as returned from clutter_event_add_filter() + + + + + + + A function pointer type used by event filters that are added with +clutter_event_add_filter(). + + + %CLUTTER_EVENT_STOP to indicate that the event + has been handled or %CLUTTER_EVENT_PROPAGATE otherwise. + Returning %CLUTTER_EVENT_STOP skips any further filter + functions and prevents the signal emission for the event. + + + + + the event that is going to be emitted + + + + the data pointer passed to clutter_event_add_filter() + + + + + + Flags for the #ClutterEvent + + No flag set + + + Synthetic event + + + + + Auto-repeated event + + + + The #ClutterEventSequence structure is an opaque +type used to denote the event sequence of a touch event. + + + + Types of events. + + Empty event + + + Key press event + + + Key release event + + + Pointer motion event + + + Actor enter event + + + Actor leave event + + + Pointer button press event + + + Pointer button release event + + + Pointer scroll event + + + Stage state change event + + + Destroy notification event + + + Client message event + + + Stage delete event + + + A new touch event sequence has started; + event added in 1.10 + + + A touch event sequence has been updated; + event added in 1.10 + + + A touch event sequence has finished; + event added in 1.10 + + + A touch event sequence has been canceled; + event added in 1.10 + + + A pinch gesture event, the current state is + determined by its phase field; event added in 1.24 + + + A swipe gesture event, the current state is + determined by its phase field; event added in 1.24 + + + A tool entered in proximity to a tablet; + event added in 1.28 + + + A tool left from the proximity area of a tablet; + event added in 1.28 + + + + + + + + + + + Marks the end of the #ClutterEventType enumeration; + added in 1.10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GL Windowing system used + The macro evaluates to "deprecated" as Clutter can be + compiled with multiple windowing system backends. Use the various + CLUTTER_WINDOWING_* macros to detect the windowing system that Clutter + is being compiled against, and the type check macros for the + #ClutterBackend for a run-time check. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Runtime flags indicating specific features available via Clutter window +system and graphics backend. + + Set if NPOTS textures supported. + + + Set if backend throttles buffer swaps. + + + Set if YUV based textures supported. + + + Set if texture pixels can be read. + + + Set if stage size if fixed (i.e framebuffer) + + + Set if stage is able to be user resized. + + + Set if stage has a graphical cursor. + + + Set if the backend supports GLSL shaders. + + + Set if the backend supports offscreen rendering. + + + Set if multiple stages are supported. + + + Set if the GLX_INTEL_swap_event is supported. + + + + + + + + + + + + + + + + The #ClutterFixedLayout structure contains only private data and +it should be accessed using the provided API + + + Creates a new #ClutterFixedLayout + + + the newly created #ClutterFixedLayout + + + + + + + + + The #ClutterFixedLayoutClass structure contains only private data +and it should be accessed using the provided API + + + + + + + The #ClutterFlowLayout structure contains only private data +and should be accessed using the provided API + + + Creates a new #ClutterFlowLayout with the given @orientation + + + the newly created #ClutterFlowLayout + + + + + the orientation of the flow layout + + + + + + Retrieves the spacing between columns + + + the spacing between columns of the #ClutterFlowLayout, + in pixels + + + + + a #ClutterFlowLayout + + + + + + Retrieves the minimum and maximum column widths + + + + + + + a #ClutterFlowLayout + + + + return location for the minimum column width, or %NULL + + + + return location for the maximum column width, or %NULL + + + + + + Retrieves whether the @layout is homogeneous + + + %TRUE if the #ClutterFlowLayout is homogeneous + + + + + a #ClutterFlowLayout + + + + + + Retrieves the orientation of the @layout + + + the orientation of the #ClutterFlowLayout + + + + + a #ClutterFlowLayout + + + + + + Retrieves the minimum and maximum row heights + + + + + + + a #ClutterFlowLayout + + + + return location for the minimum row height, or %NULL + + + + return location for the maximum row height, or %NULL + + + + + + Retrieves the spacing between rows + + + the spacing between rows of the #ClutterFlowLayout, + in pixels + + + + + a #ClutterFlowLayout + + + + + + Retrieves the value of #ClutterFlowLayout:snap-to-grid property + + + %TRUE if the @layout is placing its children on a grid + + + + + a #ClutterFlowLayout + + + + + + Sets the space between columns, in pixels + + + + + + + a #ClutterFlowLayout + + + + the space between columns + + + + + + Sets the minimum and maximum widths that a column can have + + + + + + + a #ClutterFlowLayout + + + + minimum width of a column + + + + maximum width of a column + + + + + + Sets whether the @layout should allocate the same space for +each child + + + + + + + a #ClutterFlowLayout + + + + whether the layout should be homogeneous or not + + + + + + Sets the orientation of the flow layout + +The orientation controls the direction used to allocate +the children: either horizontally or vertically. The +orientation also controls the direction of the overflowing + + + + + + + a #ClutterFlowLayout + + + + the orientation of the layout + + + + + + Sets the minimum and maximum heights that a row can have + + + + + + + a #ClutterFlowLayout + + + + the minimum height of a row + + + + the maximum height of a row + + + + + + Sets the spacing between rows, in pixels + + + + + + + a #ClutterFlowLayout + + + + the space between rows + + + + + + Whether the @layout should place its children on a grid. + + + + + + + a #ClutterFlowLayout + + + + %TRUE if @layout should place its children on a grid + + + + + + The spacing between columns, in pixels; the value of this +property is honoured by horizontal non-overflowing layouts +and by vertical overflowing layouts + + + + Whether each child inside the #ClutterFlowLayout should receive +the same allocation + + + + Maximum width for each column in the layout, in pixels. If +set to -1 the width will be the maximum child width + + + + Maximum height for each row in the layout, in pixels. If +set to -1 the width will be the maximum child height + + + + Minimum width for each column in the layout, in pixels + + + + Minimum height for each row in the layout, in pixels + + + + The orientation of the #ClutterFlowLayout. The children +of the layout will be layed out following the orientation. + +This property also controls the overflowing directions + + + + The spacing between rows, in pixels; the value of this +property is honoured by vertical non-overflowing layouts and +by horizontal overflowing layouts + + + + Whether the #ClutterFlowLayout should arrange its children +on a grid + + + + + + + + + + + The #ClutterFlowLayoutClass structure contains only private data +and should be accessed using the provided API + + + + + + + + + + The direction of the arrangement of the children inside +a #ClutterFlowLayout + + Arrange the children of the flow layout + horizontally first + + + Arrange the children of the flow layout + vertically first + + + + Fog settings used to create the depth cueing effect. + The fog-related API in #ClutterStage has been + deprecated as well. + + + starting distance from the viewer to the near clipping + plane (always positive) + + + + final distance from the viewer to the far clipping + plane (always positive) + + + + + Runtime flags to change the font quality. To be used with +clutter_set_font_flags(). + Use #cairo_font_options_t instead + + Set to use mipmaps for the glyph cache textures. + + + Set to enable hinting on the glyphs. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The rectangle containing an actor's bounding box, measured in pixels. + +You should not use #ClutterGeometry, or operate on its fields +directly; you should use #cairo_rectangle_int_t or #ClutterRect if you +need a rectangle type, depending on the precision required. + + + X coordinate of the top left corner of an actor + + + + Y coordinate of the top left corner of an actor + + + + width of an actor + + + + height of an actor + + + + Determines if @geometry0 and geometry1 intersect returning %TRUE if +they do else %FALSE. + Use #ClutterRect and clutter_rect_intersection() + + + %TRUE of @geometry0 and geometry1 intersect else +%FALSE. + + + + + The first geometry to test + + + + The second geometry to test + + + + + + Find the union of two rectangles represented as #ClutterGeometry. + Use #ClutterRect and clutter_rect_union() + + + + + + + a #ClutterGeometry + + + + another #ClutterGeometry + + + + location to store the result + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterGestureAction structure contains +only private data and should be accessed using the provided API + + + Creates a new #ClutterGestureAction instance. + + + the newly created #ClutterGestureAction + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Cancel a #ClutterGestureAction before it begins + + + + + + + a #ClutterGestureAction + + + + + + Retrieves the #ClutterInputDevice of a touch point. + + + the #ClutterInputDevice of a touch point. + + + + + a #ClutterGestureAction + + + + the touch point index, with 0 being the first touch + point received by the action + + + + + + Retrieves a reference to the last #ClutterEvent for a touch point. Call +clutter_event_copy() if you need to store the reference somewhere. + + + the last #ClutterEvent for a touch point. + + + + + a #ClutterGestureAction + + + + index of a point currently active + + + + + + Retrieves the coordinates, in stage space, of the latest motion +event during the dragging. + + + + + + + a #ClutterGestureAction + + + + the touch point index, with 0 being the first touch + point received by the action + + + + return location for the latest motion + event's X coordinate + + + + return location for the latest motion + event's Y coordinate + + + + + + Retrieves the incremental delta since the last motion event +during the dragging. + + + the distance since last motion event + + + + + a #ClutterGestureAction + + + + the touch point index, with 0 being the first touch + point received by the action + + + + return location for the X axis + component of the incremental motion delta + + + + return location for the Y axis + component of the incremental motion delta + + + + + + Retrieves the number of points currently active. + + + the number of points currently active. + + + + + a #ClutterGestureAction + + + + + + Retrieves the number of requested points to trigger the gesture. + + + the number of points to trigger the gesture. + + + + + a #ClutterGestureAction + + + + + + Retrieves the coordinates, in stage space, of the press event +that started the dragging for a specific touch point. + + + + + + + a #ClutterGestureAction + + + + the touch point index, with 0 being the first touch + point received by the action + + + + return location for the press + event's X coordinate + + + + return location for the press + event's Y coordinate + + + + + + Retrieves the coordinates, in stage space, where the touch point was +last released. + + + + + + + a #ClutterGestureAction + + + + the touch point index, with 0 being the first touch + point received by the action + + + + return location for the X coordinate of + the last release + + + + return location for the Y coordinate of + the last release + + + + + + Retrieves the #ClutterEventSequence of a touch point. + + + the #ClutterEventSequence of a touch point. + + + + + a #ClutterGestureAction + + + + index of a point currently active + + + + + + Retrieves the threshold trigger distance of the gesture @action, +as set using clutter_gesture_action_set_threshold_trigger_distance(). + + + + + + + a #ClutterGestureAction + + + + The return location for the horizontal distance, or %NULL + + + + The return location for the vertical distance, or %NULL + + + + + + Retrieves the edge trigger of the gesture @action, as set using +clutter_gesture_action_set_threshold_trigger_edge(). + + + the edge trigger + + + + + a #ClutterGestureAction + + + + + + Retrieves the edge trigger of the gesture @action, as set using +clutter_gesture_action_set_threshold_trigger_edge(). + Use clutter_gesture_action_get_threshold_trigger_edge() instead. + + + the edge trigger + + + + + a #ClutterGestureAction + + + + + + Retrieves the velocity, in stage pixels per millisecond, of the +latest motion event during the dragging. + + + + + + + a #ClutterGestureAction + + + + the touch point index, with 0 being the first touch + point received by the action + + + + return location for the latest motion + event's X velocity + + + + return location for the latest motion + event's Y velocity + + + + + + Sets the number of points needed to trigger the gesture. + + + + + + + a #ClutterGestureAction + + + + a number of points + + + + + + Sets the threshold trigger distance for the gesture drag threshold, if any. + +This function should only be called by sub-classes of +#ClutterGestureAction during their construction phase. + + + + + + + a #ClutterGestureAction + + + + the distance on the horizontal axis + + + + the distance on the vertical axis + + + + + + Sets the edge trigger for the gesture drag threshold, if any. + +This function should only be called by sub-classes of +#ClutterGestureAction during their construction phase. + + + + + + + a #ClutterGestureAction + + + + the %ClutterGestureTriggerEdge + + + + + + Number of touch points to trigger a gesture action. + + + + The horizontal trigger distance to be used by the action to either +emit the #ClutterGestureAction::gesture-begin signal or to emit +the #ClutterGestureAction::gesture-cancel signal. + +A negative value will be interpreted as the default drag threshold. + + + + The vertical trigger distance to be used by the action to either +emit the #ClutterGestureAction::gesture-begin signal or to emit +the #ClutterGestureAction::gesture-cancel signal. + +A negative value will be interpreted as the default drag threshold. + + + + The trigger edge to be used by the action to either emit the +#ClutterGestureAction::gesture-begin signal or to emit the +#ClutterGestureAction::gesture-cancel signal. + + + + + + + + + + The ::gesture_begin signal is emitted when the #ClutterActor to which +a #ClutterGestureAction has been applied starts receiving a gesture. + + %TRUE if the gesture should start, and %FALSE if + the gesture should be ignored. + + + + + the #ClutterActor attached to the @action + + + + + + The ::gesture-cancel signal is emitted when the ongoing gesture gets +cancelled from the #ClutterGestureAction::gesture-progress signal handler. + +This signal is emitted if and only if the #ClutterGestureAction::gesture-begin +signal has been emitted first. + + + + + + the #ClutterActor attached to the @action + + + + + + The ::gesture-end signal is emitted at the end of the gesture gesture, +when the pointer's button is released + +This signal is emitted if and only if the #ClutterGestureAction::gesture-begin +signal has been emitted first. + + + + + + the #ClutterActor attached to the @action + + + + + + The ::gesture-progress signal is emitted for each motion event after +the #ClutterGestureAction::gesture-begin signal has been emitted. + + %TRUE if the gesture should continue, and %FALSE if + the gesture should be cancelled. + + + + + the #ClutterActor attached to the @action + + + + + + + The #ClutterGestureClass structure contains only +private data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Enum passed to the clutter_gesture_action_set_threshold_trigger_edge() +function. + + Tell #ClutterGestureAction that +the gesture must begin immediately and there's no drag limit that +will cause its cancellation; + + + Tell #ClutterGestureAction that +it needs to wait until the drag threshold has been exceeded before +considering that the gesture has begun; + + + Tell #ClutterGestureAction that +the gesture must begin immediately and that it must be cancelled +once the drag exceed the configured threshold. + + + + + + + + Gravity of the scaling operations. When a gravity different than +%CLUTTER_GRAVITY_NONE is used, an actor is scaled keeping the position +of the specified portion at the same coordinates. + Use the normalized #ClutterActor pivot point instead + + Do not apply any gravity + + + Scale from topmost downwards + + + Scale from the top right corner + + + Scale from the right side + + + Scale from the bottom right corner + + + Scale from the bottom upwards + + + Scale from the bottom left corner + + + Scale from the left side + + + Scale from the top left corner + + + Scale from the center. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterGridLayout structure contains only private data +and should be accessed using the provided API + + + Creates a new #ClutterGridLayout + + + the new #ClutterGridLayout + + + + + Adds a widget to the grid. + +The position of @child is determined by @left and @top. The +number of 'cells' that @child will occupy is determined by +@width and @height. + + + + + + + a #ClutterGridLayout + + + + the #ClutterActor to add + + + + the column number to attach the left side of @child to + + + + the row number to attach the top side of @child to + + + + the number of columns that @child will span + + + + the number of rows that @child will span + + + + + + Adds a actor to the grid. + +The actor is placed next to @sibling, on the side determined by +@side. When @sibling is %NULL, the actor is placed in row (for +left or right placement) or column 0 (for top or bottom placement), +at the end indicated by @side. + +Attaching widgets labeled [1], [2], [3] with @sibling == %NULL and +@side == %CLUTTER_GRID_POSITION_LEFT yields a layout of [3][2][1]. + + + + + + + a #ClutterGridLayout + + + + the actor to add + + + + the child of @layout that @child will be placed + next to, or %NULL to place @child at the beginning or end + + + + the side of @sibling that @child is positioned next to + + + + the number of columns that @child will span + + + + the number of rows that @child will span + + + + + + Gets the child of @layout whose area covers the grid +cell whose upper left corner is at @left, @top. + + + the child at the given position, or %NULL + + + + + a #ClutterGridLayout + + + + the left edge of the cell + + + + the top edge of the cell + + + + + + Returns whether all columns of @layout have the same width. + + + whether all columns of @layout have the same width. + + + + + a #ClutterGridLayout + + + + + + Retrieves the spacing set using clutter_grid_layout_set_column_spacing() + + + the spacing between coluns of @layout + + + + + a #ClutterGridLayout + + + + + + Retrieves the orientation of the @layout. + + + the orientation of the layout + + + + + a #ClutterGridLayout + + + + + + Returns whether all rows of @layout have the same height. + + + whether all rows of @layout have the same height. + + + + + a #ClutterGridLayout + + + + + + Retrieves the spacing set using clutter_grid_layout_set_row_spacing() + + + the spacing between rows of @layout + + + + + a #ClutterGridLayout + + + + + + Inserts a column at the specified position. + +Children which are attached at or to the right of this position +are moved one column to the right. Children which span across this +position are grown to span the new column. + + + + + + + a #ClutterGridLayout + + + + the position to insert the column at + + + + + + Inserts a row or column at the specified position. + +The new row or column is placed next to @sibling, on the side +determined by @side. If @side is %CLUTTER_GRID_POSITION_LEFT or +%CLUTTER_GRID_POSITION_BOTTOM, a row is inserted. If @side is +%CLUTTER_GRID_POSITION_LEFT of %CLUTTER_GRID_POSITION_RIGHT, +a column is inserted. + + + + + + + a #ClutterGridLayout + + + + the child of @layout that the new row or column will be + placed next to + + + + the side of @sibling that @child is positioned next to + + + + + + Inserts a row at the specified position. + +Children which are attached at or below this position +are moved one row down. Children which span across this +position are grown to span the new row. + + + + + + + a #ClutterGridLayout + + + + the position to insert the row at + + + + + + Sets whether all columns of @layout will have the same width. + + + + + + + a #ClutterGridLayout + + + + %TRUE to make columns homogeneous + + + + + + Sets the spacing between columns of @layout + + + + + + + a #ClutterGridLayout + + + + the spacing between columns of the layout, in pixels + + + + + + Sets the orientation of the @layout. + +#ClutterGridLayout uses the orientation as a hint when adding +children to the #ClutterActor using it as a layout manager via +clutter_actor_add_child(); changing this value will not have +any effect on children that are already part of the layout. + + + + + + + a #ClutterGridLayout + + + + the orientation of the #ClutterGridLayout + + + + + + Sets whether all rows of @layout will have the same height. + + + + + + + a #ClutterGridLayout + + + + %TRUE to make rows homogeneous + + + + + + Sets the spacing between rows of @layout + + + + + + + a #ClutterGridLayout + + + + the spacing between rows of the layout, in pixels + + + + + + Whether all columns of the layout should have the same width + + + + The amount of space in pixels between two consecutive columns + + + + The orientation of the layout, either horizontal or vertical + + + + Whether all rows of the layout should have the same height + + + + The amount of space in pixels between two consecutive rows + + + + + + + + + + + The #ClutterGridLayoutClass structure contains only private +data and should be accessed using the provided API + + + + + + + + + + + + + + + Grid position modes. + + left position + + + right position + + + top position + + + bottom position + + + + The #ClutterGroup structure contains only private data +and should be accessed using the provided API + + + + + + + Create a new #ClutterGroup. + Use clutter_actor_new() instead. + + + the newly created #ClutterGroup actor + + + + + Gets the number of actors held in the group. + Use clutter_actor_get_n_children() instead. + + + The number of child actors held in the group. + + + + + A #ClutterGroup + + + + + + Gets a groups child held at @index_ in stack. + Use clutter_actor_get_child_at_index() instead. + + + A Clutter actor, or %NULL if + @index_ is invalid. + + + + + A #ClutterGroup + + + + the position of the requested actor. + + + + + + Removes all children actors from the #ClutterGroup. + Use clutter_actor_remove_all_children() instead. + + + + + + + A #ClutterGroup + + + + + + + + + + + + + The #ClutterGroupClass structure contains only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterImage structure contains +private data and should only be accessed using the provided +API. + + + + Creates a new #ClutterImage instance. + + + the newly created #ClutterImage instance. + Use g_object_unref() when done. + + + + + Retrieves a pointer to the Cogl texture used by @image. + +If you change the contents of the returned Cogl texture you will need +to manually invalidate the @image with clutter_content_invalidate() +in order to update the actors using @image as their content. + + + a pointer to the Cogl texture, or %NULL + + + + + a #ClutterImage + + + + + + Sets the image data to be display by @image, using @rect to indicate +the position and size of the image data to be set. + +If the @image does not have any image data set when this function is +called, a new texture will be created with the size of the width and +height of the rectangle, i.e. calling this function on a newly created +#ClutterImage will be the equivalent of calling clutter_image_set_data(). + +If the image data was successfully loaded, the @image will be invalidated. + +In case of error, the @error value will be set, and this function will +return %FALSE. + +The image data is copied in texture memory. + + + %TRUE if the image data was successfully loaded, + and %FALSE otherwise. + + + + + a #ClutterImage + + + + the image data, as an array of bytes + + + + + + the Cogl pixel format of the image data + + + + a rectangle indicating the area that should be set + + + + the length of each row inside @data + + + + + + Sets the image data stored inside a #GBytes to be displayed by @image. + +If the image data was successfully loaded, the @image will be invalidated. + +In case of error, the @error value will be set, and this function will +return %FALSE. + +The image data contained inside the #GBytes is copied in texture memory, +and no additional reference is acquired on the @data. + + + %TRUE if the image data was successfully loaded, + and %FALSE otherwise. + + + + + a #ClutterImage + + + + the image data, as a #GBytes + + + + the Cogl pixel format of the image data + + + + the width of the image data + + + + the height of the image data + + + + the length of each row inside @data + + + + + + Sets the image data to be displayed by @image. + +If the image data was successfully loaded, the @image will be invalidated. + +In case of error, the @error value will be set, and this function will +return %FALSE. + +The image data is copied in texture memory. + +The image data is expected to be a linear array of RGBA or RGB pixel data; +how to retrieve that data is left to platform specific image loaders. For +instance, if you use the GdkPixbuf library: + +|[<!-- language="C" --> + ClutterContent *image = clutter_image_new (); + + GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file (filename, NULL); + + clutter_image_set_data (CLUTTER_IMAGE (image), + gdk_pixbuf_get_pixels (pixbuf), + gdk_pixbuf_get_has_alpha (pixbuf) + ? COGL_PIXEL_FORMAT_RGBA_8888 + : COGL_PIXEL_FORMAT_RGB_888, + gdk_pixbuf_get_width (pixbuf), + gdk_pixbuf_get_height (pixbuf), + gdk_pixbuf_get_rowstride (pixbuf), + &error); + + g_object_unref (pixbuf); +]| + + + %TRUE if the image data was successfully loaded, + and %FALSE otherwise. + + + + + a #ClutterImage + + + + the image data, as an array of bytes + + + + + + the Cogl pixel format of the image data + + + + the width of the image data + + + + the height of the image data + + + + the length of each row inside @data + + + + + + + + + + + + + The #ClutterImageClass structure contains +private data. + + + + + + + + + + + + Error enumeration for #ClutterImage. + + Invalid data passed to the + clutter_image_set_data() function. + + + + + + + + + + + + Error conditions returned by clutter_init() and clutter_init_with_args(). + + Initialisation successful + + + Unknown error + + + Thread initialisation failed + + + Backend initialisation failed + + + Internal error + + + + + + + + + The type of axes Clutter recognizes on a #ClutterInputDevice + + Unused axis + + + The position on the X axis + + + The position of the Y axis + + + The pressure information + + + The tilt on the X axis + + + The tile on the Y axis + + + A wheel + + + Distance (Since 1.12) + + + Rotation along the z-axis (Since 1.28) + + + A slider (Since 1.28) + + + Last value of the enumeration; this value is + useful when iterating over the enumeration values (Since 1.12) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Generic representation of an input device. The actual contents of this +structure depend on the backend used. + + + Retrieves a pointer to the #ClutterInputDevice that has been +associated to @device. + +If the #ClutterInputDevice:device-mode property of @device is +set to %CLUTTER_INPUT_MODE_MASTER, this function will return +%NULL. + + + a #ClutterInputDevice, or %NULL + + + + + a #ClutterInputDevice + + + + + + Retrieves the type of axis on @device at the given index. + + + the axis type + + + + + a #ClutterInputDevice + + + + the index of the axis + + + + + + Extracts the value of the given @axis of a #ClutterInputDevice from +an array of axis values. + +An example of typical usage for this function is: + +|[ + ClutterInputDevice *device = clutter_event_get_device (event); + gdouble *axes = clutter_event_get_axes (event, NULL); + gdouble pressure_value = 0; + + clutter_input_device_get_axis_value (device, axes, + CLUTTER_INPUT_AXIS_PRESSURE, + &pressure_value); +]| + + + %TRUE if the value was set, and %FALSE otherwise + + + + + a #ClutterInputDevice + + + + an array of axes values, typically + coming from clutter_event_get_axes() + + + + + + the axis to extract + + + + return location for the axis value + + + + + + Retrieves the latest coordinates of a pointer or touch point of +@device. + + + %FALSE if the device's sequence hasn't been found, + and %TRUE otherwise. + + + + + a #ClutterInputDevice + + + + a #ClutterEventSequence, or %NULL if + the device is not touch-based + + + + return location for the pointer + or touch point + + + + + + Retrieves the unique identifier of @device + + + the identifier of the device + + + + + a #ClutterInputDevice + + + + + + Retrieves the #ClutterInputMode of @device. + + + the device mode + + + + + a #ClutterInputDevice + + + + + + Retrieves the name of the @device + + + the name of the device, or %NULL. The returned string + is owned by the #ClutterInputDevice and should never be modified + or freed + + + + + a #ClutterInputDevice + + + + + + + + + + + + + + + + + Retrieves the type of @device + + + the type of the device + + + + + a #ClutterInputDevice + + + + + + Retrieves whether @device is enabled. + + + %TRUE if the device is enabled + + + + + a #ClutterInputDevice + + + + + + Retrieves a pointer to the #ClutterActor currently grabbing all +the events coming from @device. + + + a #ClutterActor, or %NULL + + + + + a #ClutterInputDevice + + + + + + + + + + + + + + + + + + + + Retrieves whether @device has a pointer that follows the +device motion. + + + %TRUE if the device has a cursor + + + + + a #ClutterInputDevice + + + + + + Retrieves the key set using clutter_input_device_set_key() + + + %TRUE if a key was set at the given index + + + + + a #ClutterInputDevice + + + + the index of the key + + + + return location for the keyval at @index_ + + + + return location for the modifiers at @index_ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Retrieves the current modifiers state of the device, as seen +by the last event Clutter processed. + + + the last known modifier state + + + + + a #ClutterInputDevice + + + + + + Retrieves the number of axes available on @device. + + + the number of axes on the device + + + + + a #ClutterInputDevice + + + + + + Retrieves the number of keys registered for @device. + + + the number of registered keys + + + + + a #ClutterInputDevice + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Retrieves the #ClutterActor underneath the pointer of @device + + + a pointer to the #ClutterActor or %NULL + + + + + a #ClutterInputDevice of type %CLUTTER_POINTER_DEVICE + + + + + + Retrieves the #ClutterStage underneath the pointer of @device + + + a pointer to the #ClutterStage or %NULL + + + + + a #ClutterInputDevice of type %CLUTTER_POINTER_DEVICE + + + + + + Gets the product ID of this device. + + + the product ID + + + + + a slave #ClutterInputDevice + + + + + + Retrieves the slave devices attached to @device. + + + a + list of #ClutterInputDevice, or %NULL. The contents of the list are + owned by the device. Use g_list_free() when done + + + + + + + a #ClutterInputDevice + + + + + + Gets the vendor ID of this device. + + + the vendor ID + + + + + a slave #ClutterInputDevice + + + + + + Acquires a grab on @actor for the given @device. + +Any event coming from @device will be delivered to @actor, bypassing +the usual event delivery mechanism, until the grab is released by +calling clutter_input_device_ungrab(). + +The grab is client-side: even if the windowing system used by the Clutter +backend has the concept of "device grabs", Clutter will not use them. + +Only #ClutterInputDevice of types %CLUTTER_POINTER_DEVICE and +%CLUTTER_KEYBOARD_DEVICE can hold a grab. + + + + + + + a #ClutterInputDevice + + + + a #ClutterActor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Translates a hardware keycode from a #ClutterKeyEvent to the +equivalent evdev keycode. Note that depending on the input backend +used by Clutter this function can fail if there is no obvious +mapping between the key codes. The hardware keycode can be taken +from the #ClutterKeyEvent.hardware_keycode member of #ClutterKeyEvent. + + + %TRUE if the conversion succeeded, %FALSE otherwise. + + + + + A #ClutterInputDevice + + + + The hardware keycode from a #ClutterKeyEvent + + + + The return location for the evdev keycode + + + + + + Retrieves a pointer to the #ClutterActor currently grabbing the +touch events coming from @device given the @sequence. + + + a #ClutterActor, or %NULL + + + + + a #ClutterInputDevice + + + + a #ClutterEventSequence + + + + + + Acquires a grab on @actor for the given @device and the given touch +@sequence. + +Any touch event coming from @device and from @sequence will be +delivered to @actor, bypassing the usual event delivery mechanism, +until the grab is released by calling +clutter_input_device_sequence_ungrab(). + +The grab is client-side: even if the windowing system used by the Clutter +backend has the concept of "device grabs", Clutter will not use them. + + + + + + + a #ClutterInputDevice + + + + a #ClutterEventSequence + + + + a #ClutterActor + + + + + + Releases the grab on the @device for the given @sequence, if one is +in place. + + + + + + + a #ClutterInputDevice + + + + a #ClutterEventSequence + + + + + + Enables or disables a #ClutterInputDevice. + +Only devices with a #ClutterInputDevice:device-mode property set +to %CLUTTER_INPUT_MODE_SLAVE or %CLUTTER_INPUT_MODE_FLOATING can +be disabled. + + + + + + + a #ClutterInputDevice + + + + %TRUE to enable the @device + + + + + + Sets the keyval and modifiers at the given @index_ for @device. + +Clutter will use the keyval and modifiers set when filling out +an event coming from the same input device. + + + + + + + a #ClutterInputDevice + + + + the index of the key + + + + the keyval + + + + a bitmask of modifiers + + + + + + + + + + + + + + + + + + + + Releases the grab on the @device, if one is in place. + + + + + + + a #ClutterInputDevice + + + + + + Forcibly updates the state of the @device using a #ClutterEvent + +This function should never be used by applications: it is meant +for integration with embedding toolkits, like clutter-gtk + +Embedding toolkits that disable the event collection inside Clutter +need to use this function to update the state of input devices depending +on a #ClutterEvent that they are going to submit to the event handling code +in Clutter though clutter_do_event(). Since the input devices hold the state +that is going to be used to fill in fields like the #ClutterButtonEvent +click count, or to emit synthesized events like %CLUTTER_ENTER and +%CLUTTER_LEAVE, it is necessary for embedding toolkits to also be +responsible of updating the input device state. + +For instance, this might be the code to translate an embedding toolkit +native motion notification into a Clutter #ClutterMotionEvent and ask +Clutter to process it: + +|[ + ClutterEvent c_event; + + translate_native_event_to_clutter (native_event, &c_event); + + clutter_do_event (&c_event); +]| + +Before letting clutter_do_event() process the event, it is necessary to call +clutter_input_device_update_from_event(): + +|[ + ClutterEvent c_event; + ClutterDeviceManager *manager; + ClutterInputDevice *device; + + translate_native_event_to_clutter (native_event, &c_event); + + // get the device manager + manager = clutter_device_manager_get_default (); + + // use the default Core Pointer that Clutter backends register by default + device = clutter_device_manager_get_core_device (manager, %CLUTTER_POINTER_DEVICE); + + // update the state of the input device + clutter_input_device_update_from_event (device, &c_event, FALSE); + + clutter_do_event (&c_event); +]| + +The @update_stage boolean argument should be used when the input device +enters and leaves a #ClutterStage; it will use the #ClutterStage field +of the passed @event to update the stage associated to the input device. + + + + + + + a #ClutterInputDevice + + + + a #ClutterEvent + + + + whether to update the #ClutterStage of the @device + using the stage of the event + + + + + + The #ClutterBackend that created the device. + + + + The #ClutterDeviceManager instance which owns the device + + + + + + + + + + The type of the device + + + + Whether the device is enabled. + +A device with the #ClutterInputDevice:device-mode property set +to %CLUTTER_INPUT_MODE_MASTER cannot be disabled. + +A device must be enabled in order to receive events from it. + + + + Whether the device has an on screen cursor following its movement. + + + + The unique identifier of the device + + + + + + + The number of axes of the device. + + + + + + + + + + + + + The name of the device + + + + Product ID of this device. + + + + Vendor ID of this device. + + + + + + + + + + + + + + + + + + + + + + Gets the ID of this tool, this value can be used to identify a +physical tool (eg. a tablet pen) across program executions. + + + The tool ID for this tool + + + + + a #ClutterInputDeviceTool + + + + + + Gets the serial of this tool, this value can be used to identify a +physical tool (eg. a tablet pen) across program executions. + + + The serial ID for this tool + + + + + a #ClutterInputDeviceTool + + + + + + Gets the tool type of this tool. + + + The tool type of this tool + + + + + a #ClutterInputDeviceTool + + + + + + + + + + + + + + + + + + + + + + + + + Defines the type of tool that a #ClutterInputDeviceTool represents. + + No tool + + + The tool is a pen + + + The tool is an eraser + + + The tool is a brush + + + The tool is a pencil + + + The tool is an airbrush + + + The tool is a mouse + + + The tool is a lens + + + + The types of input devices available. + +The #ClutterInputDeviceType enumeration can be extended at later +date; not every platform supports every input device type. + + A pointer device + + + A keyboard device + + + A generic extension device + + + A joystick device + + + A tablet device + + + A touchpad device + + + A touch screen device + + + A pen device + + + An eraser device + + + A cursor device + + + A tablet pad + + + The number of device types + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sets the preedit text on the current input focus. + + + + + + + a #ClutterInputMethod + + + + the preedit text, or %NULL + + + + the cursor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The mode for input devices available. + + A master, virtual device + + + A slave, physical device, attached to + a master device + + + A slave, physical device, not attached + to a master device + + + + + + + + + + + + + + + + The mode of interpolation between key frames + + linear interpolation + + + cubic interpolation + + + + The #ClutterInterval structure contains only private data and should +be accessed using the provided functions. + + + + Creates a new #ClutterInterval holding values of type @gtype. + +This function avoids using a #GValue for the initial and final values +of the interval: + +|[ + interval = clutter_interval_new (G_TYPE_FLOAT, 0.0, 1.0); + interval = clutter_interval_new (G_TYPE_BOOLEAN, FALSE, TRUE); + interval = clutter_interval_new (G_TYPE_INT, 0, 360); +]| + + + the newly created #ClutterInterval + + + + + the type of the values in the interval + + + + the initial value and the final value of the interval + + + + + + Creates a new #ClutterInterval of type @gtype, between @initial +and @final. + +This function is useful for language bindings. + + + the newly created #ClutterInterval + + + + + the type of the values in the interval + + + + a #GValue holding the initial value of the interval + + + + a #GValue holding the final value of the interval + + + + + + Sets the progress function for a given @value_type, like: + +|[ + clutter_interval_register_progress_func (MY_TYPE_FOO, + my_foo_progress); +]| + +Whenever a #ClutterInterval instance using the default +#ClutterInterval::compute_value implementation is set as an +interval between two #GValue of type @value_type, it will call +@func to establish the value depending on the given progress, +for instance: + +|[ + static gboolean + my_int_progress (const GValue *a, + const GValue *b, + gdouble progress, + GValue *retval) + { + gint ia = g_value_get_int (a); + gint ib = g_value_get_int (b); + gint res = factor * (ib - ia) + ia; + + g_value_set_int (retval, res); + + return TRUE; + } + + clutter_interval_register_progress_func (G_TYPE_INT, my_int_progress); +]| + +To unset a previously set progress function of a #GType, pass %NULL +for @func. + + + + + + + a #GType + + + + a #ClutterProgressFunc, or %NULL to unset a previously + set progress function + + + + + + Computes the value between the @interval boundaries given the +progress @factor and copies it into @value. + + + %TRUE if the operation was successful + + + + + a #ClutterInterval + + + + the progress factor, between 0 and 1 + + + + return location for an initialized #GValue + + + + + + Validates the initial and final values of @interval against +a #GParamSpec. + + + %TRUE if the #ClutterInterval is valid, %FALSE otherwise + + + + + a #ClutterInterval + + + + a #GParamSpec + + + + + + Creates a copy of @interval. + + + the newly created #ClutterInterval + + + + + a #ClutterInterval + + + + + + Computes the value between the @interval boundaries given the +progress @factor + +Unlike clutter_interval_compute_value(), this function will +return a const pointer to the computed value + +You should use this function if you immediately pass the computed +value to another function that makes a copy of it, like +g_object_set_property() + + + a pointer to the computed value, + or %NULL if the computation was not successfull + + + + + a #ClutterInterval + + + + the progress factor, between 0 and 1 + + + + + + Computes the value between the @interval boundaries given the +progress @factor and copies it into @value. + + + %TRUE if the operation was successful + + + + + a #ClutterInterval + + + + the progress factor, between 0 and 1 + + + + return location for an initialized #GValue + + + + + + Retrieves the final value of @interval and copies +it into @value. + +The passed #GValue must be initialized to the value held by +the #ClutterInterval. + + + + + + + a #ClutterInterval + + + + a #GValue + + + + + + Retrieves the initial value of @interval and copies +it into @value. + +The passed #GValue must be initialized to the value held by +the #ClutterInterval. + + + + + + + a #ClutterInterval + + + + a #GValue + + + + + + Variable arguments wrapper for clutter_interval_get_initial_value() +and clutter_interval_get_final_value() that avoids using the +#GValue arguments: + +|[ + gint a = 0, b = 0; + clutter_interval_get_interval (interval, &a, &b); +]| + +This function is meant for the convenience of the C API; bindings +should reimplement this function using the #GValue-based API. + + + + + + + a #ClutterInterval + + + + return locations for the initial and final values of + the interval + + + + + + Retrieves the #GType of the values inside @interval. + + + the type of the value, or G_TYPE_INVALID + + + + + a #ClutterInterval + + + + + + Checks if the @interval has a valid initial and final values. + + + %TRUE if the #ClutterInterval has an initial and + final values, and %FALSE otherwise + + + + + a #ClutterInterval + + + + + + Gets the pointer to the final value of @interval + + + the final value of the interval. + The value is owned by the #ClutterInterval and it should not be + modified or freed + + + + + a #ClutterInterval + + + + + + Gets the pointer to the initial value of @interval + + + the initial value of the interval. + The value is owned by the #ClutterInterval and it should not be + modified or freed + + + + + a #ClutterInterval + + + + + + Variadic arguments version of clutter_interval_set_final_value(). + +This function is meant as a convenience for the C API. + +Language bindings should use clutter_interval_set_final_value() instead. + + + + + + + a #ClutterInterval + + + + the final value of the interval + + + + + + Sets the final value of @interval to @value. The value is +copied inside the #ClutterInterval. + + + + + + + a #ClutterInterval + + + + a #GValue + + + + + + Variadic arguments version of clutter_interval_set_initial_value(). + +This function is meant as a convenience for the C API. + +Language bindings should use clutter_interval_set_initial_value() +instead. + + + + + + + a #ClutterInterval + + + + the initial value of the interval. + + + + + + Sets the initial value of @interval to @value. The value is copied +inside the #ClutterInterval. + + + + + + + a #ClutterInterval + + + + a #GValue + + + + + + Variable arguments wrapper for clutter_interval_set_initial_value() +and clutter_interval_set_final_value() that avoids using the +#GValue arguments: + +|[ + clutter_interval_set_interval (interval, 0, 50); + clutter_interval_set_interval (interval, 1.0, 0.0); + clutter_interval_set_interval (interval, FALSE, TRUE); +]| + +This function is meant for the convenience of the C API; bindings +should reimplement this function using the #GValue-based API. + + + + + + + a #ClutterInterval + + + + the initial and final values of the interval + + + + + + Validates the initial and final values of @interval against +a #GParamSpec. + + + %TRUE if the #ClutterInterval is valid, %FALSE otherwise + + + + + a #ClutterInterval + + + + a #GParamSpec + + + + + + The final value of the interval. + + + + The initial value of the interval. + + + + The type of the values in the interval. + + + + + + + + + + + The #ClutterIntervalClass contains only private data. + + + + + + + + + %TRUE if the #ClutterInterval is valid, %FALSE otherwise + + + + + a #ClutterInterval + + + + a #GParamSpec + + + + + + + + + + %TRUE if the operation was successful + + + + + a #ClutterInterval + + + + the progress factor, between 0 and 1 + + + + return location for an initialized #GValue + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterKbdA11ySettings structure contains keyboard accessibility +settings + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Key event + + + event type + + + + event time + + + + event flags + + + + event source stage + + + + event source actor + + + + key modifiers + + + + raw key value + + + + raw hardware key value + + + + Unicode representation + + + + the device that originated the event. If you want the physical +device the event originated from, use clutter_event_get_source_device() + + + + + + + + + + + Keyboard accessibility features applied to a ClutterInputDevice keyboard. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The `ClutterKeyframeTransition` structure contains only private +data and should be accessed using the provided API. + + + + Creates a new #ClutterKeyframeTransition for @property_name. + + + the newly allocated + #ClutterKeyframeTransition instance. Use g_object_unref() when + done to free its resources. + + + + + the property to animate + + + + + + Removes all key frames from @transition. + + + + + + + a #ClutterKeyframeTransition + + + + + + Retrieves the details of the key frame at @index_ inside @transition. + +The @transition must already have key frames set, and @index_ must be +smaller than the number of key frames. + + + + + + + a #ClutterKeyframeTransition + + + + the index of the key frame + + + + return location for the key, or %NULL + + + + return location for the easing mode, or %NULL + + + + a #GValue initialized with the type of + the values + + + + + + Retrieves the number of key frames inside @transition. + + + the number of key frames + + + + + a #ClutterKeyframeTransition + + + + + + Sets the key frames of the @transition. + +This variadic arguments function is a convenience for C developers; +language bindings should use clutter_keyframe_transition_set_key_frames(), +clutter_keyframe_transition_set_modes(), and +clutter_keyframe_transition_set_values() instead. + + + + + + + a #ClutterKeyframeTransition + + + + the type of the values to use for the key frames + + + + the number of key frames between the initial + and final values + + + + a list of tuples, containing the key frame index, the value + at the key frame, and the animation mode + + + + + + Sets the details of the key frame at @index_ inside @transition. + +The @transition must already have a key frame at @index_, and @index_ +must be smaller than the number of key frames inside @transition. + + + + + + + a #ClutterKeyframeTransition + + + + the index of the key frame + + + + the key of the key frame + + + + the easing mode of the key frame + + + + a #GValue containing the value of the key frame + + + + + + Sets the keys for each key frame inside @transition. + +If @transition does not hold any key frame, @n_key_frames key frames +will be created; if @transition already has key frames, @key_frames must +have at least as many elements as the number of key frames. + + + + + + + a #ClutterKeyframeTransition + + + + the number of values + + + + an array of keys between 0.0 + and 1.0, one for each key frame + + + + + + + + Sets the easing modes for each key frame inside @transition. + +If @transition does not hold any key frame, @n_modes key frames will +be created; if @transition already has key frames, @modes must have +at least as many elements as the number of key frames. + + + + + + + a #ClutterKeyframeTransition + + + + the number of easing modes + + + + an array of easing modes, one for + each key frame + + + + + + + + Sets the values for each key frame inside @transition. + +If @transition does not hold any key frame, @n_values key frames will +be created; if @transition already has key frames, @values must have +at least as many elements as the number of key frames. + + + + + + + a #ClutterKeyframeTransition + + + + the number of values + + + + an array of values, one for each + key frame + + + + + + + + + + + + + + + The `ClutterKeyframeTransitionClass` structure contains only +private data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Point in a path behaviour. + + + X coordinate of the knot + + + + Y coordinate of the knot + + + + Makes an allocated copy of a knot. + + + the copied knot. + + + + + a #ClutterKnot + + + + + + Compares to knot and checks if the point to the same location. + + + %TRUE if the knots point to the same location. + + + + + First knot + + + + Second knot + + + + + + Frees the memory of an allocated knot. + + + + + + + a #ClutterKnot + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterLayoutManager structure contains only private data +and should be accessed using the provided API + + + Allocates the children of @container given an area + +See also clutter_actor_allocate() + + + + + + + a #ClutterLayoutManager + + + + the #ClutterContainer using @manager + + + + the #ClutterActorBox containing the allocated area + of @container + + + + the allocation flags + + + + + + Begins an animation of @duration milliseconds, using the provided +easing @mode + +The easing mode can be specified either as a #ClutterAnimationMode +or as a logical id returned by clutter_alpha_register_func() + +The result of this function depends on the @manager implementation + + + The #ClutterAlpha created by the + layout manager; the returned instance is owned by the layout + manager and should not be unreferenced + + + + + a #ClutterLayoutManager + + + + the duration of the animation, in milliseconds + + + + the easing mode of the animation + + + + + + + + + + + + + + + + + + + + + + + Ends an animation started by clutter_layout_manager_begin_animation() + +The result of this call depends on the @manager implementation + + + + + + + a #ClutterLayoutManager + + + + + + Retrieves the progress of the animation, if one has been started by +clutter_layout_manager_begin_animation() + +The returned value has the same semantics of the #ClutterAlpha:alpha +value + + + the progress of the animation + + + + + a #ClutterLayoutManager + + + + + + + + + + + + + + + + + Computes the minimum and natural heights of the @container according +to @manager. + +See also clutter_actor_get_preferred_height() + + + + + + + a #ClutterLayoutManager + + + + the #ClutterContainer using @manager + + + + the width for which the height should be computed, or -1 + + + + return location for the minimum height + of the layout, or %NULL + + + + return location for the natural height + of the layout, or %NULL + + + + + + Computes the minimum and natural widths of the @container according +to @manager. + +See also clutter_actor_get_preferred_width() + + + + + + + a #ClutterLayoutManager + + + + the #ClutterContainer using @manager + + + + the height for which the width should be computed, or -1 + + + + return location for the minimum width + of the layout, or %NULL + + + + return location for the natural width + of the layout, or %NULL + + + + + + Emits the #ClutterLayoutManager::layout-changed signal on @manager + +This function should only be called by implementations of the +#ClutterLayoutManager class + + + + + + + a #ClutterLayoutManager + + + + + + If the #ClutterLayoutManager sub-class allows it, allow +adding a weak reference of the @container using @manager +from within the layout manager + +The layout manager should not increase the reference +count of the @container + + + + + + + a #ClutterLayoutManager + + + + a #ClutterContainer using @manager + + + + + + Allocates the children of @container given an area + +See also clutter_actor_allocate() + + + + + + + a #ClutterLayoutManager + + + + the #ClutterContainer using @manager + + + + the #ClutterActorBox containing the allocated area + of @container + + + + the allocation flags + + + + + + Begins an animation of @duration milliseconds, using the provided +easing @mode + +The easing mode can be specified either as a #ClutterAnimationMode +or as a logical id returned by clutter_alpha_register_func() + +The result of this function depends on the @manager implementation + + + The #ClutterAlpha created by the + layout manager; the returned instance is owned by the layout + manager and should not be unreferenced + + + + + a #ClutterLayoutManager + + + + the duration of the animation, in milliseconds + + + + the easing mode of the animation + + + + + + Retrieves the values for a list of properties out of the +#ClutterLayoutMeta created by @manager and attached to the +child of a @container + + + + + + + a #ClutterLayoutManager + + + + a #ClutterContainer using @manager + + + + a #ClutterActor child of @container + + + + the name of the first property + + + + a list of property name and return location for the value pairs + + + + + + Gets a property on the #ClutterLayoutMeta created by @manager and +attached to a child of @container + +The #GValue must already be initialized to the type of the property +and has to be unset with g_value_unset() after extracting the real +value out of it + + + + + + + a #ClutterLayoutManager + + + + a #ClutterContainer using @manager + + + + a #ClutterActor child of @container + + + + the name of the property to get + + + + a #GValue with the value of the property to get + + + + + + Sets a list of properties and their values on the #ClutterLayoutMeta +associated by @manager to a child of @container + +Languages bindings should use clutter_layout_manager_child_set_property() +instead + + + + + + + a #ClutterLayoutManager + + + + a #ClutterContainer using @manager + + + + a #ClutterActor child of @container + + + + the first property name + + + + a list of property name and value pairs + + + + + + Sets a property on the #ClutterLayoutMeta created by @manager and +attached to a child of @container + + + + + + + a #ClutterLayoutManager + + + + a #ClutterContainer using @manager + + + + a #ClutterActor child of @container + + + + the name of the property to set + + + + a #GValue with the value of the property to set + + + + + + Ends an animation started by clutter_layout_manager_begin_animation() + +The result of this call depends on the @manager implementation + + + + + + + a #ClutterLayoutManager + + + + + + Retrieves the #GParamSpec for the layout property @name inside +the #ClutterLayoutMeta sub-class used by @manager + + + a #GParamSpec describing the property, + or %NULL if no property with that name exists. The returned + #GParamSpec is owned by the layout manager and should not be + modified or freed + + + + + a #ClutterLayoutManager + + + + the name of the property + + + + + + Retrieves the progress of the animation, if one has been started by +clutter_layout_manager_begin_animation() + +The returned value has the same semantics of the #ClutterAlpha:alpha +value + + + the progress of the animation + + + + + a #ClutterLayoutManager + + + + + + Retrieves the #ClutterLayoutMeta that the layout @manager associated +to the @actor child of @container, eventually by creating one if the +#ClutterLayoutManager supports layout properties + + + a #ClutterLayoutMeta, or %NULL if the + #ClutterLayoutManager does not have layout properties. The returned + layout meta instance is owned by the #ClutterLayoutManager and it + should not be unreferenced + + + + + a #ClutterLayoutManager + + + + a #ClutterContainer using @manager + + + + a #ClutterActor child of @container + + + + + + Computes the minimum and natural heights of the @container according +to @manager. + +See also clutter_actor_get_preferred_height() + + + + + + + a #ClutterLayoutManager + + + + the #ClutterContainer using @manager + + + + the width for which the height should be computed, or -1 + + + + return location for the minimum height + of the layout, or %NULL + + + + return location for the natural height + of the layout, or %NULL + + + + + + Computes the minimum and natural widths of the @container according +to @manager. + +See also clutter_actor_get_preferred_width() + + + + + + + a #ClutterLayoutManager + + + + the #ClutterContainer using @manager + + + + the height for which the width should be computed, or -1 + + + + return location for the minimum width + of the layout, or %NULL + + + + return location for the natural width + of the layout, or %NULL + + + + + + Emits the #ClutterLayoutManager::layout-changed signal on @manager + +This function should only be called by implementations of the +#ClutterLayoutManager class + + + + + + + a #ClutterLayoutManager + + + + + + Retrieves all the #GParamSpec<!-- -->s for the layout properties +stored inside the #ClutterLayoutMeta sub-class used by @manager + + + the newly-allocated, + %NULL-terminated array of #GParamSpec<!-- -->s. Use g_free() to free the + resources allocated for the array + + + + + + + a #ClutterLayoutManager + + + + return location for the number of returned + #GParamSpec<!-- -->s + + + + + + If the #ClutterLayoutManager sub-class allows it, allow +adding a weak reference of the @container using @manager +from within the layout manager + +The layout manager should not increase the reference +count of the @container + + + + + + + a #ClutterLayoutManager + + + + a #ClutterContainer using @manager + + + + + + + + + + + + The ::layout-changed signal is emitted each time a layout manager +has been changed. Every #ClutterActor using the @manager instance +as a layout manager should connect a handler to the ::layout-changed +signal and queue a relayout on themselves: + +|[ + static void layout_changed (ClutterLayoutManager *manager, + ClutterActor *self) + { + clutter_actor_queue_relayout (self); + } + ... + self->manager = g_object_ref_sink (manager); + g_signal_connect (self->manager, "layout-changed", + G_CALLBACK (layout_changed), + self); +]| + +Sub-classes of #ClutterLayoutManager that implement a layout that +can be controlled or changed using parameters should emit the +::layout-changed signal whenever one of the parameters changes, +by using clutter_layout_manager_layout_changed(). + + + + + + + The #ClutterLayoutManagerClass structure contains only private +data and should be accessed using the provided API + + + + + + + + + + + + + a #ClutterLayoutManager + + + + the #ClutterContainer using @manager + + + + the height for which the width should be computed, or -1 + + + + return location for the minimum width + of the layout, or %NULL + + + + return location for the natural width + of the layout, or %NULL + + + + + + + + + + + + + + a #ClutterLayoutManager + + + + the #ClutterContainer using @manager + + + + the width for which the height should be computed, or -1 + + + + return location for the minimum height + of the layout, or %NULL + + + + return location for the natural height + of the layout, or %NULL + + + + + + + + + + + + + + a #ClutterLayoutManager + + + + the #ClutterContainer using @manager + + + + the #ClutterActorBox containing the allocated area + of @container + + + + the allocation flags + + + + + + + + + + + + + + a #ClutterLayoutManager + + + + a #ClutterContainer using @manager + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterAlpha created by the + layout manager; the returned instance is owned by the layout + manager and should not be unreferenced + + + + + a #ClutterLayoutManager + + + + the duration of the animation, in milliseconds + + + + the easing mode of the animation + + + + + + + + + + the progress of the animation + + + + + a #ClutterLayoutManager + + + + + + + + + + + + + + a #ClutterLayoutManager + + + + + + + + + + + + + + a #ClutterLayoutManager + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sub-class of #ClutterChildMeta specific for layout managers + +A #ClutterLayoutManager sub-class should create a #ClutterLayoutMeta +instance by overriding the #ClutterLayoutManager::create_child_meta() +virtual function + + + Retrieves the actor wrapped by @data + + + a #ClutterLayoutManager + + + + + a #ClutterLayoutMeta + + + + + + The #ClutterLayoutManager that created this #ClutterLayoutMeta. + + + + + + + the layout manager handling this data + + + + + + + + + + + The #ClutterLayoutMetaClass contains only private data and +should never be accessed directly + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The states for the #ClutterClickAction::long-press signal. + + Queries the action whether it supports + long presses + + + Activates the action on a long press + + + The long press was cancelled + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A representation of the components of a margin. + + + the margin from the left + + + + the margin from the right + + + + the margin from the top + + + + the margin from the bottom + + + + Creates a new #ClutterMargin. + + + a newly allocated #ClutterMargin. Use + clutter_margin_free() to free the resources associated with it when + done. + + + + + Creates a new #ClutterMargin and copies the contents of @margin_ into +the newly created structure. + + + a copy of the #ClutterMargin. + + + + + a #ClutterMargin + + + + + + Frees the resources allocated by clutter_margin_new() and +clutter_margin_copy(). + + + + + + + a #ClutterMargin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Masks applied to a #ClutterEvent by modifiers. + +Note that Clutter may add internal values to events which include +reserved values such as %CLUTTER_MODIFIER_RESERVED_13_MASK. Your code +should preserve and ignore them. You can use %CLUTTER_MODIFIER_MASK to +remove all reserved values. + + Mask applied by the Shift key + + + Mask applied by the Caps Lock key + + + Mask applied by the Control key + + + Mask applied by the first Mod key + + + Mask applied by the second Mod key + + + Mask applied by the third Mod key + + + Mask applied by the fourth Mod key + + + Mask applied by the fifth Mod key + + + Mask applied by the first pointer button + + + Mask applied by the second pointer button + + + Mask applied by the third pointer button + + + Mask applied by the fourth pointer button + + + Mask applied by the fifth pointer button + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Mask applied by the Super key + + + Mask applied by the Hyper key + + + Mask applied by the Meta key + + + + + Mask applied during release + + + A mask covering all modifier types + + + + + + + + + + + + Event for the pointer motion + + + event type + + + + event time + + + + event flags + + + + event source stage + + + + event source actor + + + + event X coordinate + + + + event Y coordinate + + + + button modifiers + + + + reserved for future use + + + + the device that originated the event. If you want the physical +device the event originated from, use clutter_event_get_source_device() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Set to 1 if Clutter was built without FPU (i.e fixed math), 0 otherwise + This macro is no longer defined (identical code is used + regardless the presence of FPU). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterOffscreenEffect structure contains only private data +and should be accessed using the provided API + + + Calls the create_texture() virtual function of the @effect + + + a handle to a Cogl texture, or + %COGL_INVALID_HANDLE. The returned handle has its reference + count increased. + + + + + a #ClutterOffscreenEffect + + + + the minimum width of the target texture + + + + the minimum height of the target texture + + + + + + Calls the paint_target() virtual function of the @effect + + + + + + + a #ClutterOffscreenEffect + + + + + + Calls the create_texture() virtual function of the @effect + + + a handle to a Cogl texture, or + %COGL_INVALID_HANDLE. The returned handle has its reference + count increased. + + + + + a #ClutterOffscreenEffect + + + + the minimum width of the target texture + + + + the minimum height of the target texture + + + + + + Retrieves the material used as a render target for the offscreen +buffer created by @effect + +You should only use the returned #CoglMaterial when painting. The +returned material might change between different frames. + + + a #CoglMaterial or %NULL. The + returned material is owned by Clutter and it should not be + modified or freed + + + + + a #ClutterOffscreenEffect + + + + + + Retrieves the origin and size of the offscreen buffer used by @effect to +paint the actor to which it has been applied. + +This function should only be called by #ClutterOffscreenEffect +implementations, from within the #ClutterOffscreenEffectClass.paint_target() +virtual function. + + + %TRUE if the offscreen buffer has a valid rectangle, + and %FALSE otherwise + + + + + a #ClutterOffscreenEffect + + + + return location for the target area + + + + + + Retrieves the size of the offscreen buffer used by @effect to +paint the actor to which it has been applied. + +This function should only be called by #ClutterOffscreenEffect +implementations, from within the #ClutterOffscreenEffectClass.paint_target() +virtual function. + Use clutter_offscreen_effect_get_target_rect() instead + + + %TRUE if the offscreen buffer has a valid size, + and %FALSE otherwise + + + + + a #ClutterOffscreenEffect + + + + return location for the target width, or %NULL + + + + return location for the target height, or %NULL + + + + + + Retrieves the texture used as a render target for the offscreen +buffer created by @effect + +You should only use the returned texture when painting. The texture +may change after ClutterEffect::pre_paint is called so the effect +implementation should update any references to the texture after +chaining-up to the parent's pre_paint implementation. This can be +used instead of clutter_offscreen_effect_get_target() when the +effect subclass wants to paint using its own material. + + + a #CoglHandle or %COGL_INVALID_HANDLE. The + returned texture is owned by Clutter and it should not be + modified or freed + + + + + a #ClutterOffscreenEffect + + + + + + Calls the paint_target() virtual function of the @effect + + + + + + + a #ClutterOffscreenEffect + + + + + + + + + + + + + The #ClutterOffscreenEffectClass structure contains only private data + + + + + + + + + a handle to a Cogl texture, or + %COGL_INVALID_HANDLE. The returned handle has its reference + count increased. + + + + + a #ClutterOffscreenEffect + + + + the minimum width of the target texture + + + + the minimum height of the target texture + + + + + + + + + + + + + + a #ClutterOffscreenEffect + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Possible flags to pass to clutter_actor_set_offscreen_redirect(). + + Only redirect + the actor if it is semi-transparent and its has_overlaps() + virtual returns %TRUE. This is the default. + + + Always redirect the actor to an + offscreen buffer even if it is fully opaque. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents the orientation of actors or layout managers. + + An horizontal orientation + + + A vertical orientation + + + + + + + + + + + + + + + + + + + + + + + + + + + + Priority of the redraws. This is chosen to be lower than the GTK+ +redraw and resize priorities, because in application with both +GTK+ and Clutter it's more likely that the Clutter part will be +continually animating (and thus able to starve GTK+) than +vice-versa. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #ClutterPageTurnEffect is an opaque structure +whose members can only be accessed using the provided API + + + Creates a new #ClutterPageTurnEffect instance with the given parameters + + + the newly created #ClutterPageTurnEffect + + + + + the period of the page curl, between 0.0 and 1.0 + + + + the angle of the page curl, between 0.0 and 360.0 + + + + the radius of the page curl, in pixels + + + + + + Retrieves the value set using clutter_page_turn_effect_get_angle() + + + the angle of the page curling + + + + + a #ClutterPageTurnEffect: + + + + + + Retrieves the value set using clutter_page_turn_effect_get_period() + + + the period of the page curling + + + + + a #ClutterPageTurnEffect + + + + + + Retrieves the value set using clutter_page_turn_effect_set_radius() + + + the radius of the page curling + + + + + a #ClutterPageTurnEffect + + + + + + Sets the angle of the page curling, in degrees + + + + + + + #ClutterPageTurnEffect + + + + the angle of the page curl, in degrees + + + + + + Sets the period of the page curling, between 0.0 (no curling) +and 1.0 (fully curled) + + + + + + + a #ClutterPageTurnEffect + + + + the period of the page curl, between 0.0 and 1.0 + + + + + + Sets the radius of the page curling + + + + + + + a #ClutterPageTurnEffect: + + + + the radius of the page curling, in pixels + + + + + + The angle of the page rotation, in degrees, between 0.0 and 360.0 + + + + The period of the page turn, between 0.0 (no curling) and +1.0 (fully curled) + + + + The radius of the page curl, in pixels + + + + + + + + + + + + + + + + The `ClutterPaintNode` structure contains only private data +and it should be accessed using the provided API. + + + Adds @child to the list of children of @node. + +This function will acquire a reference on @child. + + + + + + + a #ClutterPaintNode + + + + the child #ClutterPaintNode to add + + + + + + Adds a rectangle region to the @node, with multitexture coordinates. + + + + + + + a #ClutterPaintNode + + + + a #ClutterActorBox + + + + array of multitexture values + + + + number of items of @text_coords + + + + + + Adds a region described as a path to the @node. + +This function acquires a reference on the passed @path, so it +is safe to call cogl_object_unref() when it returns. + + + + + + + a #ClutterPaintNode + + + + a Cogl path + + + + + + Adds a region described by a Cogl primitive to the @node. + +This function acquires a reference on @primitive, so it is safe +to call cogl_object_unref() when it returns. + + + + + + + a #ClutterPaintNode + + + + a Cogl primitive + + + + + + Adds a rectangle region to the @node, as described by the +passed @rect. + + + + + + + a #ClutterPaintNode + + + + a #ClutterActorBox + + + + + + Adds a rectangle region to the @node, with texture coordinates. + + + + + + + a #ClutterPaintNode + + + + a #ClutterActorBox + + + + the left X coordinate of the texture + + + + the top Y coordinate of the texture + + + + the right X coordinate of the texture + + + + the bottom Y coordinate of the texture + + + + + + Paints the @node using the class implementation, traversing +its children, if any. + + + + + + + a #ClutterPaintNode + + + + + + Acquires a reference on @node. + + + the #ClutterPaintNode + + + + + a #ClutterPaintNode + + + + + + Sets a user-readable @name for @node. + +The @name will be used for debugging purposes. + +The @node will copy the passed string. + + + + + + + a #ClutterPaintNode + + + + a string annotating the @node + + + + + + Releases a reference on @node. + + + + + + + a #ClutterPaintNode + + + + + + + The `ClutterPaintNodeClass` structure contains only private data. + + + + + + + #ClutterPaintVolume is an opaque structure +whose members cannot be directly accessed. + +A #ClutterPaintVolume represents an +a bounding volume whose internal representation isn't defined but +can be set and queried in terms of an axis aligned bounding box. + +A #ClutterPaintVolume for a #ClutterActor +is defined to be relative from the current actor modelview matrix. + +Other internal representation and methods for describing the +bounding volume may be added in the future. + + + Copies @pv into a new #ClutterPaintVolume + + + a newly allocated copy of a #ClutterPaintVolume + + + + + a #ClutterPaintVolume + + + + + + Frees the resources allocated by @pv + + + + + + + a #ClutterPaintVolume + + + + + + Retrieves the depth of the volume's, axis aligned, bounding box. + +In other words; this takes into account what actor's coordinate +space @pv belongs too and conceptually fits an axis aligned box +around the volume. It returns the size of that bounding box as +measured along the z-axis. + +If, for example, clutter_actor_get_transformed_paint_volume() +is used to transform a 2D child actor that is 100px wide, 100px +high and 0px deep into container coordinates then the depth might +not simply be 0px if the child actor has a 3D rotation applied to +it. + +Remember: if clutter_actor_get_transformed_paint_volume() is +used then the transformed volume will be defined relative to the +container actor and in container coordinates a 2D child actor +can have a 3D bounding volume. + +There are no accuracy guarantees for the reported depth, +except that it must always be greater than, or equal to, the actor's +depth. This is because actors may report simple, loose fitting paint +volumes for efficiency. + + + the depth, in units of @pv's local coordinate system. + + + + + a #ClutterPaintVolume + + + + + + Retrieves the height of the volume's, axis aligned, bounding box. + +In other words; this takes into account what actor's coordinate +space @pv belongs too and conceptually fits an axis aligned box +around the volume. It returns the size of that bounding box as +measured along the y-axis. + +If, for example, clutter_actor_get_transformed_paint_volume() +is used to transform a 2D child actor that is 100px wide, 100px +high and 0px deep into container coordinates then the height might +not simply be 100px if the child actor has a 3D rotation applied to +it. + +Remember: if clutter_actor_get_transformed_paint_volume() is +used then a transformed child volume will be defined relative to the +ancestor container actor and so a 2D child actor +can have a 3D bounding volume. + +There are no accuracy guarantees for the reported height, +except that it must always be greater than, or equal to, the actor's +height. This is because actors may report simple, loose fitting paint +volumes for efficiency. + + + the height, in units of @pv's local coordinate system. + + + + + a #ClutterPaintVolume + + + + + + Retrieves the origin of the #ClutterPaintVolume. + + + + + + + a #ClutterPaintVolume + + + + the return location for a #ClutterVertex + + + + + + Retrieves the width of the volume's, axis aligned, bounding box. + +In other words; this takes into account what actor's coordinate +space @pv belongs too and conceptually fits an axis aligned box +around the volume. It returns the size of that bounding box as +measured along the x-axis. + +If, for example, clutter_actor_get_transformed_paint_volume() +is used to transform a 2D child actor that is 100px wide, 100px +high and 0px deep into container coordinates then the width might +not simply be 100px if the child actor has a 3D rotation applied to +it. + +Remember: if clutter_actor_get_transformed_paint_volume() is +used then a transformed child volume will be defined relative to the +ancestor container actor and so a 2D child actor can have a 3D +bounding volume. + +There are no accuracy guarantees for the reported width, +except that it must always be greater than, or equal to, the +actor's width. This is because actors may report simple, loose +fitting paint volumes for efficiency. + + + the width, in units of @pv's local coordinate system. + + + + + a #ClutterPaintVolume + + + + + + Sets the depth of the paint volume. The depth is measured along +the z axis in the actor coordinates that @pv is associated with. + + + + + + + a #ClutterPaintVolume + + + + the depth of the paint volume, in pixels + + + + + + Sets the #ClutterPaintVolume from the allocation of @actor. + +This function should be used when overriding the +#ClutterActorClass.get_paint_volume() by #ClutterActor sub-classes +that do not paint outside their allocation. + +A typical example is: + +|[ +static gboolean +my_actor_get_paint_volume (ClutterActor *self, + ClutterPaintVolume *volume) +{ + return clutter_paint_volume_set_from_allocation (volume, self); +} +]| + + + %TRUE if the paint volume was successfully set, and %FALSE + otherwise + + + + + a #ClutterPaintVolume + + + + a #ClutterActor + + + + + + Sets the height of the paint volume. The height is measured along +the y axis in the actor coordinates that @pv is associated with. + + + + + + + a #ClutterPaintVolume + + + + the height of the paint volume, in pixels + + + + + + Sets the origin of the paint volume. + +The origin is defined as the X, Y and Z coordinates of the top-left +corner of an actor's paint volume, in actor coordinates. + +The default is origin is assumed at: (0, 0, 0) + + + + + + + a #ClutterPaintVolume + + + + a #ClutterVertex + + + + + + Sets the width of the paint volume. The width is measured along +the x axis in the actor coordinates that @pv is associated with. + + + + + + + a #ClutterPaintVolume + + + + the width of the paint volume, in pixels + + + + + + Updates the geometry of @pv to encompass @pv and @another_pv. + +There are no guarantees about how precisely the two volumes +will be unioned. + + + + + + + The first #ClutterPaintVolume and destination for resulting + union + + + + A second #ClutterPaintVolume to union with @pv + + + + + + Unions the 2D region represented by @box to a #ClutterPaintVolume. + +This function is similar to clutter_paint_volume_union(), but it is +specific for 2D regions. + + + + + + + a #ClutterPaintVolume + + + + a #ClutterActorBox to union to @pv + + + + + + + The #ClutterPanAction structure contains +only private data and should be accessed using the provided API + + + Creates a new #ClutterPanAction instance + + + the newly created #ClutterPanAction + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Retrieves the initial acceleration factor for interpolated ::pan events. + + + The initial acceleration factor for interpolated events. + + + + + A #ClutterPanAction + + + + + + Retrieves the delta, in stage space, dependent on the current state +of the #ClutterPanAction, and respecting the constraint specified by the +#ClutterPanAction:pan-axis property. + + + the distance since last motion event + + + + + A #ClutterPanAction + + + + the touch point index, with 0 being the first touch + point received by the action + + + + return location for the X delta + + + + return location for the Y delta + + + + + + Retrieves the deceleration rate of interpolated ::pan events. + + + The deceleration rate of the interpolated events. + + + + + A #ClutterPanAction + + + + + + Checks if the action should emit ::pan events even after releasing +the pointer during a panning gesture, to emulate some kind of +kinetic inertia. + + + %TRUE if interpolated events emission is active. + + + + + a #ClutterPanAction + + + + + + Retrieves the coordinates, in stage space, of the latest interpolated +event, analogous to clutter_gesture_action_get_motion_coords(). + + + + + + + A #ClutterPanAction + + + + return location for the latest + interpolated event's X coordinate + + + + return location for the latest + interpolated event's Y coordinate + + + + + + Retrieves the delta, in stage space, since the latest interpolated +event, analogous to clutter_gesture_action_get_motion_delta(). + + + the distance since the latest interpolated event + + + + + A #ClutterPanAction + + + + return location for the X delta since + the latest interpolated event + + + + return location for the Y delta since + the latest interpolated event + + + + + + Retrieves the coordinates, in stage space, dependent on the current state +of the #ClutterPanAction. If it is inactive, both fields will be +set to 0. If it is panning by user action, the values will be equivalent +to those returned by clutter_gesture_action_get_motion_coords(). +If it is interpolating with some form of kinetic scrolling, the values +will be equivalent to those returned by +clutter_pan_action_get_interpolated_coords(). This is a convenience +method designed to be used in replacement "pan" signal handlers. + + + + + + + A #ClutterPanAction + + + + the touch point index, with 0 being the first touch + point received by the action + + + + return location for the X coordinate + + + + return location for the Y coordinate + + + + + + Retrieves the delta, in stage space, dependent on the current state +of the #ClutterPanAction. If it is inactive, both fields will be +set to 0. If it is panning by user action, the values will be equivalent +to those returned by clutter_gesture_action_get_motion_delta(). +If it is interpolating with some form of kinetic scrolling, the values +will be equivalent to those returned by +clutter_pan_action_get_interpolated_delta(). This is a convenience +method designed to be used in replacement "pan" signal handlers. + + + + + + + A #ClutterPanAction + + + + the touch point index, with 0 being the first touch + point received by the action + + + + return location for the X delta + + + + return location for the Y delta + + + + + + Retrieves the axis constraint set by clutter_pan_action_set_pan_axis() + + + the axis constraint + + + + + a #ClutterPanAction + + + + + + Factor applied to the momentum velocity at the time of releasing the +pointer when generating interpolated ::pan events. + + + + + + + A #ClutterPanAction + + + + The acceleration factor + + + + + + Sets the deceleration rate of the interpolated ::pan events generated +after a pan gesture. This is approximately the value that the momentum +at the time of releasing the pointer is divided by every 60th of a second. + + + + + + + A #ClutterPanAction + + + + The deceleration rate + + + + + + Sets whether the action should emit interpolated ::pan events +after the drag has ended, to emulate the gesture kinetic inertia. + + + + + + + a #ClutterPanAction + + + + whether to enable interpolated pan events + + + + + + Restricts the panning action to a specific axis + + + + + + + a #ClutterPanAction + + + + the axis to constraint the panning to + + + + + + The initial acceleration factor + +The kinetic momentum measured at the time of releasing the pointer will +be multiplied by the factor specified by this property before being used +to generate interpolated ::pan events. + + + + The rate at which the interpolated panning will decelerate in + +#ClutterPanAction will emit interpolated ::pan events with decreasing +scroll deltas, using the rate specified by this property. + + + + Whether interpolated events emission is enabled. + + + + Constraints the panning action to the specified axis + + + + + + + + + + The ::pan signal is emitted to keep track of the motion during +a pan gesture. @is_interpolated is set to %TRUE during the +interpolation phase of the pan, after the drag has ended and +the :interpolate property was set to %TRUE. + + %TRUE if the pan should continue, and %FALSE if + the pan should be cancelled. + + + + + the #ClutterActor attached to the @action + + + + if the event is the result of interpolating + the motion velocity at the end of the drag + + + + + + The ::pan-stopped signal is emitted at the end of the interpolation +phase of the pan action, only when :interpolate is set to %TRUE. + + + + + + the #ClutterActor attached to the @action + + + + + + + The #ClutterPanActionClass structure contains +only private data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The axis of the constraint that should be applied on the +panning action + + No constraint + + + Set a constraint on the X axis + + + Set a constraint on the Y axis + + + Constrain panning automatically based on initial + movement (available since 1.24) + + + + A #GParamSpec subclass for defining properties holding +a #ClutterColor. + + + + + default color value + + + + + + + #GParamSpec subclass for unit based properties. + + + + + + default type + + + + default value + + + + lower boundary + + + + higher boundary + + + + + + + + + The #ClutterPath struct contains only private data and should +be accessed with the functions below. + + + Creates a new #ClutterPath instance with no nodes. + +The object has a floating reference so if you add it to a +#ClutterBehaviourPath then you do not need to unref it. + + + the newly created #ClutterPath + + + + + Creates a new #ClutterPath instance with the nodes described in +@desc. See clutter_path_add_string() for details of the format of +the string. + +The object has a floating reference so if you add it to a +#ClutterBehaviourPath then you do not need to unref it. + + + the newly created #ClutterPath + + + + + a string describing the path + + + + + + Add the nodes of the Cairo path to the end of @path. + + + + + + + a #ClutterPath + + + + a Cairo path + + + + + + Adds a %CLUTTER_PATH_CLOSE type node to the path. This creates a +straight line from the last node to the last %CLUTTER_PATH_MOVE_TO +type node. + + + + + + + a #ClutterPath + + + + + + Adds a %CLUTTER_PATH_CURVE_TO type node to the path. This causes +the actor to follow a bezier from the last node to (@x_3, @y_3) using +(@x_1, @y_1) and (@x_2,@y_2) as control points. + + + + + + + a #ClutterPath + + + + the x coordinate of the first control point + + + + the y coordinate of the first control point + + + + the x coordinate of the second control point + + + + the y coordinate of the second control point + + + + the x coordinate of the third control point + + + + the y coordinate of the third control point + + + + + + Adds a %CLUTTER_PATH_LINE_TO type node to the path. This causes the +actor to move to the new coordinates in a straight line. + + + + + + + a #ClutterPath + + + + the x coordinate + + + + the y coordinate + + + + + + Adds a %CLUTTER_PATH_MOVE_TO type node to the path. This is usually +used as the first node in a path. It can also be used in the middle +of the path to cause the actor to jump to the new coordinate. + + + + + + + a #ClutterPath + + + + the x coordinate + + + + the y coordinate + + + + + + Adds @node to the end of the path. + + + + + + + a #ClutterPath + + + + a #ClutterPathNode + + + + + + Same as clutter_path_add_curve_to() except the coordinates are +relative to the previous node. + + + + + + + a #ClutterPath + + + + the x coordinate of the first control point + + + + the y coordinate of the first control point + + + + the x coordinate of the second control point + + + + the y coordinate of the second control point + + + + the x coordinate of the third control point + + + + the y coordinate of the third control point + + + + + + Same as clutter_path_add_line_to() except the coordinates are +relative to the previous node. + + + + + + + a #ClutterPath + + + + the x coordinate + + + + the y coordinate + + + + + + Same as clutter_path_add_move_to() except the coordinates are +relative to the previous node. + + + + + + + a #ClutterPath + + + + the x coordinate + + + + the y coordinate + + + + + + Adds new nodes to the end of the path as described in @str. The +format is a subset of the SVG path format. Each node is represented +by a letter and is followed by zero, one or three pairs of +coordinates. The coordinates can be separated by spaces or a +comma. The types are: + + - `M`: Adds a %CLUTTER_PATH_MOVE_TO node. Takes one pair of coordinates. + - `L`: Adds a %CLUTTER_PATH_LINE_TO node. Takes one pair of coordinates. + - `C`: Adds a %CLUTTER_PATH_CURVE_TO node. Takes three pairs of coordinates. + - `z`: Adds a %CLUTTER_PATH_CLOSE node. No coordinates are needed. + +The M, L and C commands can also be specified in lower case which +means the coordinates are relative to the previous node. + +For example, to move an actor in a 100 by 100 pixel square centered +on the point 300,300 you could use the following path: + +|[ + M 250,350 l 0 -100 L 350,250 l 0 100 z +]| + +If the path description isn't valid %FALSE will be returned and no +nodes will be added. + + + %TRUE is the path description was valid or %FALSE +otherwise. + + + + + a #ClutterPath + + + + a string describing the new nodes + + + + + + Removes all nodes from the path. + + + + + + + a #ClutterPath + + + + + + Calls a function for each node of the path. + + + + + + + a #ClutterPath + + + + the function to call with each node + + + + user data to pass to the function + + + + + + Returns a newly allocated string describing the path in the same +format as used by clutter_path_add_string(). + + + a string description of the path. Free with g_free(). + + + + + a #ClutterPath + + + + + + Retrieves an approximation of the total length of the path. + + + the length of the path. + + + + + a #ClutterPath + + + + + + Retrieves the number of nodes in the path. + + + the number of nodes. + + + + + a #ClutterPath + + + + + + Retrieves the node of the path indexed by @index. + + + + + + + a #ClutterPath + + + + the node number to retrieve + + + + a location to store a copy of the node + + + + + + Returns a #GSList of #ClutterPathNode<!-- -->s. The list should be +freed with g_slist_free(). The nodes are owned by the path and +should not be freed. Altering the path may cause the nodes in the +list to become invalid so you should copy them if you want to keep +the list. + + + a + list of nodes in the path. + + + + + + + a #ClutterPath + + + + + + The value in @progress represents a position along the path where +0.0 is the beginning and 1.0 is the end of the path. An +interpolated position is then stored in @position. + + + index of the node used to calculate the position. + + + + + a #ClutterPath + + + + a position along the path as a fraction of its length + + + + location to store the position + + + + + + Inserts @node into the path before the node at the given offset. If +@index_ is negative it will append the node to the end of the path. + + + + + + + a #ClutterPath + + + + offset of where to insert the node + + + + the node to insert + + + + + + Removes the node at the given offset from the path. + + + + + + + a #ClutterPath + + + + index of the node to remove + + + + + + Replaces the node at offset @index_ with @node. + + + + + + + a #ClutterPath + + + + index to the existing node + + + + the replacement node + + + + + + Replaces all of the nodes in the path with nodes described by +@str. See clutter_path_add_string() for details of the format. + +If the string is invalid then %FALSE is returned and the path is +unaltered. + + + %TRUE is the path was valid, %FALSE otherwise. + + + + + a #ClutterPath + + + + a string describing the path + + + + + + Add the nodes of the ClutterPath to the path in the Cairo context. + + + + + + + a #ClutterPath + + + + a Cairo context + + + + + + + + + + + + + + + + + + + This function is passed to clutter_path_foreach() and will be +called for each node contained in the path. + + + + + + + the node + + + + optional data passed to the function + + + + + + The #ClutterPathClass struct contains only private data. + + + + + + + #ClutterPathConstraint is an opaque structure +whose members cannot be directly accessed + + + Creates a new #ClutterPathConstraint with the given @path and @offset + + + the newly created #ClutterPathConstraint + + + + + a #ClutterPath, or %NULL + + + + the offset along the #ClutterPath + + + + + + Retrieves the offset along the #ClutterPath used by @constraint. + + + the offset + + + + + a #ClutterPathConstraint + + + + + + Retrieves a pointer to the #ClutterPath used by @constraint. + + + the #ClutterPath used by the + #ClutterPathConstraint, or %NULL. The returned #ClutterPath is owned + by the constraint and it should not be unreferenced + + + + + a #ClutterPathConstraint + + + + + + Sets the offset along the #ClutterPath used by @constraint. + + + + + + + a #ClutterPathConstraint + + + + the offset along the path + + + + + + Sets the @path to be followed by the #ClutterPathConstraint. + +The @constraint will take ownership of the #ClutterPath passed to this +function. + + + + + + + a #ClutterPathConstraint + + + + a #ClutterPath + + + + + + The offset along the #ClutterPathConstraint:path, between -1.0 and 2.0. + + + + The #ClutterPath used to constrain the position of an actor. + + + + The ::node-reached signal is emitted each time a +#ClutterPathConstraint:offset value results in the actor +passing a #ClutterPathNode + + + + + + the #ClutterActor using the @constraint + + + + the index of the node that has been reached + + + + + + + + + + Represents a single node of a #ClutterPath. + +Some of the coordinates in @points may be unused for some node +types. %CLUTTER_PATH_MOVE_TO and %CLUTTER_PATH_LINE_TO use only one +pair of coordinates, %CLUTTER_PATH_CURVE_TO uses all three and +%CLUTTER_PATH_CLOSE uses none. + + + the node's type + + + + the coordinates of the node + + + + + + Makes an allocated copy of a node. + + + the copied node. + + + + + a #ClutterPathNode + + + + + + Compares two nodes and checks if they are the same type with the +same coordinates. + + + %TRUE if the nodes are the same. + + + + + First node + + + + Second node + + + + + + Frees the memory of an allocated node. + + + + + + + a #ClutterPathNode + + + + + + + Types of nodes in a #ClutterPath. + + jump to the given position + + + create a line from the last node to the + given position + + + bezier curve using the last position and + three control points. + + + create a line from the last node to the last + %CLUTTER_PATH_MOVE_TO node. + + + same as %CLUTTER_PATH_MOVE_TO but with + coordinates relative to the last node. + + + same as %CLUTTER_PATH_LINE_TO but with + coordinates relative to the last node. + + + same as %CLUTTER_PATH_CURVE_TO but with + coordinates relative to the last node. + + + + + + + + + + + Stage perspective definition. #ClutterPerspective is only used by +the fixed point version of clutter_stage_set_perspective(). + + + the field of view angle, in degrees, in the y direction + + + + the aspect ratio that determines the field of view in the x + direction. The aspect ratio is the ratio of x (width) to y (height) + + + + the distance from the viewer to the near clipping + plane (always positive) + + + + the distance from the viewer to the far clipping + plane (always positive) + + + + + + + + + + + + + Controls the paint cycle of the scene graph when in pick mode + + Do not paint any actor + + + Paint only the reactive actors + + + Paint all actors + + + + + + + + The #ClutterTextNode structure is an opaque +type whose members cannot be directly accessed. + + + Creates a new #ClutterPaintNode that will use the @pipeline to +paint its contents. + +This function will acquire a reference on the passed @pipeline, +so it is safe to call cogl_object_unref() when it returns. + + + the newly created #ClutterPaintNode. + Use clutter_paint_node_unref() when done. + + + + + a Cogl pipeline state object, or %NULL + + + + + + + The `ClutterPipelineNodeClass` structure is an opaque +type whose members cannot be directly accessed. + + + + A point in 2D space. + + + X coordinate, in pixels + + + + Y coordinate, in pixels + + + + Allocates a new #ClutterPoint. + + + the newly allocated #ClutterPoint. + Use clutter_point_free() to free its resources. + + + + + Creates a new #ClutterPoint with the same coordinates of @point. + + + a newly allocated #ClutterPoint. + Use clutter_point_free() to free its resources. + + + + + a #ClutterPoint + + + + + + Computes the distance between two #ClutterPoint. + + + the distance between the points. + + + + + a #ClutterPoint + + + + a #ClutterPoint + + + + return location for the horizontal + distance between the points + + + + return location for the vertical + distance between the points + + + + + + Compares two #ClutterPoint for equality. + + + %TRUE if the #ClutterPoints are equal + + + + + the first #ClutterPoint to compare + + + + the second #ClutterPoint to compare + + + + + + Frees the resources allocated for @point. + + + + + + + a #ClutterPoint + + + + + + Initializes @point with the given coordinates. + + + the initialized #ClutterPoint + + + + + a #ClutterPoint + + + + the X coordinate of the point + + + + the Y coordinate of the point + + + + + + A point centered at (0, 0). + +The returned value can be used as a guard. + + + a point centered in (0, 0); the returned #ClutterPoint + is owned by Clutter and it should not be modified or freed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Prototype of the progress function used to compute the value +between the two ends @a and @b of an interval depending on +the value of @progress. + +The #GValue in @retval is already initialized with the same +type as @a and @b. + +This function will be called by #ClutterInterval if the +type of the values of the interval was registered using +clutter_interval_register_progress_func(). + + + %TRUE if the function successfully computed + the value and stored it inside @retval + + + + + the initial value of an interval + + + + the final value of an interval + + + + the progress factor, between 0 and 1 + + + + the value used to store the progress + + + + + + The #ClutterPropertyTransition structure contains +private data and should only be accessed using the provided API. + + + + Creates a new #ClutterPropertyTransition. + + + the newly created #ClutterPropertyTransition. + Use g_object_unref() when done + + + + + a property of @animatable, or %NULL + + + + + + Retrieves the value of the #ClutterPropertyTransition:property-name +property. + + + the name of the property being animated, or %NULL if + none is set. The returned string is owned by the @transition and + it should not be freed. + + + + + a #ClutterPropertyTransition + + + + + + Sets the #ClutterPropertyTransition:property-name property of @transition. + + + + + + + a #ClutterPropertyTransition + + + + a property name + + + + + + The name of the property of a #ClutterAnimatable to animate. + + + + + + + + + + + The #ClutterPropertyTransitionClass structure +contains private data. + + + + + + + + + + + + + + + Event for tool proximity in tablet devices + + + event type + + + + event time + + + + event flags + + + + event source stage + + + + event source actor + + + + the device that originated the event. If you want the physical +device the event originated from, use clutter_event_get_source_device() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The location and size of a rectangle. + +The width and height of a #ClutterRect can be negative; Clutter considers +a rectangle with an origin of [ 0.0, 0.0 ] and a size of [ 10.0, 10.0 ] to +be equivalent to a rectangle with origin of [ 10.0, 10.0 ] and size of +[ -10.0, -10.0 ]. + +Application code can normalize rectangles using clutter_rect_normalize(): +this function will ensure that the width and height of a #ClutterRect are +positive values. All functions taking a #ClutterRect as an argument will +implicitly normalize it before computing eventual results. For this reason +it is safer to access the contents of a #ClutterRect by using the provided +API at all times, instead of directly accessing the structure members. + + + the origin of the rectangle + + + + the size of the rectangle + + + + Creates a new, empty #ClutterRect. + +You can use clutter_rect_init() to initialize the returned rectangle, +for instance: + +|[ + rect = clutter_rect_init (clutter_rect_alloc (), x, y, width, height); +]| + + + the newly allocated #ClutterRect. + Use clutter_rect_free() to free its resources + + + + + Rounds the origin of @rect downwards to the nearest integer, and recompute the +the size using the @rect origin and size rounded upwards to the nearest integer, +so that @rect is updated to the smallest rectangle capable of fully containing +the original, fractional rectangle in the coordinates space. + + + + + + + a #ClutterRect + + + + + + Checks whether @point is contained by @rect, after normalizing the +rectangle. + + + %TRUE if the @point is contained by @rect. + + + + + a #ClutterRect + + + + the point to check + + + + + + Checks whether @a contains @b. + +The first rectangle contains the second if the union of the +two #ClutterRect is equal to the first rectangle. + + + %TRUE if the first rectangle contains the second. + + + + + a #ClutterRect + + + + a #ClutterRect + + + + + + Copies @rect into a new #ClutterRect instance. + + + the newly allocate copy of @rect. + Use clutter_rect_free() to free the associated resources + + + + + a #ClutterRect + + + + + + Checks whether @a and @b are equals. + +This function will normalize both @a and @b before comparing +their origin and size. + + + %TRUE if the rectangles match in origin and size. + + + + + a #ClutterRect + + + + a #ClutterRect + + + + + + Frees the resources allocated by @rect. + + + + + + + a #ClutterRect + + + + + + Retrieves the center of @rect, after normalizing the rectangle, +and updates @center with the correct coordinates. + + + + + + + a #ClutterRect + + + + a #ClutterPoint + + + + + + Retrieves the height of @rect. + + + the height of the rectangle + + + + + a #ClutterRect + + + + + + Retrieves the width of @rect. + + + the width of the rectangle + + + + + a #ClutterRect + + + + + + Retrieves the X coordinate of the origin of @rect. + + + the X coordinate of the origin of the rectangle + + + + + a #ClutterRect + + + + + + Retrieves the Y coordinate of the origin of @rect. + + + the Y coordinate of the origin of the rectangle + + + + + a #ClutterRect + + + + + + Initializes a #ClutterRect with the given origin and size. + + + the updated rectangle + + + + + a #ClutterRect + + + + X coordinate of the origin + + + + Y coordinate of the origin + + + + width of the rectangle + + + + height of the rectangle + + + + + + Normalizes the @rect and offsets its origin by the @d_x and @d_y values; +the size is adjusted by (2 * @d_x, 2 * @d_y). + +If @d_x and @d_y are positive the size of the rectangle is decreased; if +the values are negative, the size of the rectangle is increased. + +If the resulting rectangle has a negative width or height, the size is +set to 0. + + + + + + + a #ClutterRect + + + + an horizontal value; a positive @d_x will create an inset rectangle, + and a negative value will create a larger rectangle + + + + a vertical value; a positive @d_x will create an inset rectangle, + and a negative value will create a larger rectangle + + + + + + Computes the intersection of @a and @b, and places it in @res, if @res +is not %NULL. + +This function will normalize both @a and @b prior to computing their +intersection. + +This function can be used to simply check if the intersection of @a and @b +is not empty, by using %NULL for @res. + + + %TRUE if the intersection of @a and @b is not empty + + + + + a #ClutterRect + + + + a #ClutterRect + + + + a #ClutterRect, or %NULL + + + + + + Normalizes a #ClutterRect. + +A #ClutterRect is defined by the area covered by its size; this means +that a #ClutterRect with #ClutterRect.origin in [ 0, 0 ] and a +#ClutterRect.size of [ 10, 10 ] is equivalent to a #ClutterRect with +#ClutterRect.origin in [ 10, 10 ] and a #ClutterRect.size of [ -10, -10 ]. + +This function is useful to ensure that a rectangle has positive width +and height; it will modify the passed @rect and normalize its size. + + + + + + + a #ClutterRect + + + + + + Offsets the origin of @rect by the given values, after normalizing +the rectangle. + + + + + + + a #ClutterRect + + + + the horizontal offset value + + + + the vertical offset value + + + + + + Scale the rectangle coordinates and size by @s_x horizontally and +@s_y vertically. + + + + + + + a #ClutterRect + + + + an horizontal scale value + + + + a vertical scale value + + + + + + Computes the smallest possible rectangle capable of fully containing +both @a and @b, and places it into @res. + +This function will normalize both @a and @b prior to computing their +union. + + + + + + + a #ClutterRect + + + + a #ClutterRect + + + + a #ClutterRect + + + + + + A #ClutterRect with #ClutterRect.origin set at (0, 0) and a size +of 0. + +The returned value can be used as a guard. + + + a rectangle with origin in (0, 0) and a size of 0. + The returned #ClutterRect is owned by Clutter and it should not + be modified or freed. + + + + + + The #ClutterRectangle structure contains only private data +and should be accessed using the provided API + + + + + + + Creates a new #ClutterActor with a rectangular shape. + Use clutter_actor_new() instead + + + a new #ClutterRectangle + + + + + Creates a new #ClutterActor with a rectangular shape +and of the given @color. + Use clutter_actor_new() and + clutter_actor_set_background_color() instead + + + a new #ClutterRectangle + + + + + a #ClutterColor + + + + + + Gets the color of the border used by @rectangle and places +it into @color. + Use #ClutterActor and a #ClutterCanvas to draw + the border with Cairo + + + + + + + a #ClutterRectangle + + + + return location for a #ClutterColor + + + + + + Gets the width (in pixels) of the border used by @rectangle + Use #ClutterActor and a #ClutterCanvas content + to draw the border using Cairo + + + the border's width + + + + + a #ClutterRectangle + + + + + + Retrieves the color of @rectangle. + Use #ClutterActor and clutter_actor_get_background_color() + instead + + + + + + + a #ClutterRectangle + + + + return location for a #ClutterColor + + + + + + Sets the color of the border used by @rectangle using @color + Use #ClutterActor and a #ClutterCanvas to draw + the border with Cairo + + + + + + + a #ClutterRectangle + + + + the color of the border + + + + + + Sets the width (in pixel) of the border used by @rectangle. +A @width of 0 will unset the border. + Use #ClutterActor and a #ClutterCanvas content + to draw the border using Cairo + + + + + + + a #ClutterRectangle + + + + the width of the border + + + + + + Sets the color of @rectangle. + Use #ClutterActor and clutter_actor_set_background_color() + instead + + + + + + + a #ClutterRectangle + + + + a #ClutterColor + + + + + + The color of the border of the rectangle. + + + + The width of the border of the rectangle, in pixels. + + + + The color of the rectangle. + + + + Whether the #ClutterRectangle should be displayed with a border. + + + + + + + + + + + The #ClutterRectangleClass structure contains only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Flags to pass to clutter_threads_add_repaint_func_full(). + + Run the repaint function prior to + painting the stages + + + Run the repaint function after + painting the stages + + + Ensure that a new frame + is queued after adding the repaint function + + + + + + + + + + + + Specifies the type of requests for a #ClutterActor. + + Height for width requests + + + Width for height requests + + + Use the preferred size of the + #ClutterContent, if it has any (available since 1.22) + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterRootNode structure is an opaque +type whose members cannot be directly accessed. + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterRotateAction structure contains +only private data and should be accessed using the provided API + + + Creates a new #ClutterRotateAction instance + + + the newly created #ClutterRotateAction + + + + + + + + + + + + + + + + + + + + + + + + + + + + The ::rotate signal is emitted when a rotate gesture is +recognized on the attached actor and when the gesture is +cancelled (in this case with an angle value of 0). + + %TRUE if the rotation should continue, and %FALSE if + the rotation should be cancelled. + + + + + the #ClutterActor attached to the @action + + + + the difference of angle of rotation between the initial +rotation and the current rotation + + + + + + + The #ClutterRotateActionClass structure contains +only private data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Axis of a rotation. + + Rotate around the X axis + + + Rotate around the Y axis + + + Rotate around the Z axis + + + + Direction of a rotation. + + Clockwise rotation + + + Counter-clockwise rotation + + + + + + + + + + + + + + + + + + + + + + + + + + + + The default GObject type for the Clutter stage. + The macro evaluates to "deprecated" as Clutter can + be compiled against multiple windowing systems. You can use the + CLUTTER_WINDOWING_* macros for compile-time checks, and the type + check macros for run-time checks. + + + + + + + + + + + + + + + + + The scaling filters to be used with the #ClutterActor:minification-filter +and #ClutterActor:magnification-filter properties. + + Linear interpolation filter + + + Nearest neighbor interpolation filter + + + Trilinear minification filter, with + mipmap generation; this filter linearly interpolates on every axis, + as well as between mipmap levels. + + + + + + + + + + + + + + + + + + + + The #ClutterScript structure contains only private data +and should be accessed using the provided API + + + Creates a new #ClutterScript instance. #ClutterScript can be used +to load objects definitions for scenegraph elements, like actors, +or behavioural elements, like behaviours and timelines. The +definitions must be encoded using the JavaScript Object Notation (JSON) +language. + + + the newly created #ClutterScript instance. Use + g_object_unref() when done. + + + + + Looks up a type by name, using the virtual function that +#ClutterScript has for that purpose. This function should +rarely be used. + + + the type for the requested type name, or + %G_TYPE_INVALID if not corresponding type was found. + + + + + a #ClutterScript + + + + name of the type to look up + + + + + + Adds @paths to the list of search paths held by @script. + +The search paths are used by clutter_script_lookup_filename(), which +can be used to define search paths for the textures source file name +or other custom, file-based properties. + + + + + + + a #ClutterScript + + + + an array of strings containing + different search paths + + + + + + the length of the passed array + + + + + + Associates a #ClutterState to the #ClutterScript instance using the given +name. + +The #ClutterScript instance will use @state to resolve target states when +connecting signal handlers. + +The #ClutterScript instance will take a reference on the #ClutterState +passed to this function. + + + + + + + a #ClutterScript + + + + a name for the @state, or %NULL to + set the default #ClutterState + + + + a #ClutterState + + + + + + Connects all the signals defined into a UI definition file to their +handlers. + +This method invokes clutter_script_connect_signals_full() internally +and uses #GModule's introspective features (by opening the current +module's scope) to look at the application's symbol table. + +Note that this function will not work if #GModule is not supported by +the platform Clutter is running on. + + + + + + + a #ClutterScript + + + + data to be passed to the signal handlers, or %NULL + + + + + + Connects all the signals defined into a UI definition file to their +handlers. + +This function allows to control how the signal handlers are +going to be connected to their respective signals. It is meant +primarily for language bindings to allow resolving the function +names using the native API, but it can also be used on platforms +that do not support GModule. + +Applications should use clutter_script_connect_signals(). + + + + + + + a #ClutterScript + + + + signal connection function + + + + data to be passed to the signal handlers, or %NULL + + + + + + Ensure that every object defined inside @script is correctly +constructed. You should rarely need to use this function. + + + + + + + a #ClutterScript + + + + + + Retrieves the object bound to @name. This function does not increment +the reference count of the returned object. + + + the named object, or %NULL if no object + with the given name was available + + + + + a #ClutterScript + + + + the name of the object to retrieve + + + + + + Retrieves a list of objects for the given names. After @script, object +names/return location pairs should be listed, with a %NULL pointer +ending the list, like: + +|[ + GObject *my_label, *a_button, *main_timeline; + + clutter_script_get_objects (script, + "my-label", &my_label, + "a-button", &a_button, + "main-timeline", &main_timeline, + NULL); +]| + +Note: This function does not increment the reference count of the +returned objects. + + + the number of objects returned. + + + + + a #ClutterScript + + + + the name of the first object to retrieve + + + + return location for a #GObject, then additional names, ending + with %NULL + + + + + + Retrieves the #ClutterState for the given @state_name. + +If @name is %NULL, this function will return the default +#ClutterState instance. + + + a pointer to the #ClutterState for the + given name. The #ClutterState is owned by the #ClutterScript instance + and it should not be unreferenced + + + + + a #ClutterScript + + + + the name of the #ClutterState, or %NULL + + + + + + Retrieves the translation domain set using +clutter_script_set_translation_domain(). + + + the translation domain, if any is set, + or %NULL + + + + + a #ClutterScript + + + + + + Looks up a type by name, using the virtual function that +#ClutterScript has for that purpose. This function should +rarely be used. + + + the type for the requested type name, or + %G_TYPE_INVALID if not corresponding type was found. + + + + + a #ClutterScript + + + + name of the type to look up + + + + + + Retrieves all the objects created by @script. + +Note: this function does not increment the reference count of the +objects it returns. + + + a list + of #GObject<!-- -->s, or %NULL. The objects are owned by the + #ClutterScript instance. Use g_list_free() on the returned list when + done. + + + + + + + a #ClutterScript + + + + + + Loads the definitions from @data into @script and merges with +the currently loaded ones, if any. + + + on error, zero is returned and @error is set + accordingly. On success, the merge id for the UI definitions is + returned. You can use the merge id with clutter_script_unmerge_objects(). + + + + + a #ClutterScript + + + + a buffer containing the definitions + + + + the length of the buffer, or -1 if @data is a NUL-terminated + buffer + + + + + + Loads the definitions from @filename into @script and merges with +the currently loaded ones, if any. + + + on error, zero is returned and @error is set + accordingly. On success, the merge id for the UI definitions is + returned. You can use the merge id with clutter_script_unmerge_objects(). + + + + + a #ClutterScript + + + + the full path to the definition file + + + + + + Loads the definitions from a resource file into @script and merges with +the currently loaded ones, if any. + + + on error, zero is returned and @error is set + accordingly. On success, the merge id for the UI definitions is + returned. You can use the merge id with clutter_script_unmerge_objects(). + + + + + a #ClutterScript + + + + the resource path of the file to parse + + + + + + Looks up @filename inside the search paths of @script. If @filename +is found, its full path will be returned . + + + the full path of @filename or %NULL if no path was + found. + + + + + a #ClutterScript + + + + the name of the file to lookup + + + + + + Sets the translation domain for @script. + + + + + + + a #ClutterScript + + + + the translation domain, or %NULL + + + + + + Unmerges the objects identified by @merge_id. + + + + + + + a #ClutterScript + + + + merge id returned when loading a UI definition + + + + + + The path of the currently parsed file. If #ClutterScript:filename-set +is %FALSE then the value of this property is undefined. + + + + Whether the #ClutterScript:filename property is set. If this property +is %TRUE then the currently parsed data comes from a file, and the +file name is stored inside the #ClutterScript:filename property. + + + + The translation domain, used to localize strings marked as translatable +inside a UI definition. + +If #ClutterScript:translation-domain is set to %NULL, #ClutterScript +will use gettext(), otherwise g_dgettext() will be used. + + + + + + + + + + + The #ClutterScriptClass structure contains only private data + + + + + + + + + the type for the requested type name, or + %G_TYPE_INVALID if not corresponding type was found. + + + + + a #ClutterScript + + + + name of the type to look up + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This is the signature of a function used to connect signals. It is used +by the clutter_script_connect_signals_full() function. It is mainly +intended for interpreted language bindings, but could be useful where the +programmer wants more control over the signal connection process. + + + + + + + a #ClutterScript + + + + the object to connect + + + + the name of the signal + + + + the name of the signal handler + + + + the object to connect the signal to, or %NULL + + + + signal connection flags + + + + user data to pass to the signal handler + + + + + + #ClutterScript error enumeration. + + Type function not found + or invalid + + + Property not found or invalid + + + Invalid value + + + + + + + + + + + + #ClutterScriptable is an opaque structure whose members cannot be directly +accessed + + + Retrieves the id of @scriptable set using clutter_scriptable_set_id(). + + + the id of the object. The returned string is owned by + the scriptable object and should never be modified of freed + + + + + a #ClutterScriptable + + + + + + Parses the passed JSON node. The implementation must set the type +of the passed #GValue pointer using g_value_init(). + + + %TRUE if the node was successfully parsed, %FALSE otherwise. + + + + + a #ClutterScriptable + + + + the #ClutterScript creating the scriptable instance + + + + the generic value to be set + + + + the name of the node + + + + the JSON node to be parsed + + + + + + Overrides the common properties setting. The underlying virtual +function should be used when implementing custom properties. + + + + + + + a #ClutterScriptable + + + + the #ClutterScript creating the scriptable instance + + + + the name of the property + + + + the value of the property + + + + + + Sets @id_ as the unique Clutter script it for this instance of +#ClutterScriptableIface. + +This name can be used by user interface designer applications to +define a unique name for an object constructable using the UI +definition language parsed by #ClutterScript. + + + + + + + a #ClutterScriptable + + + + the #ClutterScript id of the object + + + + + + Retrieves the id of @scriptable set using clutter_scriptable_set_id(). + + + the id of the object. The returned string is owned by + the scriptable object and should never be modified of freed + + + + + a #ClutterScriptable + + + + + + Parses the passed JSON node. The implementation must set the type +of the passed #GValue pointer using g_value_init(). + + + %TRUE if the node was successfully parsed, %FALSE otherwise. + + + + + a #ClutterScriptable + + + + the #ClutterScript creating the scriptable instance + + + + the generic value to be set + + + + the name of the node + + + + the JSON node to be parsed + + + + + + Overrides the common properties setting. The underlying virtual +function should be used when implementing custom properties. + + + + + + + a #ClutterScriptable + + + + the #ClutterScript creating the scriptable instance + + + + the name of the property + + + + the value of the property + + + + + + Sets @id_ as the unique Clutter script it for this instance of +#ClutterScriptableIface. + +This name can be used by user interface designer applications to +define a unique name for an object constructable using the UI +definition language parsed by #ClutterScript. + + + + + + + a #ClutterScriptable + + + + the #ClutterScript id of the object + + + + + + + Interface for implementing "scriptable" objects. An object implementing +this interface can override the parsing and properties setting sequence +when loading a UI definition data with #ClutterScript + + + + + + + + + + + + + a #ClutterScriptable + + + + the #ClutterScript id of the object + + + + + + + + + + the id of the object. The returned string is owned by + the scriptable object and should never be modified of freed + + + + + a #ClutterScriptable + + + + + + + + + + %TRUE if the node was successfully parsed, %FALSE otherwise. + + + + + a #ClutterScriptable + + + + the #ClutterScript creating the scriptable instance + + + + the generic value to be set + + + + the name of the node + + + + the JSON node to be parsed + + + + + + + + + + + + + + a #ClutterScriptable + + + + the #ClutterScript creating the scriptable instance + + + + the name of the property + + + + the value of the property + + + + + + + + The #ClutterScrollActor structure contains only +private data, and should be accessed using the provided API. + + + + + + + Creates a new #ClutterScrollActor. + + + The newly created #ClutterScrollActor + instance. + + + + + Retrieves the #ClutterScrollActor:scroll-mode property + + + the scrolling mode + + + + + a #ClutterScrollActor + + + + + + Scrolls the contents of @actor so that @point is the new origin +of the visible area. + +The coordinates of @point must be relative to the @actor. + +This function will use the currently set easing state of the @actor +to transition from the current scroll origin to the new one. + + + + + + + a #ClutterScrollActor + + + + a #ClutterPoint + + + + + + Scrolls @actor so that @rect is in the visible portion. + + + + + + + a #ClutterScrollActor + + + + a #ClutterRect + + + + + + Sets the #ClutterScrollActor:scroll-mode property. + + + + + + + a #ClutterScrollActor + + + + a #ClutterScrollMode + + + + + + The scrollin direction. + + + + + + + + + + + The #ClutterScrollActor structure contains only +private data. + + + + + + + + + + + + + + + + + + + Direction of a pointer scroll event. + +The %CLUTTER_SCROLL_SMOOTH value implies that the #ClutterScrollEvent +has precise scrolling delta information. + + Scroll up + + + Scroll down + + + Scroll left + + + Scroll right + + + Precise scrolling delta (available in 1.10) + + + + + + + + Scroll wheel (or similar device) event + + + event type + + + + event time + + + + event flags + + + + event source stage + + + + event source actor + + + + event X coordinate + + + + event Y coordinate + + + + direction of the scrolling + + + + button modifiers + + + + reserved for future use + + + + the device that originated the event. If you want the physical +device the event originated from, use clutter_event_get_source_device() + + + + the source of scroll events. This field is available since 1.26 + + + + the axes that were stopped in this event. This field is available since 1.26 + + + + + Flags used to notify the axes that were stopped in a #ClutterScrollEvent. +These can be used to trigger post-scroll effects like kinetic scrolling. + + no axis was stopped. + + + The horizontal axis stopped. + + + The vertical axis stopped. + + + + Scroll modes. + + Ignore scrolling + + + Scroll only horizontally + + + Scroll only vertically + + + Scroll in both directions + + + + The scroll source determines the source of the scroll event. Keep in mind +that the source device #ClutterInputDeviceType is not enough to infer +the scroll source. + + Source of scroll events is unknown. + + + The scroll event is originated by a mouse wheel. + + + The scroll event is originated by one or more + fingers on the device (eg. touchpads). + + + The scroll event is originated by the + motion of some device (eg. a scroll button is set). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + `ClutterSettings` is an opaque structure whose +members cannot be directly accessed. + + + Retrieves the singleton instance of #ClutterSettings + + + the instance of #ClutterSettings. The + returned object is owned by Clutter and it should not be unreferenced + directly + + + + + A back pointer to the #ClutterBackend + + + + The default distance that the cursor of a pointer device +should travel before a drag operation should start. + + + + The maximum distance, in pixels, between button-press events that +determines whether or not to increase the click count by 1. + + + + The time, in milliseconds, that should elapse between button-press +events in order to increase the click count by 1. + + + + Whether or not to use antialiasing when rendering text; a value +of 1 enables it unconditionally; a value of 0 disables it +unconditionally; and -1 will use the system's default. + + + + The DPI used when rendering text, as a value of 1024 * dots/inch. + +If set to -1, the system's default will be used instead + + + + The style of the hinting used when rendering text. Valid values +are: + + - hintnone + - hintslight + - hintmedium + - hintfull + + + + Whether or not to use hinting when rendering text; a value of 1 +unconditionally enables it; a value of 0 unconditionally disables +it; and a value of -1 will use the system's default. + + + + The default font name that should be used by text actors, as +a string that can be passed to pango_font_description_from_string(). + + + + The type of sub-pixel antialiasing used when rendering text. Valid +values are: + + - none + - rgb + - bgr + - vrgb + - vbgr + + + + + + + Sets the minimum duration for a press to be recognized as a long press +gesture. The duration is expressed in milliseconds. + +See also #ClutterClickAction:long-press-duration. + + + + + + + + + + + + + + + + + The #ClutterShaderEffect structure contains +only private data and should be accessed using the provided API + + + Creates a new #ClutterShaderEffect, to be applied to an actor using +clutter_actor_add_effect(). + +The effect will be empty until clutter_shader_effect_set_shader_source() +is called. + + + the newly created #ClutterShaderEffect. + Use g_object_unref() when done. + + + + + the type of the shader, either %CLUTTER_FRAGMENT_SHADER, + or %CLUTTER_VERTEX_SHADER + + + + + + + + + + + + + + + + + Retrieves a pointer to the program's handle + + + a pointer to the program's handle, + or %COGL_INVALID_HANDLE + + + + + a #ClutterShaderEffect + + + + + + Retrieves a pointer to the shader's handle + + + a pointer to the shader's handle, + or %COGL_INVALID_HANDLE + + + + + a #ClutterShaderEffect + + + + + + Sets the source of the GLSL shader used by @effect + +This function should only be called by implementations of +the #ClutterShaderEffect class, and not by application code. + +This function can only be called once; subsequent calls will +yield no result. + + + %TRUE if the source was set + + + + + a #ClutterShaderEffect + + + + the source of a GLSL shader + + + + + + Sets a list of values as the payload for the uniform @name inside +the shader effect + +The @gtype must be one of: %G_TYPE_INT, for 1 or more integer values; +%G_TYPE_FLOAT, for 1 or more floating point values; +%CLUTTER_TYPE_SHADER_INT, for a pointer to an array of integer values; +%CLUTTER_TYPE_SHADER_FLOAT, for a pointer to an array of floating point +values; and %CLUTTER_TYPE_SHADER_MATRIX, for a pointer to an array of +floating point values mapping a matrix + +The number of values interepreted is defined by the @n_value +argument, and by the @gtype argument. For instance, a uniform named +"sampler0" and containing a single integer value is set using: + +|[<!-- language="C" --> + clutter_shader_effect_set_uniform (effect, "sampler0", + G_TYPE_INT, 1, + 0); +]| + +While a uniform named "components" and containing a 3-elements vector +of floating point values (a "vec3") can be set using: + +|[<!-- language="C" --> + gfloat component_r, component_g, component_b; + + clutter_shader_effect_set_uniform (effect, "components", + G_TYPE_FLOAT, 3, + component_r, + component_g, + component_b); +]| + +or can be set using: + +|[<!-- language="C" --> + gfloat component_vec[3]; + + clutter_shader_effect_set_uniform (effect, "components", + CLUTTER_TYPE_SHADER_FLOAT, 3, + component_vec); +]| + +Finally, a uniform named "map" and containing a matrix can be set using: + +|[<!-- language="C" --> + clutter_shader_effect_set_uniform (effect, "map", + CLUTTER_TYPE_SHADER_MATRIX, 1, + cogl_matrix_get_array (&matrix)); +]| + + + + + + + a #ClutterShaderEffect + + + + the name of the uniform to set + + + + the type of the uniform to set + + + + the number of values + + + + a list of values + + + + + + Sets @value as the payload for the uniform @name inside the shader +effect + +The #GType of the @value must be one of: %G_TYPE_INT, for a single +integer value; %G_TYPE_FLOAT, for a single floating point value; +%CLUTTER_TYPE_SHADER_INT, for an array of integer values; +%CLUTTER_TYPE_SHADER_FLOAT, for an array of floating point values; +and %CLUTTER_TYPE_SHADER_MATRIX, for a matrix of floating point +values. It also accepts %G_TYPE_DOUBLE for compatibility with other +languages than C. + + + + + + + a #ClutterShaderEffect + + + + the name of the uniform to set + + + + a #GValue with the value of the uniform to set + + + + + + The type of shader that is used by the effect. This property +should be set by the constructor of #ClutterShaderEffect +sub-classes. + + + + + + + + + + + The #ClutterShaderEffectClass structure contains +only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The type of GLSL shader program + + a vertex shader + + + a fragment shader + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A size, in 2D space. + + + the width, in pixels + + + + the height, in pixels + + + + Allocates a new #ClutterSize. + + + the newly allocated #ClutterSize. + Use clutter_size_free() to free its resources. + + + + + Creates a new #ClutterSize and duplicates @size. + + + the newly allocated #ClutterSize. + Use clutter_size_free() to free its resources. + + + + + a #ClutterSize + + + + + + Compares two #ClutterSize for equality. + + + %TRUE if the two #ClutterSize are equal + + + + + a #ClutterSize to compare + + + + a #ClutterSize to compare + + + + + + Frees the resources allocated for @size. + + + + + + + a #ClutterSize + + + + + + Initializes a #ClutterSize with the given dimensions. + + + the initialized #ClutterSize + + + + + a #ClutterSize + + + + the width + + + + the height + + + + + + + + + + + + + + + #ClutterSnapConstraint is an opaque structure +whose members cannot be directly accesses + + + Creates a new #ClutterSnapConstraint that will snap a #ClutterActor +to the @edge of @source, with the given @offset. + + + the newly created #ClutterSnapConstraint + + + + + the #ClutterActor to use as the source of + the constraint, or %NULL + + + + the edge of the actor to use in the constraint + + + + the edge of @source to use in the constraint + + + + the offset to apply to the constraint, in pixels + + + + + + Retrieves the edges used by the @constraint + + + + + + + a #ClutterSnapConstraint + + + + return location for the actor's edge, or %NULL + + + + return location for the source's edge, or %NULL + + + + + + Retrieves the offset set using clutter_snap_constraint_set_offset() + + + the offset, in pixels + + + + + a #ClutterSnapConstraint + + + + + + Retrieves the #ClutterActor set using clutter_snap_constraint_set_source() + + + a pointer to the source actor + + + + + a #ClutterSnapConstraint + + + + + + Sets the edges to be used by the @constraint + +The @from_edge is the edge on the #ClutterActor to which @constraint +has been added. The @to_edge is the edge of the #ClutterActor inside +the #ClutterSnapConstraint:source property. + + + + + + + a #ClutterSnapConstraint + + + + the edge on the actor + + + + the edge on the source + + + + + + Sets the offset to be applied to the constraint + + + + + + + a #ClutterSnapConstraint + + + + the offset to apply, in pixels + + + + + + Sets the source #ClutterActor for the constraint + + + + + + + a #ClutterSnapConstraint + + + + a #ClutterActor, or %NULL to unset the source + + + + + + The edge of the #ClutterActor that should be snapped + + + + The offset, in pixels, between #ClutterSnapConstraint:from-edge +and #ClutterSnapConstraint:to-edge + + + + The #ClutterActor used as the source for the constraint + + + + The edge of the #ClutterSnapConstraint:source that should be snapped + + + + + + + + The edge to snap + + the top edge + + + the right edge + + + the bottom edge + + + the left edge + + + + + + + + + + + + The #ClutterStage structure contains only private data +and should be accessed using the provided API + + + + + + + Creates a new, non-default stage. A non-default stage is a new +top-level actor which can be used as another container. It works +exactly like the default stage, but while clutter_stage_get_default() +will always return the same instance, you will have to keep a pointer +to any #ClutterStage returned by clutter_stage_new(). + +The ability to support multiple stages depends on the current +backend. Use clutter_feature_available() and +%CLUTTER_FEATURE_STAGE_MULTIPLE to check at runtime whether a +backend supports multiple stages. + + + a new stage, or %NULL if the default backend does + not support multiple stages. Use clutter_actor_destroy() to + programmatically close the returned stage. + + + + + Retrieves a #ClutterStage singleton. + +This function is not as useful as it sounds, and will most likely +by deprecated in the future. Application code should only create +a #ClutterStage instance using clutter_stage_new(), and manage the +lifetime of the stage manually. + +The default stage singleton has a platform-specific behaviour: on +platforms without the %CLUTTER_FEATURE_STAGE_MULTIPLE feature flag +set, the first #ClutterStage instance will also be set to be the +default stage instance, and this function will always return a +pointer to it. + +On platforms with the %CLUTTER_FEATURE_STAGE_MULTIPLE feature flag +set, the default stage will be created by the first call to this +function, and every following call will return the same pointer to +it. + Use clutter_stage_new() instead. + + + the main + #ClutterStage. You should never destroy or unref the returned + actor. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This function essentially makes sure the right GL context is +current for the passed stage. It is not intended to +be used by applications. + mutter: This function does not do anything. + + + + + + + the #ClutterStage + + + + + + Ensures that @stage is redrawn + +This function should not be called by applications: it is +used when embedding a #ClutterStage into a toolkit with +another windowing system, like GTK+. + + + + + + + a #ClutterStage + + + + + + Ensures that the GL viewport is updated with the current +stage window size. + +This function will queue a redraw of @stage. + +This function should not be called by applications; it is used +when embedding a #ClutterStage into a toolkit with another +windowing system, like GTK+. + + + + + + + a #ClutterStage + + + + + + This function is used to emit an event on the main stage. + +You should rarely need to use this function, except for +synthetised events. + + + the return value from the signal emission + + + + + a #ClutterStage + + + + a #ClutterEvent + + + + + + Freezing updates makes Clutter stop processing events, +redrawing, and advancing timelines, by pausing the master clock. This is +necessary when implementing a display server, to ensure that Clutter doesn't +keep trying to page flip when DRM master has been dropped, e.g. when VT +switched away. + +The master clock starts out running, so if you are VT switched away on +startup, you need to call this immediately. + +To thaw updates, use clutter_stage_thaw_updates(). + + + + + + + + + + + + Retrieves the value set with clutter_stage_set_accept_focus(). + + + %TRUE if the #ClutterStage should accept focus, and %FALSE + otherwise + + + + + a #ClutterStage + + + + + + Checks the scene at the coordinates @x and @y and returns a pointer +to the #ClutterActor at those coordinates. + +By using @pick_mode it is possible to control which actors will be +painted and thus available. + + + the actor at the specified coordinates, + if any + + + + + a #ClutterStage + + + + how the scene graph should be painted + + + + X coordinate to check + + + + Y coordinate to check + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Retrieves the stage color. + Use clutter_actor_get_background_color() instead. + + + + + + + A #ClutterStage + + + + return location for a #ClutterColor + + + + + + Retrieves the current depth cueing settings from the stage. + This function will always return the default + values of #ClutterFog + + + + + + + the #ClutterStage + + + + return location for a #ClutterFog structure + + + + + + + + + + + + + + + + + Retrieves whether the stage is full screen or not + + + %TRUE if the stage is full screen + + + + + a #ClutterStage + + + + + + Retrieves the actor that is currently under key focus. + + + the actor with key focus, or the stage + + + + + the #ClutterStage + + + + + + Retrieves the minimum size for a stage window as set using +clutter_stage_set_minimum_size(). + +The returned size may not correspond to the actual minimum size and +it is specific to the #ClutterStage implementation inside the +Clutter backend + + + + + + + a #ClutterStage + + + + return location for the minimum width, in pixels, + or %NULL + + + + return location for the minimum height, in pixels, + or %NULL + + + + + + Retrieves the value set using clutter_stage_set_motion_events_enabled(). + + + %TRUE if the per-actor motion event delivery is enabled + and %FALSE otherwise + + + + + a #ClutterStage + + + + + + Retrieves the hint set with clutter_stage_set_no_clear_hint() + + + %TRUE if the stage should not clear itself on every paint + cycle, and %FALSE otherwise + + + + + a #ClutterStage + + + + + + Retrieves the stage perspective. + + + + + + + A #ClutterStage + + + + return location for a + #ClutterPerspective + + + + + + Gets the bounds of the current redraw for @stage in stage pixel +coordinates. E.g., if only a single actor has queued a redraw then +Clutter may redraw the stage with a clip so that it doesn't have to +paint every pixel in the stage. This function would then return the +bounds of that clip. An application can use this information to +avoid some extra work if it knows that some regions of the stage +aren't going to be painted. This should only be called while the +stage is being painted. If there is no current redraw clip then +this function will set @clip to the full extents of the stage. + + + + + + + A #ClutterStage + + + + Return location for the clip bounds + + + + + + Retrieves the value set with clutter_stage_set_throttle_motion_events() + + + %TRUE if the motion events are being throttled, + and %FALSE otherwise + + + + + a #ClutterStage + + + + + + Gets the stage title. + + + pointer to the title string for the stage. The +returned string is owned by the actor and should not +be modified or freed. + + + + + A #ClutterStage + + + + + + Retrieves the value set using clutter_stage_set_use_alpha() + + + %TRUE if the stage should honour the opacity and the + alpha channel of the stage color + + + + + a #ClutterStage + + + + + + Gets whether the depth cueing effect is enabled on @stage. + This function will always return %FALSE + + + %TRUE if the depth cueing effect is enabled + + + + + the #ClutterStage + + + + + + Retrieves the value set with clutter_stage_set_user_resizable(). + + + %TRUE if the stage is resizable by the user. + + + + + a #ClutterStage + + + + + + Makes the cursor invisible on the stage window + + + + + + + a #ClutterStage + + + + + + Checks if @stage is the default stage, or an instance created using +clutter_stage_new() but internally using the same implementation. + Track the stage pointer inside your application + code, or use clutter_actor_get_stage() to retrieve the stage for + a given actor. + + + %TRUE if the passed stage is the default one + + + + + a #ClutterStage + + + + + + + + + + + + + + + + + Queues a redraw for the passed stage. + +Applications should call clutter_actor_queue_redraw() and not +this function. + Use clutter_actor_queue_redraw() instead. + + + + + + + the #ClutterStage + + + + + + Makes a screenshot of the stage in RGBA 8bit data, returns a +linear buffer with @width * 4 as rowstride. + +The alpha data contained in the returned buffer is driver-dependent, +and not guaranteed to hold any sensible value. + + + a pointer to newly allocated memory with the buffer + or %NULL if the read failed. Use g_free() on the returned data + to release the resources it has allocated. + + + + + + + A #ClutterStage + + + + x coordinate of the first pixel that is read from stage + + + + y coordinate of the first pixel that is read from stage + + + + Width dimention of pixels to be read, or -1 for the + entire stage width + + + + Height dimention of pixels to be read, or -1 for the + entire stage height + + + + + + Sets whether the @stage should accept the key focus when shown. + +This function should be called before showing @stage using +clutter_actor_show(). + + + + + + + a #ClutterStage + + + + %TRUE to accept focus on show + + + + + + Sets the stage color. + Use clutter_actor_set_background_color() instead. + + + + + + + A #ClutterStage + + + + A #ClutterColor + + + + + + Sets the fog (also known as "depth cueing") settings for the @stage. + +A #ClutterStage will only use a linear fog progression, which +depends solely on the distance from the viewer. The cogl_set_fog() +function in COGL exposes more of the underlying implementation, +and allows changing the for progression function. It can be directly +used by disabling the #ClutterStage:use-fog property and connecting +a signal handler to the #ClutterActor::paint signal on the @stage, +like: + +|[ + clutter_stage_set_use_fog (stage, FALSE); + g_signal_connect (stage, "paint", G_CALLBACK (on_stage_paint), NULL); +]| + +The paint signal handler will call cogl_set_fog() with the +desired settings: + +|[ + static void + on_stage_paint (ClutterActor *actor) + { + ClutterColor stage_color = { 0, }; + CoglColor fog_color = { 0, }; + + // set the fog color to the stage background color + clutter_stage_get_color (CLUTTER_STAGE (actor), &stage_color); + cogl_color_init_from_4ub (&fog_color, + stage_color.red, + stage_color.green, + stage_color.blue, + stage_color.alpha); + + // enable fog // + cogl_set_fog (&fog_color, + COGL_FOG_MODE_EXPONENTIAL, // mode + 0.5, // density + 5.0, 30.0); // z_near and z_far + } +]| + +The fogging functions only work correctly when the visible actors use +unmultiplied alpha colors. By default Cogl will premultiply textures and +cogl_set_source_color() will premultiply colors, so unless you explicitly +load your textures requesting an unmultiplied internal format and use +cogl_material_set_color() you can only use fogging with fully opaque actors. +Support for premultiplied colors will improve in the future when we can +depend on fragment shaders. + Fog settings are ignored. + + + + + + + the #ClutterStage + + + + a #ClutterFog structure + + + + + + Asks to place the stage window in the fullscreen or unfullscreen +states. + + ( Note that you shouldn't assume the window is definitely full screen +afterward, because other entities (e.g. the user or window manager) +could unfullscreen it again, and not all window managers honor +requests to fullscreen windows. + +If you want to receive notification of the fullscreen state you +should either use the #ClutterStage::fullscreen and +#ClutterStage::unfullscreen signals, or use the notify signal +for the #ClutterStage:fullscreen-set property + + + + + + + a #ClutterStage + + + + %TRUE to to set the stage fullscreen + + + + + + Sets the key focus on @actor. An actor with key focus will receive +all the key events. If @actor is %NULL, the stage will receive +focus. + + + + + + + the #ClutterStage + + + + the actor to set key focus to, or %NULL + + + + + + Sets the minimum size for a stage window, if the default backend +uses #ClutterStage inside a window + +This is a convenience function, and it is equivalent to setting the +#ClutterActor:min-width and #ClutterActor:min-height on @stage + +If the current size of @stage is smaller than the minimum size, the +@stage will be resized to the new @width and @height + +This function has no effect if @stage is fullscreen + + + + + + + a #ClutterStage + + + + width, in pixels + + + + height, in pixels + + + + + + Sets whether per-actor motion events (and relative crossing +events) should be disabled or not. + +The default is %TRUE. + +If @enable is %FALSE the following signals will not be emitted +by the actors children of @stage: + + - #ClutterActor::motion-event + - #ClutterActor::enter-event + - #ClutterActor::leave-event + +The events will still be delivered to the #ClutterStage. + +The main side effect of this function is that disabling the motion +events will disable picking to detect the #ClutterActor underneath +the pointer for each motion event. This is useful, for instance, +when dragging a #ClutterActor across the @stage: the actor underneath +the pointer is not going to change, so it's meaningless to perform +a pick. + + + + + + + a #ClutterStage + + + + %TRUE to enable the motion events delivery, and %FALSE + otherwise + + + + + + Sets whether the @stage should clear itself at the beginning +of each paint cycle or not. + +Clearing the #ClutterStage can be a costly operation, especially +if the stage is always covered - for instance, in a full-screen +video player or in a game with a background texture. + +This setting is a hint; Clutter might discard this hint +depending on its internal state. + +If parts of the stage are visible and you disable clearing you +might end up with visual artifacts while painting the contents of +the stage. + + + + + + + a #ClutterStage + + + + %TRUE if the @stage should not clear itself on every + repaint cycle + + + + + + Sets the stage perspective. Using this function is not recommended +because it will disable Clutter's attempts to generate an +appropriate perspective based on the size of the stage. + + + + + + + A #ClutterStage + + + + A #ClutterPerspective + + + + + + Sets whether motion events received between redraws should +be throttled or not. If motion events are throttled, those +events received by the windowing system between redraws will +be compressed so that only the last event will be propagated +to the @stage and its actors. + +This function should only be used if you want to have all +the motion events delivered to your application code. + + + + + + + a #ClutterStage + + + + %TRUE to throttle motion events + + + + + + Sets the stage title. + + + + + + + A #ClutterStage + + + + A utf8 string for the stage windows title. + + + + + + Sets whether the @stage should honour the #ClutterActor:opacity and +the alpha channel of the #ClutterStage:color + + + + + + + a #ClutterStage + + + + whether the stage should honour the opacity or the + alpha channel of the stage color + + + + + + Sets whether the depth cueing effect on the stage should be enabled +or not. + +Depth cueing is a 3D effect that makes actors farther away from the +viewing point less opaque, by fading them with the stage color. + +The parameters of the GL fog used can be changed using the +clutter_stage_set_fog() function. + Calling this function produces no visible effect + + + + + + + the #ClutterStage + + + + %TRUE for enabling the depth cueing effect + + + + + + Sets if the stage is resizable by user interaction (e.g. via +window manager controls) + + + + + + + a #ClutterStage + + + + whether the stage should be user resizable. + + + + + + Shows the cursor on the stage window + + + + + + + a #ClutterStage + + + + + + Resumes a master clock that has previously been frozen with +clutter_stage_freeze_updates(), and start pumping the master clock +again at the next iteration. Note that if you're switching back to your +own VT, you should probably also queue a stage redraw with +clutter_stage_ensure_redraw(). + + + + + + + + + + + + + + + + + + + + + + + Whether the #ClutterStage should accept key focus when shown. + + + + The background color of the main stage. + Use the #ClutterActor:background-color property of + #ClutterActor instead. + + + + Whether the mouse pointer should be visible + + + + The settings for the GL "fog", used only if #ClutterStage:use-fog +is set to %TRUE + This property does not do anything. + + + + + + + The #ClutterActor that will receive key events from the underlying +windowing system. + +If %NULL, the #ClutterStage will receive the events. + + + + Whether or not the #ClutterStage should clear its contents +before each paint cycle. + +See clutter_stage_set_no_clear_hint() for further information. + + + + Whether the stage should be rendered in an offscreen buffer. + This property does not do anything. + + + + The parameters used for the perspective projection from 3D +coordinates to 2D + + + + The stage's title - usually displayed in stage windows title decorations. + + + + Whether the #ClutterStage should honour the alpha component of the +#ClutterStage:color property when painting. If Clutter is run under +a compositing manager this will result in the stage being blended +with the underlying window(s) + + + + Whether the stage should use a linear GL "fog" in creating the +depth-cueing effect, to enhance the perception of depth by fading +actors farther from the viewpoint. + This property does not do anything. + + + + Whether the stage is resizable via user interaction. + + + + + + + + + + The ::activate signal is emitted when the stage receives key focus +from the underlying window system. + + + + + + The ::after-paint signal is emitted after the stage is painted, +but before the results are displayed on the screen. + + + + + + The ::deactivate signal is emitted when the stage loses key focus +from the underlying window system. + + + + + + The ::delete-event signal is emitted when the user closes a +#ClutterStage window using the window controls. + +Clutter by default will call clutter_main_quit() if @stage is +the default stage, and clutter_actor_destroy() for any other +stage. + +It is possible to override the default behaviour by connecting +a new handler and returning %TRUE there. + +This signal is emitted only on Clutter backends that +embed #ClutterStage in native windows. It is not emitted for +backends that use a static frame buffer. + + + + + + a #ClutterEvent of type %CLUTTER_DELETE + + + + + + The ::fullscreen signal is emitted when the stage is made fullscreen. + + + + + + Signals that the #ClutterStage was presented on the screen to the user. + + + + + + a #CoglFrameEvent + + + + a #ClutterFrameInfo + + + + + + The ::unfullscreen signal is emitted when the stage leaves a fullscreen +state. + + + + + + + The #ClutterStageClass structure contains only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterStageManager structure is private. + + + Returns the default #ClutterStageManager. + + + the default stage manager instance. The returned + object is owned by Clutter and you should not reference or unreference it. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns the default #ClutterStage. + + + the default stage. The returned object + is owned by Clutter and you should never reference or unreference it + + + + + a #ClutterStageManager + + + + + + Lists all currently used stages. + + + a newly + allocated list of #ClutterStage objects. Use g_slist_free() to + deallocate it when done. + + + + + + + a #ClutterStageManager + + + + + + Lists all currently used stages. + + + a pointer + to the internal list of #ClutterStage objects. The returned list + is owned by the #ClutterStageManager and should never be modified + or freed + + + + + + + a #ClutterStageManager + + + + + + Sets @stage as the default stage. + Calling this function has no effect + + + + + + + a #ClutterStageManager + + + + a #ClutterStage + + + + + + The default stage used by Clutter. + + + + The ::stage-added signal is emitted each time a new #ClutterStage +has been added to the stage manager. + + + + + + the added stage + + + + + + The ::stage-removed signal is emitted each time a #ClutterStage +has been removed from the stage manager. + + + + + + the removed stage + + + + + + + The #ClutterStageManagerClass structure contains only private data +and should be accessed using the provided API + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Stage state masks, used by the #ClutterEvent of type %CLUTTER_STAGE_STATE. + + Fullscreen mask + + + Offscreen mask (deprecated) + + + Activated mask + + + + Event signalling a change in the #ClutterStage state. + + + event type + + + + event time + + + + event flags + + + + event source stage + + + + event source actor (unused) + + + + bitwise OR of the changed flags + + + + bitwise OR of the current state flags + + + + + + + + + + + + + The #ClutterState structure contains only +private data and should be accessed using the provided API + + + + Creates a new #ClutterState + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + the newly create #ClutterState instance + + + + + + + + + + + + + + + + Queries the duration used for transitions between a source and +target state pair + +The semantics for the query are the same as the semantics used for +setting the duration with clutter_state_set_duration() + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + the duration, in milliseconds + + + + + a #ClutterState + + + + the name of the source state to + get the duration of, or %NULL + + + + the name of the source state to + get the duration of, or %NULL + + + + + + Returns a list of pointers to opaque structures with accessor functions +that describe the keys added to an animator. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + a + newly allocated #GList of #ClutterStateKey<!-- -->s. The contents of + the returned list are owned by the #ClutterState and should not be + modified or freed. Use g_list_free() to free the resources allocated + by the returned list when done using it + + + + + + + a #ClutterState instance. + + + + the source transition name to query, + or %NULL for all source states + + + + the target transition name to query, + or %NULL for all target states + + + + the specific object instance to list keys for, + or %NULL for all managed objects + + + + the property name to search for, or %NULL + for all properties. + + + + + + Queries the currently set target state. + +During a transition this function will return the target of the transition. + +This function is useful when called from handlers of the +#ClutterState::completed signal. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + a string containing the target state. The returned string + is owned by the #ClutterState and should not be modified or freed + + + + + a #ClutterState + + + + + + Gets a list of all the state names managed by this #ClutterState. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + a newly allocated + #GList of state names. The contents of the returned #GList are owned + by the #ClutterState and should not be modified or freed. Use + g_list_free() to free the resources allocated by the returned list when + done using it + + + + + + + a #ClutterState instance. + + + + + + Gets the timeline driving the #ClutterState + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + the #ClutterTimeline that drives + the state change animations. The returned timeline is owned + by the #ClutterState and it should not be unreferenced directly + + + + + a #ClutterState + + + + + + Removes all keys matching the search criteria passed in arguments. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + + + + + a #ClutterState instance. + + + + the source state name to query, + or %NULL for all source states + + + + the target state name to query, + or %NULL for all target states + + + + the specific object instance to list keys for, + or %NULL for all managed objects + + + + the property name to search for, + or %NULL for all properties. + + + + + + Adds multiple keys to a named state of a #ClutterState instance, specifying +the easing mode and value a given property of an object should have at a +given progress of the animation. + +The mode specified is the easing mode used when going to from the previous +key to the specified key. + +For instance, the code below: + +|[ + clutter_state_set (state, NULL, "hover", + button, "opacity", CLUTTER_LINEAR, 255, + button, "scale-x", CLUTTER_EASE_OUT_CUBIC, 1.2, + button, "scale-y", CLUTTER_EASE_OUT_CUBIC, 1.2, + NULL); +]| + +will create a transition from any state (a @source_state_name or NULL is +treated as a wildcard) and a state named "hover"; the +button object will have the #ClutterActor:opacity +property animated to a value of 255 using %CLUTTER_LINEAR as the animation +mode, and the #ClutterActor:scale-x and #ClutterActor:scale-y properties +animated to a value of 1.2 using %CLUTTER_EASE_OUT_CUBIC as the animation +mode. To change the state (and start the transition) you can use the +clutter_state_set_state() function: + +|[ + clutter_state_set_state (state, "hover"); +]| + +If a given object, state_name, property tuple already exist in the +#ClutterState instance, then the mode and value will be replaced with +the new specified values. + +If a property name is prefixed with "delayed::" two additional +arguments per key are expected: a value relative to the full state time +to pause before transitioning and a similar value to pause after +transitioning, e.g.: + +|[ + clutter_state_set (state, "hover", "toggled", + button, "delayed::scale-x", CLUTTER_LINEAR, 1.0, 0.2, 0.2, + button, "delayed::scale-y", CLUTTER_LINEAR, 1.0, 0.2, 0.2, + NULL); +]| + +will pause for 20% of the duration of the transition before animating, +and 20% of the duration after animating. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + + + + + a #ClutterState instance. + + + + the name of the source state keys are being added for + + + + the name of the target state keys are being added for + + + + a #GObject + + + + a property of @first_object to specify a key for + + + + the id of the alpha function to use + + + + the value @first_property_name should have in @target_state_name, + followed by object, property name, mode, value tuples, terminated + by %NULL + + + + + + Sets the duration of a transition. + +If both state names are %NULL the default duration for @state is set. + +If only @target_state_name is specified, the passed @duration becomes +the default duration for transitions to the target state. + +If both states names are specified, the passed @duration only applies +to the specified transition. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + + + + + a #ClutterState + + + + the name of the source state, or %NULL + + + + the name of the target state, or %NULL + + + + the duration of the transition, in milliseconds + + + + + + Sets one specific end key for a state name, @object, @property_name +combination. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + the #ClutterState instance, allowing + chaining of multiple calls + + + + + a #ClutterState instance. + + + + the source transition to specify + transition for, or %NULL to specify the default fallback when a + more specific source state doesn't exist. + + + + the name of the transition to set a key value for. + + + + the #GObject to set a key for + + + + the property to set a key for + + + + the id of the alpha function to use + + + + the value for property_name of object in state_name + + + + relative time of the transition to be idle in the beginning + of the transition + + + + relative time of the transition to be idle in the end of + the transition + + + + + + Change the current state of #ClutterState to @target_state_name. + +The state will animate during its transition, see +#clutter_state_warp_to_state for animation-free state switching. + +Setting a %NULL state will stop the current animation and unset +the current state, but keys will be left intact. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + the #ClutterTimeline that drives the + state transition. The returned timeline is owned by the #ClutterState + and it should not be unreferenced + + + + + a #ClutterState + + + + the state to transition to + + + + + + Change to the specified target state immediately with no animation. + +See clutter_state_set_state(). + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + the #ClutterTimeline that drives the + state transition. The returned timeline is owned by the #ClutterState + and it should not be unreferenced + + + + + a #ClutterState + + + + the state to transition to + + + + + + Default duration used if an duration has not been specified for a specific +source/target state pair. The values is in milliseconds. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + + The currently set target state, setting it causes the +state machine to transition to the new state, use +clutter_state_warp_to_state() to change state without +a transition. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + + + + + + + + The ::completed signal is emitted when a #ClutterState reaches +the target state specified by clutter_state_set_state() or +clutter_state_warp_to_state(). + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + + + + + The #ClutterStateClass structure contains +only private data + + + + + + + + + + + + + + + + + + + + + + + + + #ClutterStateKey is an opaque structure whose +members cannot be accessed directly + + + Retrieves the easing mode used for @state_key. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + the mode of a #ClutterStateKey + + + + + a #ClutterStateKey + + + + + + Retrieves the object instance this #ClutterStateKey applies to. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + the object this state key applies to. + + + + + a #ClutterStateKey + + + + + + Retrieves the duration of the pause after transitioning is complete +as a fraction of the total transition time. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + the post delay, used after doing the transition. + + + + + a #ClutterStateKey + + + + + + Retrieves the pause before transitioning starts as a fraction of +the total transition time. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + the pre delay used before starting the transition. + + + + + a #ClutterStateKey + + + + + + Retrieves the name of the property this #ClutterStateKey applies to + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + the name of the property. The returned string is owned + by the #ClutterStateKey and should never be modified or freed + + + + + a #ClutterStateKey + + + + + + Retrieves the #GType of the property a key applies to + +You can use this type to initialize the #GValue to pass to +clutter_state_key_get_value() + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + the #GType of the property + + + + + a #ClutterStateKey + + + + + + Retrieves the name of the source state of the @state_key + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + the name of the source state for this key, or %NULL + if this is the generic state key for the given property when + transitioning to the target state. The returned string is owned + by the #ClutterStateKey and should never be modified or freed + + + + + a #ClutterStateKey + + + + + + Get the name of the source state this #ClutterStateKey contains, +or NULL if this is the generic state key for the given property +when transitioning to the target state. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + the name of the source state for this key, or NULL if + the key is generic + + + + + a #ClutterStateKey + + + + + + Retrieves a copy of the value for a #ClutterStateKey. + +The #GValue needs to be already initialized for the value type +of the property or to a type that allow transformation from the value +type of the key. + +Use g_value_unset() when done. + Use #ClutterKeyframeTransition and + #ClutterTransitionGroup instead + + + %TRUE if the value was successfully retrieved, + and %FALSE otherwise + + + + + a #ClutterStateKey + + + + a #GValue initialized with the correct type for the @state_key + + + + + + + + + + Named colors, for accessing global colors defined by Clutter + + White color (ffffffff) + + + Black color (000000ff) + + + Red color (ff0000ff) + + + Dark red color (800000ff) + + + Green color (00ff00ff) + + + Dark green color (008000ff) + + + Blue color (0000ffff) + + + Dark blue color (000080ff) + + + Cyan color (00ffffff) + + + Dark cyan color (008080ff) + + + Magenta color (ff00ffff) + + + Dark magenta color (800080ff) + + + Yellow color (ffff00ff) + + + Dark yellow color (808000ff) + + + Gray color (a0a0a4ff) + + + Dark Gray color (808080ff) + + + Light gray color (c0c0c0ff) + + + Butter color (edd400ff) + + + Light butter color (fce94fff) + + + Dark butter color (c4a000ff) + + + Orange color (f57900ff) + + + Light orange color (fcaf3fff) + + + Dark orange color (ce5c00ff) + + + Chocolate color (c17d11ff) + + + Light chocolate color (e9b96eff) + + + Dark chocolate color (8f5902ff) + + + Chameleon color (73d216ff) + + + Light chameleon color (8ae234ff) + + + Dark chameleon color (4e9a06ff) + + + Sky color (3465a4ff) + + + Light sky color (729fcfff) + + + Dark sky color (204a87ff) + + + Plum color (75507bff) + + + Light plum color (ad7fa8ff) + + + Dark plum color (5c3566ff) + + + Scarlet red color (cc0000ff) + + + Light scarlet red color (ef2929ff) + + + Dark scarlet red color (a40000ff) + + + Aluminium, first variant (eeeeecff) + + + Aluminium, second variant (d3d7cfff) + + + Aluminium, third variant (babdb6ff) + + + Aluminium, fourth variant (888a85ff) + + + Aluminium, fifth variant (555753ff) + + + Aluminium, sixth variant (2e3436ff) + + + Transparent color (00000000) + + + + Change the value transition of a step function. + +See clutter_timeline_set_step_progress(). + + The change in the value of a + %CLUTTER_STEP progress mode should occur at the start of + the transition + + + The change in the value of a + %CLUTTER_STEP progress mode should occur at the end of + the transition + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterSwipeAction structure contains +only private data and should be accessed using the provided API + + + Creates a new #ClutterSwipeAction instance + + + the newly created #ClutterSwipeAction + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The ::swept signal is emitted when a swipe gesture is recognized on the +attached actor. + Use the ::swipe signal instead. + + + + + + the #ClutterActor attached to the @action + + + + the main direction of the swipe gesture + + + + + + The ::swipe signal is emitted when a swipe gesture is recognized on the +attached actor. + + %TRUE if the swipe should continue, and %FALSE if + the swipe should be cancelled. + + + + + the #ClutterActor attached to the @action + + + + the main direction of the swipe gesture + + + + + + + The #ClutterSwipeActionClass structure contains +only private data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The main direction of the swipe gesture + + Upwards swipe gesture + + + Downwards swipe gesture + + + Leftwards swipe gesture + + + Rightwards swipe gesture + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The alignment policies available on each axis of the #ClutterTableLayout + Use the alignment properties of #ClutterActor + + Align the child to the top or to the + left of a cell in the table, depending on the axis + + + Align the child to the center of + a cell in the table + + + Align the child to the bottom or to the + right of a cell in the table, depending on the axis + + + + The #ClutterTableLayout structure contains only private data +and should be accessed using the provided API + Use #ClutterGridLayout instead + + + Creates a new #ClutterTableLayout layout manager + Use #ClutterGridLayout instead + + + the newly created #ClutterTableLayout + + + + + Retrieves the horizontal and vertical alignment policies for @actor +as set using clutter_table_layout_pack() or +clutter_table_layout_set_alignment(). + Use clutter_actor_get_x_align() and + clutter_actor_get_y_align() instead. + + + + + + + a #ClutterTableLayout + + + + a #ClutterActor child of @layout + + + + return location for the horizontal alignment policy + + + + return location for the vertical alignment policy + + + + + + Retrieve the current number of columns in @layout + No direct replacement is available + + + the number of columns + + + + + A #ClutterTableLayout + + + + + + Retrieves the spacing set using clutter_table_layout_set_column_spacing() + Use #ClutterGridLayout:column-spacing + + + the spacing between columns of the #ClutterTableLayout + + + + + a #ClutterTableLayout + + + + + + Retrieves the duration set using clutter_table_layout_set_easing_duration() + #ClutterTableLayout will honour the easing state + of the children when allocating them. See clutter_actor_set_easing_mode() + and clutter_actor_set_easing_duration(). + + + the duration of the animations, in milliseconds + + + + + a #ClutterTableLayout + + + + + + Retrieves the easing mode set using clutter_table_layout_set_easing_mode() + #ClutterTableLayout will honour the easing state + of the children when allocating them. See clutter_actor_set_easing_mode() + and clutter_actor_set_easing_duration(). + + + an easing mode + + + + + a #ClutterTableLayout + + + + + + Retrieves the horizontal and vertical expand policies for @actor +as set using clutter_table_layout_pack() or clutter_table_layout_set_expand() + Use clutter_actor_get_x_expand() and + clutter_actor_get_y_expand() instead. + + + + + + + a #ClutterTableLayout + + + + a #ClutterActor child of @layout + + + + return location for the horizontal expand policy + + + + return location for the vertical expand policy + + + + + + Retrieves the horizontal and vertical fill policies for @actor +as set using clutter_table_layout_pack() or clutter_table_layout_set_fill() + Use clutter_actor_get_x_align() and + clutter_actor_get_y_align() instead. + + + + + + + a #ClutterTableLayout + + + + a #ClutterActor child of @layout + + + + return location for the horizontal fill policy + + + + return location for the vertical fill policy + + + + + + Retrieve the current number rows in the @layout + No direct replacement is available + + + the number of rows + + + + + A #ClutterTableLayout + + + + + + Retrieves the spacing set using clutter_table_layout_set_row_spacing() + Use #ClutterGridLayout:row-spacing instead + + + the spacing between rows of the #ClutterTableLayout + + + + + a #ClutterTableLayout + + + + + + Retrieves the row and column span for @actor as set using +clutter_table_layout_pack() or clutter_table_layout_set_span() + Use the `width` and `height` layout properties + of #ClutterGridLayout instead + + + + + + + a #ClutterTableLayout + + + + a #ClutterActor child of @layout + + + + return location for the col span + + + + return location for the row span + + + + + + Retrieves whether @layout should animate changes in the layout properties + +Since clutter_table_layout_set_use_animations() + #ClutterTableLayout will honour the easing state + of the children when allocating them. See clutter_actor_set_easing_mode() + and clutter_actor_set_easing_duration(). + + + %TRUE if the animations should be used, %FALSE otherwise + + + + + a #ClutterTableLayout + + + + + + Packs @actor inside the #ClutterContainer associated to @layout +at the given row and column. + Use clutter_grid_layout_attach_child() instead + + + + + + + a #ClutterTableLayout + + + + a #ClutterActor + + + + the column the @actor should be put, or -1 to append + + + + the row the @actor should be put, or -1 to append + + + + + + Sets the horizontal and vertical alignment policies for @actor +inside @layout + Use clutter_actor_set_x_align() and + clutter_actor_set_y_align() instead. + + + + + + + a #ClutterTableLayout + + + + a #ClutterActor child of @layout + + + + Horizontal alignment policy for @actor + + + + Vertical alignment policy for @actor + + + + + + Sets the spacing between columns of @layout + Use #ClutterGridLayout:column-spacing instead + + + + + + + a #ClutterTableLayout + + + + the spacing between columns of the layout, in pixels + + + + + + Sets the duration of the animations used by @layout when animating changes +in the layout properties + +Use clutter_table_layout_set_use_animations() to enable and disable the +animations + #ClutterTableLayout will honour the easing state + of the children when allocating them. See clutter_actor_set_easing_mode() + and clutter_actor_set_easing_duration(). + + + + + + + a #ClutterTableLayout + + + + the duration of the animations, in milliseconds + + + + + + Sets the easing mode to be used by @layout when animating changes in layout +properties + +Use clutter_table_layout_set_use_animations() to enable and disable the +animations + #ClutterTableLayout will honour the easing state + of the children when allocating them. See clutter_actor_set_easing_mode() + and clutter_actor_set_easing_duration(). + + + + + + + a #ClutterTableLayout + + + + an easing mode, either from #ClutterAnimationMode or a logical id + from clutter_alpha_register_func() + + + + + + Sets the horizontal and vertical expand policies for @actor +inside @layout + Use clutter_actor_set_x_expand() or + clutter_actor_set_y_expand() instead. + + + + + + + a #ClutterTableLayout + + + + a #ClutterActor child of @layout + + + + whether @actor should allocate extra space horizontally + + + + whether @actor should allocate extra space vertically + + + + + + Sets the horizontal and vertical fill policies for @actor +inside @layout + Use clutter_actor_set_x_align() and + clutter_actor_set_y_align() instead. + + + + + + + a #ClutterTableLayout + + + + a #ClutterActor child of @layout + + + + whether @actor should fill horizontally the allocated space + + + + whether @actor should fill vertically the allocated space + + + + + + Sets the spacing between rows of @layout + Use #ClutterGridLayout:row-spacing instead + + + + + + + a #ClutterTableLayout + + + + the spacing between rows of the layout, in pixels + + + + + + Sets the row and column span for @actor +inside @layout + Use the `width` and `height` layout properties + of #ClutterGridLayout instead + + + + + + + a #ClutterTableLayout + + + + a #ClutterActor child of @layout + + + + Column span for @actor + + + + Row span for @actor + + + + + + Sets whether @layout should animate changes in the layout properties + +The duration of the animations is controlled by +clutter_table_layout_set_easing_duration(); the easing mode to be used +by the animations is controlled by clutter_table_layout_set_easing_mode() + #ClutterTableLayout will honour the easing state + of the children when allocating them. See clutter_actor_set_easing_mode() + and clutter_actor_set_easing_duration(). + + + + + + + a #ClutterTableLayout + + + + %TRUE if the @layout should use animations + + + + + + The spacing between columns of the #ClutterTableLayout, in pixels + Use #ClutterGridLayout:column-spacing instead + + + + The duration of the animations, in case #ClutterTableLayout:use-animations +is set to %TRUE. + +The duration is expressed in milliseconds. + #ClutterTableLayout will honour the easing state + of the children when allocating them + + + + The easing mode for the animations, in case +#ClutterTableLayout:use-animations is set to %TRUE. + +The easing mode has the same semantics of #ClutterAnimation:mode: it can +either be a value from the #ClutterAnimationMode enumeration, like +%CLUTTER_EASE_OUT_CUBIC, or a logical id as returned by +clutter_alpha_register_func(). + +The default value is %CLUTTER_EASE_OUT_CUBIC. + #ClutterTableLayout will honour the easing state + of the children when allocating them + + + + The spacing between rows of the #ClutterTableLayout, in pixels + Use #ClutterGridLayout:row-spacing instead + + + + Whether the #ClutterTableLayout should animate changes in the +layout properties. + +By default, #ClutterTableLayout will honour the easing state of +the children when allocating them. Setting this property to +%TRUE will override the easing state with the layout manager's +#ClutterTableLayout:easing-mode and #ClutterTableLayout:easing-duration +properties. + #ClutterTableLayout will honour the easing state + of the children when allocating them + + + + + + + + + + + The #ClutterTableLayoutClass structure contains only private +data and should be accessed using the provided API + Use #ClutterGridLayout instead + + + + + + + + + + + + + + The #ClutterTapAction structure contains +only private data and should be accessed using the provided API + + + Creates a new #ClutterTapAction instance + + + the newly created #ClutterTapAction + + + + + + + + + + + + + + + + + + + + + + The ::tap signal is emitted when the tap gesture is complete. + + + + + + the #ClutterActor attached to the @action + + + + + + + The #ClutterTapActionClass structure contains +only private data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterText struct contains only private data. + + + + + + + Creates a new #ClutterText actor. This actor can be used to +display and edit text. + + + the newly created #ClutterText actor + + + + + Creates a new #ClutterText actor, using @font_name as the font +description; @text will be used to set the contents of the actor; +and @color will be used as the color to render @text. + +This function is equivalent to calling clutter_text_new(), +clutter_text_set_font_name(), clutter_text_set_text() and +clutter_text_set_color(). + + + the newly created #ClutterText actor + + + + + a string with a font description + + + + the contents of the actor + + + + the color to be used to render @text + + + + + + Creates a new entry with the specified text buffer. + + + a new #ClutterText + + + + + The buffer to use for the new #ClutterText. + + + + + + Creates a new #ClutterText actor, using @font_name as the font +description; @text will be used to set the contents of the actor. + +This function is equivalent to calling clutter_text_new(), +clutter_text_set_font_name(), and clutter_text_set_text(). + + + the newly created #ClutterText actor + + + + + a string with a font description + + + + the contents of the actor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Emits the #ClutterText::activate signal, if @self has been set +as activatable using clutter_text_set_activatable(). + +This function can be used to emit the ::activate signal inside +a #ClutterActor::captured-event or #ClutterActor::key-press-event +signal handlers before the default signal handler for the +#ClutterText is invoked. + + + %TRUE if the ::activate signal has been emitted, + and %FALSE otherwise + + + + + a #ClutterText + + + + + + Retrieves the position of the character at the given coordinates. + + + the position of the character + + + + + a #ClutterText + + + + the X coordinate, relative to the actor + + + + the Y coordinate, relative to the actor + + + + + + Deletes @n_chars inside a #ClutterText actor, starting from the +current cursor position. + +Somewhat awkwardly, the cursor position is decremented by the same +number of characters you've deleted. + + + + + + + a #ClutterText + + + + the number of characters to delete + + + + + + Deletes the currently selected text + +This function is only useful in subclasses of #ClutterText + + + %TRUE if text was deleted or if the text actor + is empty, and %FALSE otherwise + + + + + a #ClutterText + + + + + + Deletes the text inside a #ClutterText actor between @start_pos +and @end_pos. + +The starting and ending positions are expressed in characters, +not in bytes. + + + + + + + a #ClutterText + + + + starting position + + + + ending position + + + + + + Retrieves whether a #ClutterText is activatable or not. + + + %TRUE if the actor is activatable + + + + + a #ClutterText + + + + + + Gets the attribute list that was set on the #ClutterText actor +clutter_text_set_attributes(), if any. + + + the attribute list, or %NULL if none was set. The + returned value is owned by the #ClutterText and should not be unreferenced. + + + + + a #ClutterText + + + + + + Get the #ClutterTextBuffer object which holds the text for +this widget. + + + A #GtkEntryBuffer object. + + + + + a #ClutterText + + + + + + Retrieves the contents of the #ClutterText actor between +@start_pos and @end_pos, but not including @end_pos. + +The positions are specified in characters, not in bytes. + + + a newly allocated string with the contents of + the text actor between the specified positions. Use g_free() + to free the resources when done + + + + + a #ClutterText + + + + start of text, in characters + + + + end of text, in characters + + + + + + Retrieves the text color as set by clutter_text_set_color(). + + + + + + + a #ClutterText + + + + return location for a #ClutterColor + + + + + + Retrieves the color of the cursor of a #ClutterText actor. + + + + + + + a #ClutterText + + + + return location for a #ClutterColor + + + + + + Retrieves the cursor position. + + + the cursor position, in characters + + + + + a #ClutterText + + + + + + Retrieves the rectangle that contains the cursor. + +The coordinates of the rectangle's origin are in actor-relative +coordinates. + + + + + + + a #ClutterText + + + + return location of a #ClutterRect + + + + + + Retrieves the size of the cursor of a #ClutterText actor. + + + the size of the cursor, in pixels + + + + + a #ClutterText + + + + + + Retrieves whether the cursor of a #ClutterText actor is visible. + + + %TRUE if the cursor is visible + + + + + a #ClutterText + + + + + + Retrieves whether a #ClutterText is editable or not. + + + %TRUE if the actor is editable + + + + + a #ClutterText + + + + + + Returns the ellipsizing position of a #ClutterText actor, as +set by clutter_text_set_ellipsize(). + + + #PangoEllipsizeMode + + + + + a #ClutterText + + + + + + Retrieves the #PangoFontDescription used by @self + + + a #PangoFontDescription. The returned value is owned + by the #ClutterText actor and it should not be modified or freed + + + + + a #ClutterText + + + + + + Retrieves the font name as set by clutter_text_set_font_name(). + + + a string containing the font name. The returned + string is owned by the #ClutterText actor and should not be + modified or freed + + + + + a #ClutterText + + + + + + + + + + + + + + + + + + + + + + + + + + + + Retrieves whether the #ClutterText actor should justify its contents +on both margins. + + + %TRUE if the text should be justified + + + + + a #ClutterText + + + + + + Retrieves the current #PangoLayout used by a #ClutterText actor. + + + a #PangoLayout. The returned object is owned by + the #ClutterText actor and should not be modified or freed + + + + + a #ClutterText + + + + + + Obtains the coordinates where the #ClutterText will draw the #PangoLayout +representing the text. + + + + + + + a #ClutterText + + + + location to store X offset of layout, or %NULL + + + + location to store Y offset of layout, or %NULL + + + + + + Retrieves the alignment of a #ClutterText, as set by +clutter_text_set_line_alignment(). + + + a #PangoAlignment + + + + + a #ClutterText + + + + + + Retrieves the value set using clutter_text_set_line_wrap(). + + + %TRUE if the #ClutterText actor should wrap + its contents + + + + + a #ClutterText + + + + + + Retrieves the line wrap mode used by the #ClutterText actor. + +See clutter_text_set_line_wrap_mode (). + + + the wrap mode used by the #ClutterText + + + + + a #ClutterText + + + + + + Gets the maximum length of text that can be set into a text actor. + +See clutter_text_set_max_length(). + + + the maximum number of characters. + + + + + a #ClutterText + + + + + + Retrieves the character to use in place of the actual text +as set by clutter_text_set_password_char(). + + + a Unicode character or 0 if the password + character is not set + + + + + a #ClutterText + + + + + + Retrieves whether a #ClutterText is selectable or not. + + + %TRUE if the actor is selectable + + + + + a #ClutterText + + + + + + Retrieves the color of selected text of a #ClutterText actor. + + + + + + + a #ClutterText + + + + return location for a #ClutterColor + + + + + + Retrieves the currently selected text. + + + a newly allocated string containing the currently + selected text, or %NULL. Use g_free() to free the returned + string. + + + + + a #ClutterText + + + + + + Retrieves the other end of the selection of a #ClutterText actor, +in characters from the current cursor position. + + + the position of the other end of the selection + + + + + a #ClutterText + + + + + + Retrieves the color of the selection of a #ClutterText actor. + + + + + + + a #ClutterText + + + + return location for a #ClutterColor + + + + + + Retrieves whether the #ClutterText actor is in single line mode. + + + %TRUE if the #ClutterText actor is in single line mode + + + + + a #ClutterText + + + + + + Retrieves a pointer to the current contents of a #ClutterText +actor. + +If you need a copy of the contents for manipulating, either +use g_strdup() on the returned string, or use: + +|[ + copy = clutter_text_get_chars (text, 0, -1); +]| + +Which will return a newly allocated string. + +If the #ClutterText actor is empty, this function will return +an empty string, and not %NULL. + + + the contents of the actor. The returned + string is owned by the #ClutterText actor and should never be modified + or freed + + + + + a #ClutterText + + + + + + Retrieves whether the contents of the #ClutterText actor should be +parsed for the Pango text markup. + + + %TRUE if the contents will be parsed for markup + + + + + a #ClutterText + + + + + + + + + + + + + + + + + Inserts @text into a #ClutterActor at the given position. + +If @position is a negative number, the text will be appended +at the end of the current contents of the #ClutterText. + +The position is expressed in characters, not in bytes. + + + + + + + a #ClutterText + + + + the text to be inserted + + + + the position of the insertion, or -1 + + + + + + Inserts @wc at the current cursor position of a +#ClutterText actor. + + + + + + + a #ClutterText + + + + a Unicode character + + + + + + Retrieves the coordinates of the given @position. + + + %TRUE if the conversion was successful + + + + + a #ClutterText + + + + position in characters + + + + return location for the X coordinate, or %NULL + + + + return location for the Y coordinate, or %NULL + + + + return location for the line height, or %NULL + + + + + + Sets whether a #ClutterText actor should be activatable. + +An activatable #ClutterText actor will emit the #ClutterText::activate +signal whenever the 'Enter' (or 'Return') key is pressed; if it is not +activatable, a new line will be appended to the current content. + +An activatable #ClutterText must also be set as editable using +clutter_text_set_editable(). + + + + + + + a #ClutterText + + + + whether the #ClutterText actor should be activatable + + + + + + Sets the attributes list that are going to be applied to the +#ClutterText contents. + +The #ClutterText actor will take a reference on the #PangoAttrList +passed to this function. + + + + + + + a #ClutterText + + + + a #PangoAttrList or %NULL to unset the attributes + + + + + + Set the #ClutterTextBuffer object which holds the text for +this widget. + + + + + + + a #ClutterText + + + + a #ClutterTextBuffer + + + + + + Sets the color of the contents of a #ClutterText actor. + +The overall opacity of the #ClutterText actor will be the +result of the alpha value of @color and the composited +opacity of the actor itself on the scenegraph, as returned +by clutter_actor_get_paint_opacity(). + + + + + + + a #ClutterText + + + + a #ClutterColor + + + + + + Sets the color of the cursor of a #ClutterText actor. + +If @color is %NULL, the cursor color will be the same as the +text color. + + + + + + + a #ClutterText + + + + the color of the cursor, or %NULL to unset it + + + + + + Sets the cursor of a #ClutterText actor at @position. + +The position is expressed in characters, not in bytes. + + + + + + + a #ClutterText + + + + the new cursor position, in characters + + + + + + Sets the size of the cursor of a #ClutterText. The cursor +will only be visible if the #ClutterText:cursor-visible property +is set to %TRUE. + + + + + + + a #ClutterText + + + + the size of the cursor, in pixels, or -1 to use the + default value + + + + + + Sets whether the cursor of a #ClutterText actor should be +visible or not. + +The color of the cursor will be the same as the text color +unless clutter_text_set_cursor_color() has been called. + +The size of the cursor can be set using clutter_text_set_cursor_size(). + +The position of the cursor can be changed programmatically using +clutter_text_set_cursor_position(). + + + + + + + a #ClutterText + + + + whether the cursor should be visible + + + + + + Sets whether the #ClutterText actor should be editable. + +An editable #ClutterText with key focus set using +clutter_actor_grab_key_focus() or clutter_stage_set_key_focus() +will receive key events and will update its contents accordingly. + + + + + + + a #ClutterText + + + + whether the #ClutterText should be editable + + + + + + Sets the mode used to ellipsize (add an ellipsis: "...") to the +text if there is not enough space to render the entire contents +of a #ClutterText actor + + + + + + + a #ClutterText + + + + a #PangoEllipsizeMode + + + + + + Sets @font_desc as the font description for a #ClutterText + +The #PangoFontDescription is copied by the #ClutterText actor +so you can safely call pango_font_description_free() on it after +calling this function. + + + + + + + a #ClutterText + + + + a #PangoFontDescription + + + + + + Sets the font used by a #ClutterText. The @font_name string +must either be %NULL, which means that the font name from the +default #ClutterBackend will be used; or be something that can +be parsed by the pango_font_description_from_string() function, +like: + +|[ + // Set the font to the system's Sans, 10 points + clutter_text_set_font_name (text, "Sans 10"); + + // Set the font to the system's Serif, 16 pixels + clutter_text_set_font_name (text, "Serif 16px"); + + // Set the font to Helvetica, 10 points + clutter_text_set_font_name (text, "Helvetica 10"); +]| + + + + + + + a #ClutterText + + + + a font name, or %NULL to set the default font name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sets whether the text of the #ClutterText actor should be justified +on both margins. This setting is ignored if Clutter is compiled +against Pango &lt; 1.18. + + + + + + + a #ClutterText + + + + whether the text should be justified + + + + + + Sets the way that the lines of a wrapped label are aligned with +respect to each other. This does not affect the overall alignment +of the label within its allocated or specified width. + +To align a #ClutterText actor you should add it to a container +that supports alignment, or use the anchor point. + + + + + + + a #ClutterText + + + + A #PangoAlignment + + + + + + Sets whether the contents of a #ClutterText actor should wrap, +if they don't fit the size assigned to the actor. + + + + + + + a #ClutterText + + + + whether the contents should wrap + + + + + + If line wrapping is enabled (see clutter_text_set_line_wrap()) this +function controls how the line wrapping is performed. The default is +%PANGO_WRAP_WORD which means wrap on word boundaries. + + + + + + + a #ClutterText + + + + the line wrapping mode + + + + + + Sets @markup as the contents of a #ClutterText. + +This is a convenience function for setting a string containing +Pango markup, and it is logically equivalent to: + +|[ + /&ast; the order is important &ast;/ + clutter_text_set_text (CLUTTER_TEXT (actor), markup); + clutter_text_set_use_markup (CLUTTER_TEXT (actor), TRUE); +]| + + + + + + + a #ClutterText + + + + a string containing Pango markup. + Passing %NULL is the same as passing "" (the empty string) + + + + + + Sets the maximum allowed length of the contents of the actor. If the +current contents are longer than the given length, then they will be +truncated to fit. + + + + + + + a #ClutterText + + + + the maximum number of characters allowed in the text actor; 0 + to disable or -1 to set the length of the current string + + + + + + Sets the character to use in place of the actual text in a +password text actor. + +If @wc is 0 the text will be displayed as it is entered in the +#ClutterText actor. + + + + + + + a #ClutterText + + + + a Unicode character, or 0 to unset the password character + + + + + + Sets, or unsets, the pre-edit string. This function is useful +for input methods to display a string (with eventual specific +Pango attributes) before it is entered inside the #ClutterText +buffer. + +The preedit string and attributes are ignored if the #ClutterText +actor is not editable. + +This function should not be used by applications + + + + + + + a #ClutterText + + + + the pre-edit string, or %NULL to unset it + + + + the pre-edit string attributes + + + + the cursor position for the pre-edit string + + + + + + Sets whether a #ClutterText actor should be selectable. + +A selectable #ClutterText will allow selecting its contents using +the pointer or the keyboard. + + + + + + + a #ClutterText + + + + whether the #ClutterText actor should be selectable + + + + + + Sets the selected text color of a #ClutterText actor. + +If @color is %NULL, the selected text color will be the same as the +selection color, which then falls back to cursor, and then text color. + + + + + + + a #ClutterText + + + + the selected text color, or %NULL to unset it + + + + + + Selects the region of text between @start_pos and @end_pos. + +This function changes the position of the cursor to match +@start_pos and the selection bound to match @end_pos. + + + + + + + a #ClutterText + + + + start of the selection, in characters + + + + end of the selection, in characters + + + + + + Sets the other end of the selection, starting from the current +cursor position. + +If @selection_bound is -1, the selection unset. + + + + + + + a #ClutterText + + + + the position of the end of the selection, in characters + + + + + + Sets the color of the selection of a #ClutterText actor. + +If @color is %NULL, the selection color will be the same as the +cursor color, or if no cursor color is set either then it will be +the same as the text color. + + + + + + + a #ClutterText + + + + the color of the selection, or %NULL to unset it + + + + + + Sets whether a #ClutterText actor should be in single line mode +or not. Only editable #ClutterText<!-- -->s can be in single line +mode. + +A text actor in single line mode will not wrap text and will clip +the visible area to the predefined size. The contents of the +text actor will scroll to display the end of the text if its length +is bigger than the allocated width. + +When setting the single line mode the #ClutterText:activatable +property is also set as a side effect. Instead of entering a new +line character, the text actor will emit the #ClutterText::activate +signal. + + + + + + + a #ClutterText + + + + whether to enable single line mode + + + + + + Sets the contents of a #ClutterText actor. + +If the #ClutterText:use-markup property was set to %TRUE it +will be reset to %FALSE as a side effect. If you want to +maintain the #ClutterText:use-markup you should use the +clutter_text_set_markup() function instead + + + + + + + a #ClutterText + + + + the text to set. Passing %NULL is the same + as passing "" (the empty string) + + + + + + Sets whether the contents of the #ClutterText actor contains markup +in <link linkend="PangoMarkupFormat">Pango's text markup language</link>. + +Setting #ClutterText:use-markup on an editable #ClutterText will +not have any effect except hiding the markup. + +See also #ClutterText:use-markup. + + + + + + + a #ClutterText + + + + %TRUE if the text should be parsed for markup. + + + + + + Toggles whether return invokes the activate signal or not. + + + + A list of #PangoStyleAttribute<!-- -->s to be applied to the +contents of the #ClutterText actor. + + + + The buffer which stores the text for this #ClutterText. + +If set to %NULL, a default buffer will be created. + + + + The color used to render the text. + + + + The color of the cursor. + + + + Will be set to %TRUE if #ClutterText:cursor-color has been set. + + + + The current input cursor position. -1 is taken to be the end of the text + + + + The size of the cursor, in pixels. If set to -1 the size used will +be the default cursor size of 2 pixels. + + + + Whether the input cursor is visible or not. + +The cursor will only be visible if this property and either +the #ClutterText:editable or the #ClutterText:selectable properties +are set to %TRUE. + + + + Whether key events delivered to the actor causes editing. + + + + The preferred place to ellipsize the contents of the #ClutterText actor + + + + The #PangoFontDescription that should be used by the #ClutterText + +If you have a string describing the font then you should look at +#ClutterText:font-name instead + + + + The font to be used by the #ClutterText, as a string +that can be parsed by pango_font_description_from_string(). + +If set to %NULL, the default system font will be used instead. + + + + + + + + + + Whether the contents of the #ClutterText should be justified +on both margins. + + + + The preferred alignment for the text. This property controls +the alignment of multi-line paragraphs. + + + + Whether to wrap the lines of #ClutterText:text if the contents +exceed the available allocation. The wrapping strategy is +controlled by the #ClutterText:line-wrap-mode property. + + + + If #ClutterText:line-wrap is set to %TRUE, this property will +control how the text is wrapped. + + + + The maximum length of the contents of the #ClutterText actor. + + + + If non-zero, the character that should be used in place of +the actual text in a password text actor. + + + + The current input cursor position. -1 is taken to be the end of the text + Use ClutterText:cursor-position instead. + + + + Whether it is possible to select text, either using the pointer +or the keyboard. + +This property depends on the #ClutterActor:reactive property being +set to %TRUE. + + + + The color of selected text. + + + + Will be set to %TRUE if #ClutterText:selected-text-color has been set. + + + + The current input cursor position. -1 is taken to be the end of the text + + + + The color of the selection. + + + + Will be set to %TRUE if #ClutterText:selection-color has been set. + + + + Whether the #ClutterText actor should be in single line mode +or not. A single line #ClutterText actor will only contain a +single line of text, scrolling it in case its length is bigger +than the allocated size. + +Setting this property will also set the #ClutterText:activatable +property as a side-effect. + +The #ClutterText:single-line-mode property is used only if the +#ClutterText:editable property is set to %TRUE. + + + + The text to render inside the actor. + + + + Whether the text includes Pango markup. + +For more informations about the Pango markup format, see +pango_layout_set_markup() in the Pango documentation. + +It is not possible to round-trip this property between +%TRUE and %FALSE. Once a string with markup has been set on +a #ClutterText actor with :use-markup set to %TRUE, the markup +is stripped from the string. + + + + + + + + + + The ::activate signal is emitted each time the actor is 'activated' +by the user, normally by pressing the 'Enter' key. The signal is +emitted only if #ClutterText:activatable is set to %TRUE. + + + + + + The ::cursor-changed signal is emitted whenever the cursor +position or size changes. + + + + + + The ::cursor-event signal is emitted whenever the cursor position +changes inside a #ClutterText actor. Inside @geometry it is stored +the current position and size of the cursor, relative to the actor +itself. + Use the #ClutterText::cursor-changed signal instead + + + + + + the coordinates of the cursor + + + + + + This signal is emitted when text is deleted from the actor by +the user. It is emitted before @self text changes. + + + + + + the starting position + + + + the end position + + + + + + This signal is emitted when text is inserted into the actor by +the user. It is emitted before @self text changes. + + + + + + the new text to insert + + + + the length of the new text, in bytes, or -1 if + new_text is nul-terminated + + + + the position, in characters, at which to insert the + new text. this is an in-out parameter. After the signal + emission is finished, it should point after the newly + inserted text. + + + + + + The ::text-changed signal is emitted after @actor's text changes + + + + + + + The #ClutterTextBuffer structure contains private +data and it should only be accessed using the provided API. + + + Create a new ClutterTextBuffer object. + + + A new ClutterTextBuffer object. + + + + + Create a new ClutterTextBuffer object with some text. + + + A new ClutterTextBuffer object. + + + + + initial buffer text + + + + initial buffer text length, or -1 for null-terminated. + + + + + + Deletes a sequence of characters from the buffer. @n_chars characters are +deleted starting at @position. If @n_chars is negative, then all characters +until the end of the text are deleted. + +If @position or @n_chars are out of bounds, then they are coerced to sane +values. + +Note that the positions are specified in characters, not bytes. + + + The number of characters deleted. + + + + + a #ClutterTextBuffer + + + + position at which to delete text + + + + number of characters to delete + + + + + + + + + + + + + + + + + + + + + + + Retrieves the length in characters of the buffer. + + + The number of characters in the buffer. + + + + + a #ClutterTextBuffer + + + + + + + + + + + + + + + + + + + + Inserts @n_chars characters of @chars into the contents of the +buffer, at position @position. + +If @n_chars is negative, then characters from chars will be inserted +until a null-terminator is found. If @position or @n_chars are out of +bounds, or the maximum buffer text length is exceeded, then they are +coerced to sane values. + +Note that the position and length are in characters, not in bytes. + + + The number of characters actually inserted. + + + + + a #ClutterTextBuffer + + + + the position at which to insert text. + + + + the text to insert into the buffer. + + + + the length of the text in characters, or -1 + + + + + + + + + + + + + + + + + + + + + + + + + + Deletes a sequence of characters from the buffer. @n_chars characters are +deleted starting at @position. If @n_chars is negative, then all characters +until the end of the text are deleted. + +If @position or @n_chars are out of bounds, then they are coerced to sane +values. + +Note that the positions are specified in characters, not bytes. + + + The number of characters deleted. + + + + + a #ClutterTextBuffer + + + + position at which to delete text + + + + number of characters to delete + + + + + + Emits the #ClutterTextBuffer::deleted-text signal on @buffer. + +Used when subclassing #ClutterTextBuffer + + + + + + + a #ClutterTextBuffer + + + + position at which text was deleted + + + + number of characters deleted + + + + + + Emits the #ClutterTextBuffer::inserted-text signal on @buffer. + +Used when subclassing #ClutterTextBuffer + + + + + + + a #ClutterTextBuffer + + + + position at which text was inserted + + + + text that was inserted + + + + number of characters inserted + + + + + + Retrieves the length in bytes of the buffer. +See clutter_text_buffer_get_length(). + + + The byte length of the buffer. + + + + + a #ClutterTextBuffer + + + + + + Retrieves the length in characters of the buffer. + + + The number of characters in the buffer. + + + + + a #ClutterTextBuffer + + + + + + Retrieves the maximum allowed length of the text in +@buffer. See clutter_text_buffer_set_max_length(). + + + the maximum allowed number of characters + in #ClutterTextBuffer, or 0 if there is no maximum. + + + + + a #ClutterTextBuffer + + + + + + Retrieves the contents of the buffer. + +The memory pointer returned by this call will not change +unless this object emits a signal, or is finalized. + + + a pointer to the contents of the widget as a + string. This string points to internally allocated + storage in the buffer and must not be freed, modified or + stored. + + + + + a #ClutterTextBuffer + + + + + + Inserts @n_chars characters of @chars into the contents of the +buffer, at position @position. + +If @n_chars is negative, then characters from chars will be inserted +until a null-terminator is found. If @position or @n_chars are out of +bounds, or the maximum buffer text length is exceeded, then they are +coerced to sane values. + +Note that the position and length are in characters, not in bytes. + + + The number of characters actually inserted. + + + + + a #ClutterTextBuffer + + + + the position at which to insert text. + + + + the text to insert into the buffer. + + + + the length of the text in characters, or -1 + + + + + + Sets the maximum allowed length of the contents of the buffer. If +the current contents are longer than the given length, then they +will be truncated to fit. + + + + + + + a #ClutterTextBuffer + + + + the maximum length of the entry buffer, or 0 for no maximum. + (other than the maximum length of entries.) The value passed in will + be clamped to the range [ 0, %CLUTTER_TEXT_BUFFER_MAX_SIZE ]. + + + + + + Sets the text in the buffer. + +This is roughly equivalent to calling clutter_text_buffer_delete_text() +and clutter_text_buffer_insert_text(). + +Note that @n_chars is in characters, not in bytes. + + + + + + + a #ClutterTextBuffer + + + + the new text + + + + the number of characters in @text, or -1 + + + + + + The length (in characters) of the text in buffer. + + + + The maximum length (in characters) of the text in the buffer. + + + + The contents of the buffer. + + + + + + + + + + This signal is emitted after text is deleted from the buffer. + + + + + + the position the text was deleted at. + + + + The number of characters that were deleted. + + + + + + This signal is emitted after text is inserted into the buffer. + + + + + + the position the text was inserted at. + + + + The text that was inserted. + + + + The number of characters that were inserted. + + + + + + + The #ClutterTextBufferClass structure contains +only private data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The number of characters in the buffer. + + + + + a #ClutterTextBuffer + + + + + + + + + + The number of characters actually inserted. + + + + + a #ClutterTextBuffer + + + + the position at which to insert text. + + + + the text to insert into the buffer. + + + + the length of the text in characters, or -1 + + + + + + + + + + The number of characters deleted. + + + + + a #ClutterTextBuffer + + + + position at which to delete text + + + + number of characters to delete + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterTextClass struct contains only private data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The text direction to be used by #ClutterActor<!-- -->s + + Use the default setting, as returned + by clutter_get_default_text_direction() + + + Use left-to-right text direction + + + Use right-to-left text direction + + + + The #ClutterTextNode structure is an opaque +type whose members cannot be directly accessed. + + + Creates a new #ClutterPaintNode that will paint a #PangoLayout +with the given color. + +This function takes a reference on the passed @layout, so it +is safe to call g_object_unref() after it returns. + + + the newly created #ClutterPaintNode. + Use clutter_paint_node_unref() when done + + + + + a #PangoLayout, or %NULL + + + + the color used to paint the layout, + or %NULL + + + + + + + The `ClutterTextNodeClass` structure is an opaque +type whose contents cannot be directly accessed. + + + + + + + The #ClutterTexture structure contains only private data +and should be accessed using the provided API + + + + + + + Creates a new empty #ClutterTexture object. + Use #ClutterImage instead + + + A newly created #ClutterTexture object. + + + + + Creates a new #ClutterTexture object with its source a prexisting +actor (and associated children). The textures content will contain +'live' redirected output of the actors scene. + +Note this function is intented as a utility call for uniformly applying +shaders to groups and other potential visual effects. It requires that +the %CLUTTER_FEATURE_OFFSCREEN feature is supported by the current backend +and the target system. + +Some tips on usage: + + - The source actor must be visible + - The source actor must have a parent in order for it to be + allocated a size from the layouting mechanism. If the source + actor does not have a parent when this function is called then + the ClutterTexture will adopt it and allocate it at its + preferred size. Using this you can clone an actor that is + otherwise not displayed. Because of this feature if you do + intend to display the source actor then you must make sure that + the actor is parented before calling + clutter_texture_new_from_actor() or that you unparent it before + adding it to a container. + - When getting the image for the clone texture, Clutter + will attempt to render the source actor exactly as it would + appear if it was rendered on screen. The source actor's parent + transformations are taken into account. Therefore if your + source actor is rotated along the X or Y axes so that it has + some depth, the texture will appear differently depending on + the on-screen location of the source actor. While painting the + source actor, Clutter will set up a temporary asymmetric + perspective matrix as the projection matrix so that the source + actor will be projected as if a small section of the screen was + being viewed. Before version 0.8.2, an orthogonal identity + projection was used which meant that the source actor would be + clipped if any part of it was not on the zero Z-plane. + - Avoid reparenting the source with the created texture. + - A group can be padded with a transparent rectangle as to + provide a border to contents for shader output (blurring text + for example). + - The texture will automatically resize to contain a further + transformed source. However, this involves overhead and can be + avoided by placing the source actor in a bounding group + sized large enough to contain any child tranformations. + - Uploading pixel data to the texture (e.g by using + clutter_texture_set_from_file()) will destroy the offscreen texture + data and end redirection. + - cogl_texture_get_data() with the handle returned by + clutter_texture_get_cogl_texture() can be used to read the + offscreen texture pixels into a pixbuf. + Use the #ClutterOffscreenEffect and #ClutterShaderEffect + directly on the intended #ClutterActor to replace the functionality of + this function. + + + A newly created #ClutterTexture object, or %NULL on failure. + + + + + A source #ClutterActor + + + + + + Creates a new ClutterTexture actor to display the image contained a +file. If the image failed to load then NULL is returned and @error +is set. + No direct replacement is available. Use #ClutterImage + and platform-specific image loading API, like GdkPixbuf, instead + + + A newly created #ClutterTexture object or NULL on +error. + + + + + The name of an image file to load. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets the size in pixels of the untransformed underlying image + Use #ClutterImage and clutter_content_get_preferred_size() + instead + + + + + + + a #ClutterTexture + + + + return location for the width, or %NULL + + + + return location for the height, or %NULL + + + + + + Returns a handle to the underlying COGL material used for drawing +the actor. + No replacement is available; it's not advisable + to modify the Cogl pipeline of an actor. Use a #ClutterContent + implementation and modify the pipeline during the paint sequence + + + a handle for a #CoglMaterial. The + material is owned by the #ClutterTexture and it should not be + unreferenced + + + + + A #ClutterTexture + + + + + + Retrieves the handle to the underlying COGL texture used for drawing +the actor. No extra reference is taken so if you need to keep the +handle then you should call cogl_handle_ref() on it. + +The texture handle returned is the first layer of the material +handle used by the #ClutterTexture. If you need to access the other +layers you should use clutter_texture_get_cogl_material() instead +and use the #CoglMaterial API. + No replacement available; it's not advisable to + modify the Cogl pipeline of an actor. Use a #ClutterContent + implementation and set up the pipeline during the paint sequence + instead. + + + a #CoglHandle for the texture. The returned + handle is owned by the #ClutterTexture and it should not be unreferenced + + + + + A #ClutterTexture + + + + + + Gets the filter quality used when scaling a texture. + Use #ClutterImage and clutter_actor_get_content_scaling_filters() + instead + + + The filter quality value. + + + + + A #ClutterTexture + + + + + + Retrieves the value set using clutter_texture_set_keep_aspect_ratio() + Use #ClutterImage and clutter_actor_get_content_gravity() + instead + + + %TRUE if the #ClutterTexture should maintain the + aspect ratio of the underlying image + + + + + a #ClutterTexture + + + + + + Retrieves the value set using clutter_texture_set_load_async() + There is no direct replacement for this function + + + %TRUE if the #ClutterTexture should load the data from + disk asynchronously + + + + + a #ClutterTexture + + + + + + Retrieves the value set by clutter_texture_set_load_data_async() + There is no direct replacement for this function + + + %TRUE if the #ClutterTexture should load the image + data from a file asynchronously + + + + + a #ClutterTexture + + + + + + Gets the maximum waste that will be used when creating a texture or +-1 if slicing is disabled. + No replacement is available + + + The maximum waste or -1 if the texture waste is + unlimited. + + + + + A #ClutterTexture + + + + + + Retrieves the value set by clutter_texture_set_load_data_async() + There is no direct replacement for this function + + + %TRUE if the #ClutterTexture should define its shape +using the alpha channel when picking. + + + + + a #ClutterTexture + + + + + + Retrieves the horizontal and vertical repeat values set +using clutter_texture_set_repeat() + Use #ClutterImage and clutter_actor_get_content_repeat() + instead + + + + + + + a #ClutterTexture + + + + return location for the horizontal repeat + + + + return location for the vertical repeat + + + + + + Retrieves the value set with clutter_texture_set_sync_size() + There is no direct replacement + + + %TRUE if the #ClutterTexture should have the same + preferred size of the underlying image data + + + + + a #ClutterTexture + + + + + + Updates a sub-region of the pixel data in a #ClutterTexture. + Use #ClutterImage and clutter_image_set_area() instead + + + %TRUE on success, %FALSE on failure. + + + + + A #ClutterTexture + + + + Image data in RGB type colorspace. + + + + + + Set to TRUE if image data has an alpha channel. + + + + X coordinate of upper left corner of region to update. + + + + Y coordinate of upper left corner of region to update. + + + + Width in pixels of region to update. + + + + Height in pixels of region to update. + + + + Distance in bytes between row starts on source buffer. + + + + bytes per pixel (Currently only 3 and 4 supported, + depending on @has_alpha) + + + + #ClutterTextureFlags + + + + + + Replaces the underlying Cogl material drawn by this actor with +@cogl_material. A reference to the material is taken so if the +handle is no longer needed it should be deref'd with +cogl_handle_unref. Texture data is attached to the material so +calling this function also replaces the Cogl +texture. #ClutterTexture requires that the material have a texture +layer so you should set one on the material before calling this +function. + No replacement is available; it's not advisable + to modify the Cogl pipeline of an actor. Use a #ClutterContent + implementation and modify the pipeline during the paint sequence + + + + + + + A #ClutterTexture + + + + A CoglHandle for a material + + + + + + Replaces the underlying COGL texture drawn by this actor with +@cogl_tex. A reference to the texture is taken so if the handle is +no longer needed it should be deref'd with cogl_handle_unref. + No replacement available; it's not advisable to + modify the Cogl pipeline of an actor. Use a #ClutterContent + implementation and set up the pipeline during the paint sequence + instead. + + + + + + + A #ClutterTexture + + + + A CoglHandle for a texture + + + + + + Sets the filter quality when scaling a texture. The quality is an +enumeration currently the following values are supported: +%CLUTTER_TEXTURE_QUALITY_LOW which is fast but only uses nearest neighbour +interpolation. %CLUTTER_TEXTURE_QUALITY_MEDIUM which is computationally a +bit more expensive (bilinear interpolation), and +%CLUTTER_TEXTURE_QUALITY_HIGH which uses extra texture memory resources to +improve scaled down rendering as well (by using mipmaps). The default value +is %CLUTTER_TEXTURE_QUALITY_MEDIUM. + Use #ClutterImage and clutter_actor_set_content_scaling_filters() + instead + + + + + + + a #ClutterTexture + + + + new filter quality value + + + + + + Sets the #ClutterTexture image data from an image file. In case of +failure, %FALSE is returned and @error is set. + +If #ClutterTexture:load-async is set to %TRUE, this function +will return as soon as possible, and the actual image loading +from disk will be performed asynchronously. #ClutterTexture::size-change +will be emitten when the size of the texture is available and +#ClutterTexture::load-finished will be emitted when the image has been +loaded or if an error occurred. + Use #ClutterImage and platform-specific image + loading API, like GdkPixbuf, instead + + + %TRUE if the image was successfully loaded and set + + + + + A #ClutterTexture + + + + The filename of the image in GLib file name encoding + + + + + + Sets #ClutterTexture image data. + Use #ClutterImage and clutter_image_set_data() instead + + + %TRUE on success, %FALSE on failure. + + + + + a #ClutterTexture + + + + image data in RGBA type colorspace. + + + + + + set to %TRUE if image data has an alpha channel. + + + + width in pixels of image data. + + + + height in pixels of image data + + + + distance in bytes between row starts. + + + + bytes per pixel (currently only 3 and 4 supported, depending + on the value of @has_alpha) + + + + #ClutterTextureFlags + + + + + + Sets a #ClutterTexture from YUV image data. If an error occurred, +%FALSE is returned and @error is set. + +The YUV support depends on the driver; the format supported by the +few drivers exposing this capability are not really useful. + +The proper way to convert image data in any YUV colorspace to any +RGB colorspace is to use a fragment shader associated with the +#ClutterTexture material. + Use a custom #ClutterContent implementation and + set up the Cogl pipeline using a #ClutterPipelineNode with a + fragment shader instead. + + + %TRUE if the texture was successfully updated + + + + + A #ClutterTexture + + + + Image data in YUV type colorspace. + + + + + + Width in pixels of image data. + + + + Height in pixels of image data + + + + #ClutterTextureFlags + + + + + + Sets whether @texture should have a preferred size maintaining +the aspect ratio of the underlying image + Use #ClutterImage and clutter_actor_set_content_gravity() + with %CLUTTER_CONTENT_GRAVITY_RESIZE_ASPECT instead + + + + + + + a #ClutterTexture + + + + %TRUE to maintain aspect ratio + + + + + + Sets whether @texture should use a worker thread to load the data +from disk asynchronously. Setting @load_async to %TRUE will make +clutter_texture_set_from_file() return immediately. + +See the #ClutterTexture:load-async property documentation, and +clutter_texture_set_load_data_async(). + There is no direct replacement for this function. + Use #ClutterImage and platform-specific API for loading image data + asynchronously, like GdkPixbuf + + + + + + + a #ClutterTexture + + + + %TRUE if the texture should asynchronously load data + from a filename + + + + + + Sets whether @texture should use a worker thread to load the data +from disk asynchronously. Setting @load_async to %TRUE will make +clutter_texture_set_from_file() block until the #ClutterTexture has +determined the width and height of the image data. + +See the #ClutterTexture:load-async property documentation, and +clutter_texture_set_load_async(). + There is no direct replacement for this function. + Use #ClutterImage and platform-specific API for loading image data + asynchronously, like GdkPixbuf + + + + + + + a #ClutterTexture + + + + %TRUE if the texture should asynchronously load data + from a filename + + + + + + Sets whether @texture should have it's shape defined by the alpha +channel when picking. + +Be aware that this is a bit more costly than the default picking +due to the texture lookup, extra test against the alpha value and +the fact that it will also interrupt the batching of geometry done +internally. + +Also there is currently no control over the threshold used to +determine what value of alpha is considered pickable, and so only +fully opaque parts of the texture will react to picking. + There is no direct replacement for this function + + + + + + + a #ClutterTexture + + + + %TRUE if the alpha channel should affect the + picking shape + + + + + + Sets whether the @texture should repeat horizontally or +vertically when the actor size is bigger than the image size + Use #ClutterImage and clutter_actor_set_content_repeat() + instead + + + + + + + a #ClutterTexture + + + + %TRUE if the texture should repeat horizontally + + + + %TRUE if the texture should repeat vertically + + + + + + Sets whether @texture should have the same preferred size as the +underlying image data. + No replacement is available. A #ClutterActor using + #ClutterImage with a %CLUTTER_REQUEST_CONTENT_SIZE request mode + will automatically bind the preferred size of the content to the + preferred size of the actor + + + + + + + a #ClutterTexture + + + + %TRUE if the texture should have the same size of the + underlying image data + + + + + + + + + + + + + + + The path of the file containing the image data to be displayed by +the texture. + +This property is unset when using the clutter_texture_set_from_*_data() +family of functions. + Use #ClutterImage and platform-specific image loading + API, like GdkPixbuf + + + + + + + + + + Tries to load a texture from a filename by using a local thread to perform +the read operations. The initially created texture has dimensions 0x0 when +the true size becomes available the #ClutterTexture::size-change signal is +emitted and when the image has completed loading the +#ClutterTexture::load-finished signal is emitted. + +Threading is only enabled if g_thread_init() has been called prior to +clutter_init(), otherwise #ClutterTexture will use the main loop to load +the image. + +The upload of the texture data on the GL pipeline is not asynchronous, as +it must be performed from within the same thread that called +clutter_main(). + Use platform-specific image loading API, like GdkPixbuf + + + + Like #ClutterTexture:load-async but loads the width and height +synchronously causing some blocking. + Use platform-specific image loading API, like GdkPixbuf + + + + + + + + + + + + + + + + + + + + + + + + + The ::load-finished signal is emitted when a texture load has +completed. If there was an error during loading, @error will +be set, otherwise it will be %NULL + No replacement is available + + + + + + A set error, or %NULL + + + + + + The ::pixbuf-change signal is emitted each time the pixbuf +used by @texture changes. + No replacement is available + + + + + + The ::size-change signal is emitted each time the size of the +pixbuf used by @texture changes. The new size is given as +argument to the callback. + No replacement is available + + + + + + the width of the new texture + + + + the height of the new texture + + + + + + + The #ClutterTextureClass structure contains only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Error enumeration for #ClutterTexture + + OOM condition + + + YUV operation attempted but no YUV support + found + + + The requested format for +clutter_texture_set_from_rgb_data or +clutter_texture_set_from_yuv_data is unsupported. + + + + + + + + + Flags for clutter_texture_set_from_rgb_data() and +clutter_texture_set_from_yuv_data(). + The #ClutterTexture class was the only user of + this API + + No flags + + + Unused flag + + + Unused flag + + + Unused flag + + + + The #ClutterTextNode structure is an opaque +type whose members cannot be directly accessed. + + + Creates a new #ClutterPaintNode that will paint the passed @texture. + +This function will take a reference on @texture, so it is safe to +call cogl_object_unref() on @texture when it returns. + +The @color must not be pre-multiplied with its #ClutterColor.alpha +channel value; if @color is %NULL, a fully opaque white color will +be used for blending. + + + the newly created #ClutterPaintNode. + Use clutter_paint_node_unref() when done + + + + + a #CoglTexture + + + + a #ClutterColor used for blending, or %NULL + + + + the minification filter for the texture + + + + the magnification filter for the texture + + + + + + + The `ClutterTextureNodeClass` structure is an +opaque type whose members cannot be directly accessed. + + + + + + + Enumaration controlling the texture quality. + The #ClutterTexture class was the only used ot + this API; use #ClutterImage and clutter_actor_set_content_scaling_filters() + instead. + + fastest rendering will use nearest neighbour + interpolation when rendering. good setting. + + + higher quality rendering without using + extra resources. + + + render the texture with the best quality + available using extra memory. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterTimeline structure contains only private data +and should be accessed using the provided API + + + + Creates a new #ClutterTimeline with a duration of @msecs. + + + the newly created #ClutterTimeline instance. Use + g_object_unref() when done using it + + + + + Duration of the timeline in milliseconds + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Adds a named marker that will be hit when the timeline has reached +the specified @progress. + +Markers are unique string identifiers for a given position on the +timeline. Once @timeline reaches the given @progress of its duration, +if will emit a ::marker-reached signal for each marker attached to +that particular point. + +A marker can be removed with clutter_timeline_remove_marker(). The +timeline can be advanced to a marker using +clutter_timeline_advance_to_marker(). + +See also: clutter_timeline_add_marker_at_time() + + + + + + + a #ClutterTimeline + + + + the unique name for this marker + + + + the normalized value of the position of the martke + + + + + + Adds a named marker that will be hit when the timeline has been +running for @msecs milliseconds. + +Markers are unique string identifiers for a given position on the +timeline. Once @timeline reaches the given @msecs, it will emit +a ::marker-reached signal for each marker attached to that position. + +A marker can be removed with clutter_timeline_remove_marker(). The +timeline can be advanced to a marker using +clutter_timeline_advance_to_marker(). + +See also: clutter_timeline_add_marker() + + + + + + + a #ClutterTimeline + + + + the unique name for this marker + + + + position of the marker in milliseconds + + + + + + Advance timeline to the requested point. The point is given as a +time in milliseconds since the timeline started. + +The @timeline will not emit the #ClutterTimeline::new-frame +signal for the given time. The first ::new-frame signal after the call to +clutter_timeline_advance() will be emit the skipped markers. + + + + + + + A #ClutterTimeline + + + + Time to advance to + + + + + + Advances @timeline to the time of the given @marker_name. + +Like clutter_timeline_advance(), this function will not +emit the #ClutterTimeline::new-frame for the time where @marker_name +is set, nor it will emit #ClutterTimeline::marker-reached for +@marker_name. + + + + + + + a #ClutterTimeline + + + + the name of the marker + + + + + + Create a new #ClutterTimeline instance which has property values +matching that of supplied timeline. The cloned timeline will not +be started and will not be positioned to the current position of +the original @timeline: you will have to start it with +clutter_timeline_start(). + +The only cloned properties are: + + - #ClutterTimeline:duration + - #ClutterTimeline:loop + - #ClutterTimeline:delay + - #ClutterTimeline:direction + Use clutter_timeline_new() or g_object_new() + instead + + + a new #ClutterTimeline, cloned + from @timeline + + + + + #ClutterTimeline to duplicate. + + + + + + Retrieves the value set by clutter_timeline_set_auto_reverse(). + + + %TRUE if the timeline should automatically reverse, and + %FALSE otherwise + + + + + a #ClutterTimeline + + + + + + Retrieves the control points for the cubic bezier progress mode. + + + %TRUE if the @timeline is using a cubic bezier progress + more, and %FALSE otherwise + + + + + a #ClutterTimeline + + + + return location for the first control + point of the cubic bezier, or %NULL + + + + return location for the second control + point of the cubic bezier, or %NULL + + + + + + Retrieves the current repeat for a timeline. + +Repeats start at 0. + + + the current repeat + + + + + a #ClutterTimeline + + + + + + Retrieves the delay set using clutter_timeline_set_delay(). + + + the delay in milliseconds. + + + + + a #ClutterTimeline + + + + + + Retrieves the amount of time elapsed since the last +ClutterTimeline::new-frame signal. + +This function is only useful inside handlers for the ::new-frame +signal, and its behaviour is undefined if the timeline is not +playing. + + + the amount of time in milliseconds elapsed since the +last frame + + + + + a #ClutterTimeline + + + + + + Retrieves the direction of the timeline set with +clutter_timeline_set_direction(). + + + the direction of the timeline + + + + + a #ClutterTimeline + + + + + + Retrieves the duration of a #ClutterTimeline in milliseconds. +See clutter_timeline_set_duration(). + + + the duration of the timeline, in milliseconds. + + + + + a #ClutterTimeline + + + + + + Retrieves the full duration of the @timeline, taking into account the +current value of the #ClutterTimeline:repeat-count property. + +If the #ClutterTimeline:repeat-count property is set to -1, this function +will return %G_MAXINT64. + +The returned value is to be considered a hint, and it's only valid +as long as the @timeline hasn't been changed. + + + the full duration of the #ClutterTimeline + + + + + a #ClutterTimeline + + + + + + Request the current time position of the timeline. + + + current elapsed time in milliseconds. + + + + + A #ClutterTimeline + + + + + + Gets whether @timeline is looping + Use clutter_timeline_get_repeat_count() instead. + + + %TRUE if the timeline is looping + + + + + a #ClutterTimeline + + + + + + The position of the timeline in a normalized [-1, 2] interval. + +The return value of this function is determined by the progress +mode set using clutter_timeline_set_progress_mode(), or by the +progress function set using clutter_timeline_set_progress_func(). + + + the normalized current position in the timeline. + + + + + a #ClutterTimeline + + + + + + Retrieves the progress mode set using clutter_timeline_set_progress_mode() +or clutter_timeline_set_progress_func(). + + + a #ClutterAnimationMode + + + + + a #ClutterTimeline + + + + + + Retrieves the number set using clutter_timeline_set_repeat_count(). + + + the number of repeats + + + + + a #ClutterTimeline + + + + + + Retrieves the parameters of the step progress mode used by @timeline. + + + %TRUE if the @timeline is using a step progress + mode, and %FALSE otherwise + + + + + a #ClutterTimeline + + + + return location for the number of steps, or %NULL + + + + return location for the value change policy, + or %NULL + + + + + + Checks whether @timeline has a marker set with the given name. + + + %TRUE if the marker was found + + + + + a #ClutterTimeline + + + + the name of the marker + + + + + + Queries state of a #ClutterTimeline. + + + %TRUE if timeline is currently playing + + + + + A #ClutterTimeline + + + + + + Retrieves the list of markers at time @msecs. If @msecs is a +negative integer, all the markers attached to @timeline will be +returned. + + + + a newly allocated, %NULL terminated string array containing the names + of the markers. Use g_strfreev() when done. + + + + + + + a #ClutterTimeline + + + + the time to check, or -1 + + + + the number of markers returned + + + + + + Pauses the #ClutterTimeline on current frame + + + + + + + A #ClutterTimeline + + + + + + Removes @marker_name, if found, from @timeline. + + + + + + + a #ClutterTimeline + + + + the name of the marker to remove + + + + + + Rewinds #ClutterTimeline to the first frame if its direction is +%CLUTTER_TIMELINE_FORWARD and the last frame if it is +%CLUTTER_TIMELINE_BACKWARD. + + + + + + + A #ClutterTimeline + + + + + + Sets whether @timeline should reverse the direction after the +emission of the #ClutterTimeline::completed signal. + +Setting the #ClutterTimeline:auto-reverse property to %TRUE is the +equivalent of connecting a callback to the #ClutterTimeline::completed +signal and changing the direction of the timeline from that callback; +for instance, this code: + +|[ +static void +reverse_timeline (ClutterTimeline *timeline) +{ + ClutterTimelineDirection dir = clutter_timeline_get_direction (timeline); + + if (dir == CLUTTER_TIMELINE_FORWARD) + dir = CLUTTER_TIMELINE_BACKWARD; + else + dir = CLUTTER_TIMELINE_FORWARD; + + clutter_timeline_set_direction (timeline, dir); +} +... + timeline = clutter_timeline_new (1000); + clutter_timeline_set_repeat_count (timeline, -1); + g_signal_connect (timeline, "completed", + G_CALLBACK (reverse_timeline), + NULL); +]| + +can be effectively replaced by: + +|[ + timeline = clutter_timeline_new (1000); + clutter_timeline_set_repeat_count (timeline, -1); + clutter_timeline_set_auto_reverse (timeline); +]| + + + + + + + a #ClutterTimeline + + + + %TRUE if the @timeline should reverse the direction + + + + + + Sets the #ClutterTimeline:progress-mode of @timeline +to %CLUTTER_CUBIC_BEZIER, and sets the two control +points for the cubic bezier. + +The cubic bezier curve is between (0, 0) and (1, 1). The X coordinate +of the two control points must be in the [ 0, 1 ] range, while the +Y coordinate of the two control points can exceed this range. + + + + + + + a #ClutterTimeline + + + + the first control point for the cubic bezier + + + + the second control point for the cubic bezier + + + + + + Sets the delay, in milliseconds, before @timeline should start. + + + + + + + a #ClutterTimeline + + + + delay in milliseconds + + + + + + Sets the direction of @timeline, either %CLUTTER_TIMELINE_FORWARD or +%CLUTTER_TIMELINE_BACKWARD. + + + + + + + a #ClutterTimeline + + + + the direction of the timeline + + + + + + Sets the duration of the timeline, in milliseconds. The speed +of the timeline depends on the ClutterTimeline:fps setting. + + + + + + + a #ClutterTimeline + + + + duration of the timeline in milliseconds + + + + + + Sets whether @timeline should loop. + +This function is equivalent to calling clutter_timeline_set_repeat_count() +with -1 if @loop is %TRUE, and with 0 if @loop is %FALSE. + Use clutter_timeline_set_repeat_count() instead. + + + + + + + a #ClutterTimeline + + + + %TRUE for enable looping + + + + + + Sets a custom progress function for @timeline. The progress function will +be called by clutter_timeline_get_progress() and will be used to compute +the progress value based on the elapsed time and the total duration of the +timeline. + +If @func is not %NULL, the #ClutterTimeline:progress-mode property will +be set to %CLUTTER_CUSTOM_MODE. + +If @func is %NULL, any previously set progress function will be unset, and +the #ClutterTimeline:progress-mode property will be set to %CLUTTER_LINEAR. + + + + + + + a #ClutterTimeline + + + + a progress function, or %NULL + + + + data to pass to @func + + + + a function to be called when the progress function is removed + or the timeline is disposed + + + + + + Sets the progress function using a value from the #ClutterAnimationMode +enumeration. The @mode cannot be %CLUTTER_CUSTOM_MODE or bigger than +%CLUTTER_ANIMATION_LAST. + + + + + + + a #ClutterTimeline + + + + the progress mode, as a #ClutterAnimationMode + + + + + + Sets the number of times the @timeline should repeat. + +If @count is 0, the timeline never repeats. + +If @count is -1, the timeline will always repeat until +it's stopped. + + + + + + + a #ClutterTimeline + + + + the number of times the timeline should repeat + + + + + + Sets the #ClutterTimeline:progress-mode of the @timeline to %CLUTTER_STEPS +and provides the parameters of the step function. + + + + + + + a #ClutterTimeline + + + + the number of steps + + + + whether the change should happen at the start + or at the end of the step + + + + + + Advance timeline by the requested time in milliseconds + + + + + + + A #ClutterTimeline + + + + Amount of time to skip + + + + + + Starts the #ClutterTimeline playing. + + + + + + + A #ClutterTimeline + + + + + + Stops the #ClutterTimeline and moves to frame 0 + + + + + + + A #ClutterTimeline + + + + + + If the direction of the timeline should be automatically reversed +when reaching the end. + + + + A delay, in milliseconds, that should be observed by the +timeline before actually starting. + + + + The direction of the timeline, either %CLUTTER_TIMELINE_FORWARD or +%CLUTTER_TIMELINE_BACKWARD. + + + + Duration of the timeline in milliseconds, depending on the +ClutterTimeline:fps value. + + + + Whether the timeline should automatically rewind and restart. + +As a side effect, setting this property to %TRUE will set the +#ClutterTimeline:repeat-count property to -1, while setting this +property to %FALSE will set the #ClutterTimeline:repeat-count +property to 0. + Use the #ClutterTimeline:repeat-count property instead. + + + + Controls the way a #ClutterTimeline computes the normalized progress. + + + + Defines how many times the timeline should repeat. + +If the repeat count is 0, the timeline does not repeat. + +If the repeat count is set to -1, the timeline will repeat until it is +stopped. + + + + + + + + + + The #ClutterTimeline::completed signal is emitted when the timeline's +elapsed time reaches the value of the #ClutterTimeline:duration +property. + +This signal will be emitted even if the #ClutterTimeline is set to be +repeating. + +If you want to get notification on whether the #ClutterTimeline has +been stopped or has finished its run, including its eventual repeats, +you should use the #ClutterTimeline::stopped signal instead. + + + + + + The ::marker-reached signal is emitted each time a timeline +reaches a marker set with +clutter_timeline_add_marker_at_time(). This signal is detailed +with the name of the marker as well, so it is possible to connect +a callback to the ::marker-reached signal for a specific marker +with: + +<informalexample><programlisting> + clutter_timeline_add_marker_at_time (timeline, "foo", 500); + clutter_timeline_add_marker_at_time (timeline, "bar", 750); + + g_signal_connect (timeline, "marker-reached", + G_CALLBACK (each_marker_reached), NULL); + g_signal_connect (timeline, "marker-reached::foo", + G_CALLBACK (foo_marker_reached), NULL); + g_signal_connect (timeline, "marker-reached::bar", + G_CALLBACK (bar_marker_reached), NULL); +</programlisting></informalexample> + +In the example, the first callback will be invoked for both +the "foo" and "bar" marker, while the second and third callbacks +will be invoked for the "foo" or "bar" markers, respectively. + + + + + + the name of the marker reached + + + + the elapsed time + + + + + + The ::new-frame signal is emitted for each timeline running +timeline before a new frame is drawn to give animations a chance +to update the scene. + + + + + + the elapsed time between 0 and duration + + + + + + The ::paused signal is emitted when clutter_timeline_pause() is invoked. + + + + + + The ::started signal is emitted when the timeline starts its run. +This might be as soon as clutter_timeline_start() is invoked or +after the delay set in the ClutterTimeline:delay property has +expired. + + + + + + The #ClutterTimeline::stopped signal is emitted when the timeline +has been stopped, either because clutter_timeline_stop() has been +called, or because it has been exhausted. + +This is different from the #ClutterTimeline::completed signal, +which gets emitted after every repeat finishes. + +If the #ClutterTimeline has is marked as infinitely repeating, +this signal will never be emitted. + + + + + + %TRUE if the signal was emitted at the end of the + timeline. + + + + + + + The #ClutterTimelineClass structure contains only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The direction of a #ClutterTimeline + + forward direction for a timeline + + + backward direction for a timeline + + + + + + + A function for defining a custom progress. + + + the progress, as a floating point value between -1.0 and 2.0. + + + + + a #ClutterTimeline + + + + the elapsed time, in milliseconds + + + + the total duration of the timeline, in milliseconds, + + + + data passed to the function + + + + + + + + + + + + + + + + + + Used for touch events. + +The @type field will be one of %CLUTTER_TOUCH_BEGIN, %CLUTTER_TOUCH_END, +%CLUTTER_TOUCH_UPDATE, or %CLUTTER_TOUCH_CANCEL. + +Touch events are grouped into sequences; each touch sequence will begin +with a %CLUTTER_TOUCH_BEGIN event, progress with %CLUTTER_TOUCH_UPDATE +events, and end either with a %CLUTTER_TOUCH_END event or with a +%CLUTTER_TOUCH_CANCEL event. + +With multi-touch capable devices there can be multiple event sequence +running at the same time. + + + event type + + + + event time + + + + event flags + + + + event source stage + + + + event source actor (unused) + + + + the X coordinate of the pointer, relative to the stage + + + + the Y coordinate of the pointer, relative to the stage + + + + the event sequence that this event belongs to + + + + a bit-mask representing the state + of modifier keys (e.g. Control, Shift, and Alt) and the pointer + buttons. See #ClutterModifierType + + + + reserved + + + + the device that originated the event. If you want the physical +device the event originated from, use clutter_event_get_source_device() + + + + + The phase of a touchpad gesture event. All gestures are guaranteed to +begin with an event of type %CLUTTER_TOUCHPAD_GESTURE_PHASE_BEGIN, +followed by a number of %CLUTTER_TOUCHPAD_GESTURE_PHASE_UPDATE (possibly 0). + +A finished gesture may have 2 possible outcomes, an event with phase +%CLUTTER_TOUCHPAD_GESTURE_PHASE_END will be emitted when the gesture is +considered successful, this should be used as the hint to perform any +permanent changes. + +Cancelled gestures may be so for a variety of reasons, due to hardware, +or due to the gesture recognition layers hinting the gesture did not +finish resolutely (eg. a 3rd finger being added during a pinch gesture). +In these cases, the last event with report the phase +%CLUTTER_TOUCHPAD_GESTURE_PHASE_CANCEL, this should be used as a hint +to undo any visible/permanent changes that were done throughout the +progress of the gesture. + +See also #ClutterTouchpadPinchEvent and #ClutterTouchpadPinchEvent. + + The gesture has begun. + + + The gesture has been updated. + + + The gesture was finished, changes + should be permanently applied. + + + The gesture was cancelled, all + changes should be undone. + + + + + + + + + + + + Used for touchpad pinch gesture events. The current state of the +gesture will be determined by the @phase field. + +Each event with phase %CLUTTER_TOUCHPAD_GESTURE_PHASE_BEGIN +will report a @scale of 1.0, all later phases in the gesture +report the current scale relative to the initial 1.0 value +(eg. 0.5 being half the size, 2.0 twice as big). + + + event type + + + + event time + + + + event flags + + + + event source stage + + + + event source actor (unused) + + + + the current phase of the gesture + + + + the X coordinate of the pointer, relative to the stage + + + + the Y coordinate of the pointer, relative to the stage + + + + movement delta of the pinch focal point in the X axis + + + + movement delta of the pinch focal point in the Y axis + + + + angle delta in degrees, clockwise rotations are + represented by positive deltas + + + + the current scale + + + + + + + + Used for touchpad swipe gesture events. The current state of the +gesture will be determined by the @phase field. + + + event type + + + + event time + + + + event flags + + + + event source stage + + + + event source actor (unused) + + + + the current phase of the gesture + + + + the number of fingers triggering the swipe + + + + the X coordinate of the pointer, relative to the stage + + + + the Y coordinate of the pointer, relative to the stage + + + + movement delta of the pinch focal point in the X axis + + + + movement delta of the pinch focal point in the Y axis + + + + + + + + + + + + + The #ClutterTransition structure contains private +data and should only be accessed using the provided API. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Retrieves the #ClutterAnimatable set using clutter_transition_set_animatable(). + + + a #ClutterAnimatable, or %NULL; the returned + animatable is owned by the #ClutterTransition, and it should not be freed + directly. + + + + + a #ClutterTransition + + + + + + Retrieves the interval set using clutter_transition_set_interval() + + + a #ClutterInterval, or %NULL; the returned + interval is owned by the #ClutterTransition and it should not be freed + directly + + + + + a #ClutterTransition + + + + + + Retrieves the value of the #ClutterTransition:remove-on-complete property. + + + %TRUE if the @transition should be detached when complete, + and %FALSE otherwise + + + + + a #ClutterTransition + + + + + + Sets the #ClutterTransition:animatable property. + +The @transition will acquire a reference to the @animatable instance, +and will call the #ClutterTransitionClass.attached() virtual function. + +If an existing #ClutterAnimatable is attached to @transition, the +reference will be released, and the #ClutterTransitionClass.detached() +virtual function will be called. + + + + + + + a #ClutterTransition + + + + a #ClutterAnimatable, or %NULL + + + + + + Sets the initial value of the transition. + +This is a convenience function that will either create the +#ClutterInterval used by @transition, or will update it if +the #ClutterTransition:interval is already set. + +If @transition already has a #ClutterTransition:interval set, +then @value must hold the same type, or a transformable type, +as the interval's #ClutterInterval:value-type property. + +This is a convenience function for the C API; language bindings +should use clutter_transition_set_from_value() instead. + + + + + + + a #ClutterTransition + + + + the type of the value to set + + + + the initial value + + + + + + Sets the initial value of the transition. + +This is a convenience function that will either create the +#ClutterInterval used by @transition, or will update it if +the #ClutterTransition:interval is already set. + +This function will copy the contents of @value, so it is +safe to call g_value_unset() after it returns. + +If @transition already has a #ClutterTransition:interval set, +then @value must hold the same type, or a transformable type, +as the interval's #ClutterInterval:value-type property. + +This function is meant to be used by language bindings. + + + + + + + a #ClutterTransition + + + + a #GValue with the initial value of the transition + + + + + + Sets the #ClutterTransition:interval property using @interval. + +The @transition will acquire a reference on the @interval, sinking +the floating flag on it if necessary. + + + + + + + a #ClutterTransition + + + + a #ClutterInterval, or %NULL + + + + + + Sets whether @transition should be detached from the #ClutterAnimatable +set using clutter_transition_set_animatable() when the +#ClutterTimeline::completed signal is emitted. + + + + + + + a #ClutterTransition + + + + whether to detach @transition when complete + + + + + + Sets the final value of the transition. + +This is a convenience function that will either create the +#ClutterInterval used by @transition, or will update it if +the #ClutterTransition:interval is already set. + +If @transition already has a #ClutterTransition:interval set, +then @value must hold the same type, or a transformable type, +as the interval's #ClutterInterval:value-type property. + +This is a convenience function for the C API; language bindings +should use clutter_transition_set_to_value() instead. + + + + + + + a #ClutterTransition + + + + the type of the value to set + + + + the final value + + + + + + Sets the final value of the transition. + +This is a convenience function that will either create the +#ClutterInterval used by @transition, or will update it if +the #ClutterTransition:interval is already set. + +This function will copy the contents of @value, so it is +safe to call g_value_unset() after it returns. + +If @transition already has a #ClutterTransition:interval set, +then @value must hold the same type, or a transformable type, +as the interval's #ClutterInterval:value-type property. + +This function is meant to be used by language bindings. + + + + + + + a #ClutterTransition + + + + a #GValue with the final value of the transition + + + + + + The #ClutterAnimatable instance currently being animated. + + + + The #ClutterInterval used to describe the initial and final states +of the transition. + + + + Whether the #ClutterTransition should be automatically detached +from the #ClutterTransition:animatable instance whenever the +#ClutterTimeline::stopped signal is emitted. + +The #ClutterTransition:remove-on-complete property takes into +account the value of the #ClutterTimeline:repeat-count property, +and it only detaches the transition if the transition is not +repeating. + + + + + + + + + + + The #ClutterTransitionClass structure contains +private data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterTransitionGroup structure contains +private data and should only be accessed using the provided API. + + + + Creates a new #ClutterTransitionGroup instance. + + + the newly created #ClutterTransitionGroup. Use + g_object_unref() when done to deallocate the resources it + uses + + + + + Adds @transition to @group. + +This function acquires a reference on @transition that will be released +when calling clutter_transition_group_remove_transition(). + + + + + + + a #ClutterTransitionGroup + + + + a #ClutterTransition + + + + + + Removes all transitions from @group. + +This function releases the reference acquired when calling +clutter_transition_group_add_transition(). + + + + + + + a #ClutterTransitionGroup + + + + + + Removes @transition from @group. + +This function releases the reference acquired on @transition when +calling clutter_transition_group_add_transition(). + + + + + + + a #ClutterTransitionGroup + + + + a #ClutterTransition + + + + + + + + + + + + + The #ClutterTransitionGroupClass structure +contains only private data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The type of unit in which a value is expressed + +This enumeration might be expanded at later date + + Unit expressed in pixels (with subpixel precision) + + + Unit expressed in em + + + Unit expressed in millimeters + + + Unit expressed in points + + + Unit expressed in centimeters + + + + An opaque structure, to be used to store sizing and positioning +values along with their unit. + + + + + + + + + + + + + + + + + + + + + + + + Copies @units + + + the newly created copy of a + #ClutterUnits structure. Use clutter_units_free() to free + the allocated resources + + + + + the #ClutterUnits to copy + + + + + + Frees the resources allocated by @units + +You should only call this function on a #ClutterUnits +created using clutter_units_copy() + + + + + + + the #ClutterUnits to free + + + + + + Retrieves the unit type of the value stored inside @units + + + a unit type + + + + + a #ClutterUnits + + + + + + Retrieves the value stored inside @units + + + the value stored inside a #ClutterUnits + + + + + a #ClutterUnits + + + + + + Converts a value in #ClutterUnits to pixels + + + the value in pixels + + + + + units to convert + + + + + + Converts @units into a string + +See clutter_units_from_string() for the units syntax and for +examples of output + +Fractional values are truncated to the second decimal +position for em, mm and cm, and to the first decimal position for +typographic points. Pixels are integers. + + + a newly allocated string containing the encoded + #ClutterUnits value. Use g_free() to free the string + + + + + a #ClutterUnits + + + + + + Stores a value in centimeters inside @units + + + + + + + a #ClutterUnits + + + + centimeters + + + + + + Stores a value in em inside @units, using the default font +name as returned by clutter_backend_get_font_name() + + + + + + + a #ClutterUnits + + + + em + + + + + + Stores a value in em inside @units using @font_name + + + + + + + a #ClutterUnits + + + + the font name and size + + + + em + + + + + + Stores a value in millimiters inside @units + + + + + + + a #ClutterUnits + + + + millimeters + + + + + + Stores a value in pixels inside @units + + + + + + + a #ClutterUnits + + + + pixels + + + + + + Stores a value in typographic points inside @units + + + + + + + a #ClutterUnits + + + + typographic points + + + + + + Parses a value and updates @units with it + +A #ClutterUnits expressed in string should match: + +|[ + units: wsp* unit-value wsp* unit-name? wsp* + unit-value: number + unit-name: 'px' | 'pt' | 'mm' | 'em' | 'cm' + number: digit+ + | digit* sep digit+ + sep: '.' | ',' + digit: '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' + wsp: (#0x20 | #0x9 | #0xA | #0xB | #0xC | #0xD)+ +]| + +For instance, these are valid strings: + +|[ + 10 px + 5.1 em + 24 pt + 12.6 mm + .3 cm +]| + +While these are not: + +|[ + 42 cats + omg!1!ponies +]| + +If no unit is specified, pixels are assumed. + + + %TRUE if the string was successfully parsed, + and %FALSE otherwise + + + + + a #ClutterUnits + + + + the string to convert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A point in 3D space, expressed in pixels + + + X coordinate of the vertex + + + + Y coordinate of the vertex + + + + Z coordinate of the vertex + + + + Allocates a new, empty #ClutterVertex. + + + the newly allocated #ClutterVertex. + Use clutter_vertex_free() to free its resources + + + + + Creates a new #ClutterVertex for the point in 3D space +identified by the 3 coordinates @x, @y, @z. + +This function is the logical equivalent of: + +|[ + clutter_vertex_init (clutter_vertex_alloc (), x, y, z); +]| + + + the newly allocated #ClutterVertex. + Use clutter_vertex_free() to free the resources + + + + + X coordinate + + + + Y coordinate + + + + Z coordinate + + + + + + Copies @vertex + + + a newly allocated copy of #ClutterVertex. + Use clutter_vertex_free() to free the allocated resources + + + + + a #ClutterVertex + + + + + + Compares @vertex_a and @vertex_b for equality + + + %TRUE if the passed #ClutterVertex are equal + + + + + a #ClutterVertex + + + + a #ClutterVertex + + + + + + Frees a #ClutterVertex allocated using clutter_vertex_alloc() or +clutter_vertex_copy(). + + + + + + + a #ClutterVertex + + + + + + Initializes @vertex with the given coordinates. + + + the initialized #ClutterVertex + + + + + a #ClutterVertex + + + + X coordinate + + + + Y coordinate + + + + Z coordinate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets the device manager of this virtual device. + + + The #ClutterDeviceManager of this virtual device + + + + + a virtual device + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The #ClutterZoomAction structure contains only +private data and should be accessed using the provided API + + + Creates a new #ClutterZoomAction instance + + + the newly created #ClutterZoomAction + + + + + + + + + + + + + + + + + + + + + + + + + Retrieves the focal point of the current zoom + + + + + + + a #ClutterZoomAction + + + + a #ClutterPoint + + + + + + Retrieves the focal point relative to the actor's coordinates of +the current zoom + + + + + + + a #ClutterZoomAction + + + + a #ClutterPoint + + + + + + Retrieves the axis constraint set by clutter_zoom_action_set_zoom_axis() + + + the axis constraint + + + + + a #ClutterZoomAction + + + + + + Restricts the zooming action to a specific axis + + + + + + + a #ClutterZoomAction + + + + the axis to constraint the zooming to + + + + + + Constraints the zooming action to the specified axis + + + + + + + + + + The ::zoom signal is emitted for each series of touch events that +change the distance and focal point between the touch points. + +The default handler of the signal will call +clutter_actor_set_scale() on @actor using the ratio of the first +distance between the touch points and the current distance. To +override the default behaviour, connect to this signal and return +%FALSE. + + %TRUE if the zoom should continue, and %FALSE if + the zoom should be cancelled. + + + + + the #ClutterActor attached to the action + + + + the focal point of the zoom + + + + the initial distance between the 2 touch points + + + + + + + The #ClutterZoomActionClass structure contains +only private data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The axis of the constraint that should be applied by the +zooming action. + + Scale only on the X axis + + + Scale only on the Y axis + + + Scale on both axis + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Allocates a new #ClutterActorBox. + + + the newly allocated #ClutterActorBox. + Use clutter_actor_box_free() to free its resources + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Utility function to clear a Cairo context. + + + + + + + a Cairo context + + + + + + Utility function for setting the source color of @cr using +a #ClutterColor. This function is the equivalent of: + +|[ + cairo_set_source_rgba (cr, + color->red / 255.0, + color->green / 255.0, + color->blue / 255.0, + color->alpha / 255.0); +]| + + + + + + + a Cairo context + + + + a #ClutterColor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Checks the run-time name of the Clutter windowing system backend, using +the symbolic macros like %CLUTTER_WINDOWING_X11. + +This function should be used in conjuction with the compile-time macros +inside applications and libraries that are using the platform-specific +windowing system API, to ensure that they are running on the correct +windowing system; for instance: + +|[ +#ifdef CLUTTER_WINDOWING_X11 + if (clutter_check_windowing_backend (CLUTTER_WINDOWING_X11)) + { + // it is safe to use the clutter_x11_* API + } + else +#endif + g_error ("Unknown Clutter backend."); +]| + + + %TRUE if the current Clutter windowing system backend is + the one checked, and %FALSE otherwise + + + + + the name of the backend to check + + + + + + + + + + + + + + + + + + Clears the internal cache of glyphs used by the Pango +renderer. This will free up some memory and GL texture +resources. The cache will be automatically refilled as more text is +drawn. + Use clutter_get_font_map() and + cogl_pango_font_map_clear_glyph_cache() instead. + + + + + + + + + + + + + + + Converts a color expressed in HLS (hue, luminance and saturation) +values into a #ClutterColor. + + + + + + + return location for a #ClutterColor + + + + hue value, in the 0 .. 360 range + + + + luminance value, in the 0 .. 1 range + + + + saturation value, in the 0 .. 1 range + + + + + + Converts @pixel from the packed representation of a four 8 bit channel +color to a #ClutterColor. + + + + + + + return location for a #ClutterColor + + + + a 32 bit packed integer containing a color + + + + + + Parses a string definition of a color, filling the #ClutterColor.red, +#ClutterColor.green, #ClutterColor.blue and #ClutterColor.alpha fields +of @color. + +The @color is not allocated. + +The format of @str can be either one of: + + - a standard name (as taken from the X11 rgb.txt file) + - an hexadecimal value in the form: `#rgb`, `#rrggbb`, `#rgba`, or `#rrggbbaa` + - a RGB color in the form: `rgb(r, g, b)` + - a RGB color in the form: `rgba(r, g, b, a)` + - a HSL color in the form: `hsl(h, s, l)` + -a HSL color in the form: `hsla(h, s, l, a)` + +where 'r', 'g', 'b' and 'a' are (respectively) the red, green, blue color +intensities and the opacity. The 'h', 's' and 'l' are (respectively) the +hue, saturation and luminance values. + +In the rgb() and rgba() formats, the 'r', 'g', and 'b' values are either +integers between 0 and 255, or percentage values in the range between 0% +and 100%; the percentages require the '%' character. The 'a' value, if +specified, can only be a floating point value between 0.0 and 1.0. + +In the hls() and hlsa() formats, the 'h' value (hue) is an angle between +0 and 360.0 degrees; the 'l' and 's' values (luminance and saturation) are +percentage values in the range between 0% and 100%. The 'a' value, if specified, +can only be a floating point value between 0.0 and 1.0. + +Whitespace inside the definitions is ignored; no leading whitespace +is allowed. + +If the alpha component is not specified then it is assumed to be set to +be fully opaque. + + + %TRUE if parsing succeeded, and %FALSE otherwise + + + + + return location for a #ClutterColor + + + + a string specifiying a color + + + + + + Retrieves a static color for the given @color name + +Static colors are created by Clutter and are guaranteed to always be +available and valid + + + a pointer to a static color; the returned pointer + is owned by Clutter and it should never be modified or freed + + + + + the named global color + + + + + + + + + + Looks up the #GParamSpec for a child property of @klass. + + + The #GParamSpec for the property or %NULL + if no such property exist. + + + + + a #GObjectClass implementing the #ClutterContainer interface. + + + + a property name. + + + + + + Returns an array of #GParamSpec for all child properties. + + + an array + of #GParamSpec<!-- -->s which should be freed after use. + + + + + + + a #GObjectClass implementing the #ClutterContainer interface. + + + + return location for length of returned array. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Disable loading the accessibility support. It has the same effect +as setting the environment variable +CLUTTER_DISABLE_ACCESSIBILITY. For the same reason, this method +should be called before clutter_init(). + + + + + + + + + + + Processes an event. + +The @event must be a valid #ClutterEvent and have a #ClutterStage +associated to it. + +This function is only useful when embedding Clutter inside another +toolkit, and it should never be called by applications. + + + + + + + a #ClutterEvent. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Adds a function which will be called for all events that Clutter +processes. The function will be called before any signals are +emitted for the event and it will take precedence over any grabs. + + + an identifier for the event filter, to be used + with clutter_event_remove_filter(). + + + + + The #ClutterStage to capture events for + + + + The callback function which will be passed all events. + + + + A #GDestroyNotify + + + + A data pointer to pass to the function. + + + + + + Pops an event off the event queue. Applications should not need to call +this. + + + A #ClutterEvent or NULL if queue empty + + + + + Returns a pointer to the first event from the event queue but +does not remove it. + + + A #ClutterEvent or NULL if queue empty. + + + + + Removes an event filter that was previously added with +clutter_event_add_filter(). + + + + + + + The ID of the event filter, as returned from clutter_event_add_filter() + + + + + + Checks if events are pending in the event queue. + + + TRUE if there are pending events, FALSE otherwise. + + + + + + + + + + + + + + + + + + + + + + + + + Checks whether @feature is available. @feature can be a logical +OR of #ClutterFeatureFlags. + + + %TRUE if a feature is available + + + + + a #ClutterFeatureFlags + + + + + + Returns all the supported features. + + + a logical OR of all the supported features. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns whether Clutter has accessibility support enabled. As +least, a value of TRUE means that there are a proper AtkUtil +implementation available + + + %TRUE if Clutter has accessibility support enabled + + + + + Retrieves the #ClutterActor with @id_. + The id is deprecated, and this function always returns + %NULL. Use the proper scene graph API in #ClutterActor to find a child + of the stage. + + + the actor with the passed id or %NULL. + The returned actor does not have its reference count increased. + + + + + a #ClutterActor unique id. + + + + + + If an event is currently being processed, return that event. +This function is intended to be used to access event state +that might not be exposed by higher-level widgets. For +example, to get the key modifier state from a Button 'clicked' +event. + + + The current ClutterEvent, or %NULL if none + + + + + Retrieves the timestamp of the last event, if there is an +event or if the event has a timestamp. + + + the event timestamp, or %CLUTTER_CURRENT_TIME + + + + + Check if Clutter has debugging enabled. + This function does not do anything. + + + %FALSE + + + + + Retrieves the default #ClutterBackend used by Clutter. The +#ClutterBackend holds backend-specific configuration options. + + + the default backend. You should + not ref or unref the returned object. Applications should rarely + need to use this. + + + + + Retrieves the default frame rate. See clutter_set_default_frame_rate(). + + + the default frame rate + + + + + Retrieves the default direction for the text. The text direction is +determined by the locale and/or by the `CLUTTER_TEXT_DIRECTION` +environment variable. + +The default text direction can be overridden on a per-actor basis by using +clutter_actor_set_text_direction(). + + + the default text direction + + + + + Gets the current font flags for rendering text. See +clutter_set_font_flags(). + Use clutter_backend_get_font_options() and the + #cairo_font_options_t API. + + + The font flags + + + + + Retrieves the #PangoFontMap instance used by Clutter. +You can use the global font map object with the COGL +Pango API. + + + the #PangoFontMap instance. The returned + value is owned by Clutter and it should never be unreferenced. + + + + + Retrieves the #ClutterInputDevice from its @id_. This is a convenience +wrapper for clutter_device_manager_get_device() and it is functionally +equivalent to: + +|[ + ClutterDeviceManager *manager; + ClutterInputDevice *device; + + manager = clutter_device_manager_get_default (); + device = clutter_device_manager_get_device (manager, id); +]| + Use clutter_device_manager_get_device() instead. + + + a #ClutterInputDevice, or %NULL + + + + + the unique id for a device + + + + + + Queries the current keyboard grab of clutter. + + + the actor currently holding the keyboard grab, or NULL if there is no grab. + + + + + Gets whether the per-actor motion events are enabled. + Use clutter_stage_get_motion_events_enabled() instead. + + + %TRUE if the motion events are enabled + + + + + Returns a #GOptionGroup for the command line arguments recognized +by Clutter. You should add this group to your #GOptionContext with +g_option_context_add_group(), if you are using g_option_context_parse() +to parse your commandline arguments. + +Calling g_option_context_parse() with Clutter's #GOptionGroup will result +in Clutter's initialization. That is, the following code: + +|[ + g_option_context_set_main_group (context, clutter_get_option_group ()); + res = g_option_context_parse (context, &argc, &argc, NULL); +]| + +is functionally equivalent to: + +|[ + clutter_init (&argc, &argv); +]| + +After g_option_context_parse() on a #GOptionContext containing the +Clutter #GOptionGroup has returned %TRUE, Clutter is guaranteed to be +initialized. + + + a #GOptionGroup for the commandline arguments + recognized by Clutter + + + + + Returns a #GOptionGroup for the command line arguments recognized +by Clutter. You should add this group to your #GOptionContext with +g_option_context_add_group(), if you are using g_option_context_parse() +to parse your commandline arguments. + +Unlike clutter_get_option_group(), calling g_option_context_parse() with +the #GOptionGroup returned by this function requires a subsequent explicit +call to clutter_init(); use this function when needing to set foreign +display connection with clutter_x11_set_display(), or with +`gtk_clutter_init()`. + + + a #GOptionGroup for the commandline arguments + recognized by Clutter + + + + + Queries the current pointer grab of clutter. + + + the actor currently holding the pointer grab, or NULL if there is no grab. + + + + + Retrieves the Clutter script id, if any. + + + the script id, or %NULL if @object was not defined inside + a UI definition file. The returned string is owned by the object and + should never be modified or freed. + + + + + a #GObject + + + + + + Returns whether Clutter should print out the frames per second on the +console. You can enable this setting either using the +<literal>CLUTTER_SHOW_FPS</literal> environment variable or passing +the <literal>--clutter-show-fps</literal> command line argument. * + This function does not do anything. Use the environment + variable or the configuration file to determine whether Clutter should + print out the FPS counter on the console. + + + %TRUE if Clutter should show the FPS. + + + + + Returns the approximate number of microseconds passed since Clutter was +intialised. + +This function shdould not be used by application code. + +The output of this function depends on whether Clutter was configured to +enable its debugging code paths, so it's less useful than intended. + +Since Clutter 1.10, this function is an alias to g_get_monotonic_time() +if Clutter was configured to enable the debugging code paths. + Use #GTimer or g_get_monotonic_time() for a proper + timing source + + + Number of microseconds since clutter_init() was called, or + zero if Clutter was not configured with debugging code paths. + + + + + Grabs keyboard events, after the grab is done keyboard +events (#ClutterActor::key-press-event and #ClutterActor::key-release-event) +are delivered to this actor directly. The source set in the event will be +the actor that would have received the event if the keyboard grab was not +in effect. + +Like pointer grabs, keyboard grabs should only be used as a last +resource. + +See also clutter_stage_set_key_focus() and clutter_actor_grab_key_focus() +to perform a "soft" key grab and assign key focus to a specific actor. + + + + + + + a #ClutterActor + + + + + + Grabs pointer events, after the grab is done all pointer related events +(press, motion, release, enter, leave and scroll) are delivered to this +actor directly without passing through both capture and bubble phases of +the event delivery chain. The source set in the event will be the actor +that would have received the event if the pointer grab was not in effect. + +Grabs completely override the entire event delivery chain +done by Clutter. Pointer grabs should only be used as a last resource; +using the #ClutterActor::captured-event signal should always be the +preferred way to intercept event delivery to reactive actors. + +This function should rarely be used. + +If a grab is required, you are strongly encouraged to use a specific +input device by calling clutter_input_device_grab(). + + + + + + + a #ClutterActor + + + + + + Grabs all the pointer events coming from the device @id for @actor. + +If @id is -1 then this function is equivalent to clutter_grab_pointer(). + Use clutter_input_device_grab() instead. + + + + + + + a #ClutterActor + + + + a device id, or -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initialises everything needed to operate with Clutter and parses some +standard command line options; @argc and @argv are adjusted accordingly +so your own code will never see those standard arguments. + +It is safe to call this function multiple times. + +This function will not abort in case of errors during +initialization; clutter_init() will print out the error message on +stderr, and will return an error code. It is up to the application +code to handle this case. If you need to display the error message +yourself, you can use clutter_init_with_args(), which takes a #GError +pointer. + +If this function fails, and returns an error code, any subsequent +Clutter API will have undefined behaviour - including segmentation +faults and assertion failures. Make sure to handle the returned +#ClutterInitError enumeration value. + + + a #ClutterInitError value + + + + + The number of arguments in @argv + + + + A pointer to an array + of arguments. + + + + + + + + + + + + + This function does the same work as clutter_init(). Additionally, +it allows you to add your own command line options, and it +automatically generates nicely formatted <option>--help</option> +output. Note that your program will be terminated after writing +out the help output. Also note that, in case of error, the +error message will be placed inside @error instead of being +printed on the display. + +Just like clutter_init(), if this function returns an error code then +any subsequent call to any other Clutter API will result in undefined +behaviour - including segmentation faults. + + + %CLUTTER_INIT_SUCCESS if Clutter has been successfully + initialised, or other values or #ClutterInitError in case of + error. + + + + + a pointer to the number of command line arguments + + + + a pointer to the array + of command line arguments + + + + + + a string which is displayed in the + first line of <option>--help</option> output, after + <literal><replaceable>programname</replaceable> [OPTION...]</literal> + + + + a %NULL terminated array of + #GOptionEntry<!-- -->s describing the options of your program + + + + + + a translation domain to use for + translating the <option>--help</option> output for the options in + @entries with gettext(), or %NULL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Converts @keyval from a Clutter key symbol to the corresponding +ISO10646 (Unicode) character. + + + a Unicode character, or 0 if there is no corresponding + character. + + + + + a key symbol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Starts the Clutter mainloop. + + + + + + + Retrieves the depth of the Clutter mainloop. + + + The level of the mainloop. + + + + + Terminates the Clutter mainloop. + + + + + + + + + + + + + + + + + + + + + + + Allocates enough memory to hold a #ClutterMatrix. + + + the newly allocated #ClutterMatrix + + + + + Frees the memory allocated by clutter_matrix_alloc(). + + + + + + + a #ClutterMatrix + + + + + + + + + + + + Initializes @matrix with the contents of a C array of floating point +values. + + + the initialzed #ClutterMatrix + + + + + a #ClutterMatrix + + + + a C array of 16 floating point values, + representing a 4x4 matrix, with column-major order + + + + + + + + Initializes the #ClutterMatrix @a with the contents of the +#ClutterMatrix @b. + + + the initialized #ClutterMatrix + + + + + the #ClutterMatrix to initialize + + + + the #ClutterMatrix to copy + + + + + + Initializes @matrix with the identity matrix, i.e.: + +|[ + .xx = 1.0, .xy = 0.0, .xz = 0.0, .xw = 0.0 + .yx = 0.0, .yy = 1.0, .yz = 0.0, .yw = 0.0 + .zx = 0.0, .zy = 0.0, .zz = 1.0, .zw = 0.0 + .wx = 0.0, .wy = 0.0, .wz = 0.0, .ww = 1.0 +]| + + + the initialized #ClutterMatrix + + + + + a #ClutterMatrix + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a #GParamSpec for properties using #ClutterColor. + + + the newly created #GParamSpec + + + + + name of the property + + + + short name + + + + description (can be translatable) + + + + default value + + + + flags for the param spec + + + + + + Creates a #GParamSpec for properties using #ClutterUnits. + + + the newly created #GParamSpec + + + + + name of the property + + + + short name + + + + description (can be translatable) + + + + the default type for the #ClutterUnits + + + + lower boundary + + + + higher boundary + + + + default value + + + + flags for the param spec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A point centered at (0, 0). + +The returned value can be used as a guard. + + + a point centered in (0, 0); the returned #ClutterPoint + is owned by Clutter and it should not be modified or freed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A #ClutterRect with #ClutterRect.origin set at (0, 0) and a size +of 0. + +The returned value can be used as a guard. + + + a rectangle with origin in (0, 0) and a size of 0. + The returned #ClutterRect is owned by Clutter and it should not + be modified or freed. + + + + + Forces a redraw of the entire stage. Applications should never use this +function, but queue a redraw using clutter_actor_queue_redraw(). + +This function should only be used by libraries integrating Clutter from +within another toolkit. + Use clutter_stage_ensure_redraw() instead. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sets the default frame rate. This frame rate will be used to limit +the number of frames drawn if Clutter is not able to synchronize +with the vertical refresh rate of the display. When synchronization +is possible, this value is ignored. + This function does not do anything any more. + + + + + + + the new default frame rate + + + + + + Sets the font quality options for subsequent text rendering +operations. + +Using mipmapped textures will improve the quality for scaled down +text but will use more texture memory. + +Enabling hinting improves text quality for static text but may +introduce some artifacts if the text is animated. + Use clutter_backend_set_font_options() and the + #cairo_font_option_t API. + + + + + + + The new flags + + + + + + Sets whether per-actor motion events should be enabled or not on +all #ClutterStage<!-- -->s managed by Clutter. + +If @enable is %FALSE the following events will not work: + + - ClutterActor::motion-event, except on the #ClutterStage + - ClutterActor::enter-event + - ClutterActor::leave-event + Use clutter_stage_set_motion_events_enabled() instead. + + + + + + + %TRUE to enable per-actor motion events + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Adds a test unit to the Clutter test environment. + +See also: g_test_add() + + + + + + + unique path for identifying the test + + + + function containing the test + + + + + + Adds a test unit to the Clutter test environment. + +See also: g_test_add_data_func() + + + + + + + unique path for identifying the test + + + + function containing the test + + + + data to pass to the test function + + + + + + Adds a test unit to the Clutter test environment. + +See also: g_test_add_data_func_full() + + + + + + + unique path for identifying the test + + + + function containing the test + + + + data to pass to the test function + + + + function called when the test function ends + + + + + + Checks the given coordinates of the @stage and compares the +actor found there with the given @actor. + + + %TRUE if the actor at the given coordinates matches + + + + + a #ClutterStage + + + + coordinates to check + + + + the expected actor at the given coordinates + + + + actor at the coordinates + + + + + + Checks the color at the given coordinates on @stage, and matches +it with the red, green, and blue channels of @color. The alpha +component of @color and @result is ignored. + + + %TRUE if the colors match + + + + + a #ClutterStage + + + + coordinates to check + + + + expected color + + + + color at the given coordinates + + + + + + Retrieves the #ClutterStage used for testing. + + + the stage used for testing + + + + + + + + + + + + + + + + + + + Runs the test suite using the units added by calling +clutter_test_add(). + +The typical test suite is composed of a list of functions +called by clutter_test_run(), for instance: + +|[ +static void unit_foo (void) { ... } + +static void unit_bar (void) { ... } + +static void unit_baz (void) { ... } + +int +main (int argc, char *argv[]) +{ + clutter_test_init (&argc, &argv); + + clutter_test_add ("/unit/foo", unit_foo); + clutter_test_add ("/unit/bar", unit_bar); + clutter_test_add ("/unit/baz", unit_baz); + + return clutter_test_run (); +} +]| + + + the exit code for the test suite + + + + + + + + + + + + + + + + + + + + + + Simple wrapper around clutter_threads_add_idle_full() using the +default priority. + + + the ID (greater than 0) of the event source. + + + + + function to call + + + + data to pass to the function + + + + + + Adds a function to be called whenever there are no higher priority +events pending. If the function returns %FALSE it is automatically +removed from the list of event sources and will not be called again. + +This function can be considered a thread-safe variant of g_idle_add_full(): +it will call @function while holding the Clutter lock. It is logically +equivalent to the following implementation: + +|[ +static gboolean +idle_safe_callback (gpointer data) +{ + SafeClosure *closure = data; + gboolean res = FALSE; + + // mark the critical section // + + clutter_threads_enter(); + + // the callback does not need to acquire the Clutter + / lock itself, as it is held by the this proxy handler + // + res = closure->callback (closure->data); + + clutter_threads_leave(); + + return res; +} +static gulong +add_safe_idle (GSourceFunc callback, + gpointer data) +{ + SafeClosure *closure = g_new0 (SafeClosure, 1); + + closure->callback = callback; + closure->data = data; + + return g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, + idle_safe_callback, + closure, + g_free) +} +]| + +This function should be used by threaded applications to make sure +that @func is emitted under the Clutter threads lock and invoked +from the same thread that started the Clutter main loop. For instance, +it can be used to update the UI using the results from a worker +thread: + +|[ +static gboolean +update_ui (gpointer data) +{ + SomeClosure *closure = data; + + // it is safe to call Clutter API from this function because + / it is invoked from the same thread that started the main + / loop and under the Clutter thread lock + // + clutter_label_set_text (CLUTTER_LABEL (closure->label), + closure->text); + + g_object_unref (closure->label); + g_free (closure); + + return FALSE; +} + + // within another thread // + closure = g_new0 (SomeClosure, 1); + // always take a reference on GObject instances // + closure->label = g_object_ref (my_application->label); + closure->text = g_strdup (processed_text_to_update_the_label); + + clutter_threads_add_idle_full (G_PRIORITY_HIGH_IDLE, + update_ui, + closure, + NULL); +]| + + + the ID (greater than 0) of the event source. + + + + + the priority of the timeout source. Typically this will be in the + range between #G_PRIORITY_DEFAULT_IDLE and #G_PRIORITY_HIGH_IDLE + + + + function to call + + + + data to pass to the function + + + + functio to call when the idle source is removed + + + + + + Adds a function to be called whenever Clutter is processing a new +frame. + +If the function returns %FALSE it is automatically removed from the +list of repaint functions and will not be called again. + +This function is guaranteed to be called from within the same thread +that called clutter_main(), and while the Clutter lock is being held; +the function will be called within the main loop, so it is imperative +that it does not block, otherwise the frame time budget may be lost. + +A repaint function is useful to ensure that an update of the scenegraph +is performed before the scenegraph is repainted; for instance, uploading +a frame from a video into a #ClutterTexture. By default, a repaint +function added using this function will be invoked prior to the frame +being processed. + +Adding a repaint function does not automatically ensure that a new +frame will be queued. + +When the repaint function is removed (either because it returned %FALSE +or because clutter_threads_remove_repaint_func() has been called) the +@notify function will be called, if any is set. + +See also: clutter_threads_add_repaint_func_full() + + + the ID (greater than 0) of the repaint function. You + can use the returned integer to remove the repaint function by + calling clutter_threads_remove_repaint_func(). + + + + + the function to be called within the paint cycle + + + + data to be passed to the function, or %NULL + + + + function to be called when removing the repaint + function, or %NULL + + + + + + Adds a function to be called whenever Clutter is processing a new +frame. + +If the function returns %FALSE it is automatically removed from the +list of repaint functions and will not be called again. + +This function is guaranteed to be called from within the same thread +that called clutter_main(), and while the Clutter lock is being held; +the function will be called within the main loop, so it is imperative +that it does not block, otherwise the frame time budget may be lost. + +A repaint function is useful to ensure that an update of the scenegraph +is performed before the scenegraph is repainted; for instance, uploading +a frame from a video into a #ClutterTexture. The @flags passed to this +function will determine the section of the frame processing that will +result in @func being called. + +Adding a repaint function does not automatically ensure that a new +frame will be queued. + +When the repaint function is removed (either because it returned %FALSE +or because clutter_threads_remove_repaint_func() has been called) the +@notify function will be called, if any is set. + + + the ID (greater than 0) of the repaint function. You + can use the returned integer to remove the repaint function by + calling clutter_threads_remove_repaint_func(). + + + + + flags for the repaint function + + + + the function to be called within the paint cycle + + + + data to be passed to the function, or %NULL + + + + function to be called when removing the repaint + function, or %NULL + + + + + + Simple wrapper around clutter_threads_add_timeout_full(). + + + the ID (greater than 0) of the event source. + + + + + the time between calls to the function, in milliseconds + + + + function to call + + + + data to pass to the function + + + + + + Sets a function to be called at regular intervals holding the Clutter +threads lock, with the given priority. The function is called repeatedly +until it returns %FALSE, at which point the timeout is automatically +removed and the function will not be called again. The @notify function +is called when the timeout is removed. + +The first call to the function will be at the end of the first @interval. + +It is important to note that, due to how the Clutter main loop is +implemented, the timing will not be accurate and it will not try to +"keep up" with the interval. + +See also clutter_threads_add_idle_full(). + + + the ID (greater than 0) of the event source. + + + + + the priority of the timeout source. Typically this will be in the + range between #G_PRIORITY_DEFAULT and #G_PRIORITY_HIGH. + + + + the time between calls to the function, in milliseconds + + + + function to call + + + + data to pass to the function + + + + function to call when the timeout source is removed + + + + + + Locks the Clutter thread lock. + This function should not be used by application + code; marking critical sections is not portable on various + platforms. Instead of acquiring the Clutter lock, schedule UI + updates from the main loop using clutter_threads_add_idle() or + clutter_threads_add_timeout(). + + + + + + + Initialises the Clutter threading mechanism, so that Clutter API can be +called by multiple threads, using clutter_threads_enter() and +clutter_threads_leave() to mark the critical sections. + +You must call g_thread_init() before this function. + +This function must be called before clutter_init(). + +It is safe to call this function multiple times. + This function does not do anything. Threading support + is initialized when Clutter is initialized. + + + + + + + Unlocks the Clutter thread lock. + This function should not be used by application + code; marking critical sections is not portable on various + platforms. Instead of acquiring the Clutter lock, schedule UI + updates from the main loop using clutter_threads_add_idle() or + clutter_threads_add_timeout(). + + + + + + + Removes the repaint function with @handle_id as its id + + + + + + + an unsigned integer greater than zero + + + + + + Allows the application to replace the standard method that +Clutter uses to protect its data structures. Normally, Clutter +creates a single #GMutex that is locked by clutter_threads_enter(), +and released by clutter_threads_leave(); using this function an +application provides, instead, a function @enter_fn that is +called by clutter_threads_enter() and a function @leave_fn that is +called by clutter_threads_leave(). + +The functions must provide at least same locking functionality +as the default implementation, but can also do extra application +specific processing. + +As an example, consider an application that has its own recursive +lock that when held, holds the Clutter lock as well. When Clutter +unlocks the Clutter lock when entering a recursive main loop, the +application must temporarily release its lock as well. + +Most threaded Clutter apps won't need to use this method. + +This method must be called before clutter_init(), and cannot +be called multiple times. + + + + + + + function called when aquiring the Clutter main lock + + + + function called when releasing the Clutter main lock + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Removes an existing grab of the keyboard. + + + + + + + Removes an existing grab of the pointer. + + + + + + + Removes an existing grab of the pointer events for device @id_. + Use clutter_input_device_ungrab() instead. + + + + + + + a device id + + + + + + Convert from a ISO10646 character to a key symbol. + + + the corresponding Clutter key symbol, if one exists. + or, if there is no corresponding symbol, wc | 0x01000000 + + + + + a ISO10646 encoded character + + + + + + + + + + Stores a value in centimeters inside @units + + + + + + + a #ClutterUnits + + + + centimeters + + + + + + Stores a value in em inside @units, using the default font +name as returned by clutter_backend_get_font_name() + + + + + + + a #ClutterUnits + + + + em + + + + + + Stores a value in em inside @units using @font_name + + + + + + + a #ClutterUnits + + + + the font name and size + + + + em + + + + + + Stores a value in millimiters inside @units + + + + + + + a #ClutterUnits + + + + millimeters + + + + + + Stores a value in pixels inside @units + + + + + + + a #ClutterUnits + + + + pixels + + + + + + Stores a value in typographic points inside @units + + + + + + + a #ClutterUnits + + + + typographic points + + + + + + Parses a value and updates @units with it + +A #ClutterUnits expressed in string should match: + +|[ + units: wsp* unit-value wsp* unit-name? wsp* + unit-value: number + unit-name: 'px' | 'pt' | 'mm' | 'em' | 'cm' + number: digit+ + | digit* sep digit+ + sep: '.' | ',' + digit: '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' + wsp: (#0x20 | #0x9 | #0xA | #0xB | #0xC | #0xD)+ +]| + +For instance, these are valid strings: + +|[ + 10 px + 5.1 em + 24 pt + 12.6 mm + .3 cm +]| + +While these are not: + +|[ + 42 cats + omg!1!ponies +]| + +If no unit is specified, pixels are assumed. + + + %TRUE if the string was successfully parsed, + and %FALSE otherwise + + + + + a #ClutterUnits + + + + the string to convert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Retrieves a pointer to the #ClutterPaintNode contained inside +the passed #GValue, and if not %NULL it will increase the +reference count. + + + a pointer + to the #ClutterPaintNode, with its reference count increased, + or %NULL + + + + + a #GValue initialized with %CLUTTER_TYPE_PAINT_NODE + + + + + + Gets the #ClutterColor contained in @value. + + + the color inside the passed #GValue + + + + + a #GValue initialized to #CLUTTER_TYPE_COLOR + + + + + + Retrieves a pointer to the #ClutterPaintNode contained inside +the passed #GValue. + + + a pointer to + a #ClutterPaintNode, or %NULL + + + + + a #GValue initialized with %CLUTTER_TYPE_PAINT_NODE + + + + + + Retrieves the list of floating point values stored inside +the passed #GValue. @value must have been initialized with +%CLUTTER_TYPE_SHADER_FLOAT. + + + the pointer to a list of + floating point values. The returned value is owned by the + #GValue and should never be modified or freed. + + + + + + + a #GValue + + + + return location for the number of returned floating + point values, or %NULL + + + + + + Retrieves the list of integer values stored inside the passed +#GValue. @value must have been initialized with +%CLUTTER_TYPE_SHADER_INT. + + + the pointer to a list of + integer values. The returned value is owned by the #GValue and + should never be modified or freed. + + + + + + + a #GValue + + + + return location for the number of returned integer + values, or %NULL + + + + + + Retrieves a matrix of floating point values stored inside +the passed #GValue. @value must have been initialized with +%CLUTTER_TYPE_SHADER_MATRIX. + + + the pointer to a matrix + of floating point values. The returned value is owned by the #GValue and + should never be modified or freed. + + + + + + + a #GValue + + + + return location for the number of returned floating + point values, or %NULL + + + + + + Gets the #ClutterUnits contained in @value. + + + the units inside the passed #GValue + + + + + a #GValue initialized to %CLUTTER_TYPE_UNITS + + + + + + Sets @value to @color. + + + + + + + a #GValue initialized to #CLUTTER_TYPE_COLOR + + + + the color to set + + + + + + Sets the contents of a #GValue initialized with %CLUTTER_TYPE_PAINT_NODE. + +This function increased the reference count of @node; if you do not wish +to increase the reference count, use clutter_value_take_paint_node() +instead. The reference count will be released by g_value_unset(). + + + + + + + a #GValue initialized with %CLUTTER_TYPE_PAINT_NODE + + + + a #ClutterPaintNode, or %NULL + + + + + + Sets @floats as the contents of @value. The passed #GValue +must have been initialized using %CLUTTER_TYPE_SHADER_FLOAT. + + + + + + + a #GValue + + + + number of floating point values in @floats + + + + an array of floating point values + + + + + + + + Sets @ints as the contents of @value. The passed #GValue +must have been initialized using %CLUTTER_TYPE_SHADER_INT. + + + + + + + a #GValue + + + + number of integer values in @ints + + + + an array of integer values + + + + + + + + Sets @matrix as the contents of @value. The passed #GValue +must have been initialized using %CLUTTER_TYPE_SHADER_MATRIX. + + + + + + + a #GValue + + + + number of floating point values in @floats + + + + a matrix of floating point values + + + + + + + + Sets @value to @units + + + + + + + a #GValue initialized to %CLUTTER_TYPE_UNITS + + + + the units to set + + + + + + Sets the contents of a #GValue initialized with %CLUTTER_TYPE_PAINT_NODE. + +Unlike clutter_value_set_paint_node(), this function will not take a +reference on the passed @node: instead, it will take ownership of the +current reference count. + + + + + + + a #GValue, initialized with %CLUTTER_TYPE_PAINT_NODE + + + + a #ClutterPaintNode, or %NULL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/docs/scrapers/gnome/girs/mutter-4/ClutterX11-4.gir b/lib/docs/scrapers/gnome/girs/mutter-4/ClutterX11-4.gir new file mode 100644 index 0000000000..2149c241c9 --- /dev/null +++ b/lib/docs/scrapers/gnome/girs/mutter-4/ClutterX11-4.gir @@ -0,0 +1,621 @@ + + + + + + + + + + + Filter function for X11 native events. + + + the result of the filtering + + + + + Native X11 event structure + + + + Clutter event structure + + + + user data passed to the filter function + + + + + + Return values for the #ClutterX11FilterFunc function. + + The event was not handled, continues the + processing + + + Native event translated into a Clutter + event, stops the processing + + + Remove the event, stops the processing + + + + + + + Adds an event filter function. + + + + + + + a filter function + + + + user data to be passed to the filter function, or %NULL + + + + + + Disables the internal polling of X11 events in the main loop. + +Libraries or applications calling this function will be responsible of +polling all X11 events. + +You also must call clutter_x11_handle_event() to let Clutter process +events and maintain its internal state. + +This function can only be called before calling clutter_init(). + +Even with event handling disabled, Clutter will still select +all the events required to maintain its internal state on the stage +Window; compositors using Clutter and input regions to pass events +through to application windows should not rely on an empty input +region, and should instead clear it themselves explicitly using the +XFixes extension. + +This function should not be normally used by applications. + + + + + + + Retrieves the group for the modifiers set in @event + + + the group id + + + + + a #ClutterEvent of type %CLUTTER_KEY_PRESS or %CLUTTER_KEY_RELEASE + + + + + + Retrieves the touch detail froma #ClutterEventSequence. + + + the touch detail + + + + + a #ClutterEventSequence + + + + + + Retrieves the timestamp of the last X11 event processed by +Clutter. This might be different from the timestamp returned +by clutter_get_current_event_time(), as Clutter may synthesize +or throttle events. + + + a timestamp, in milliseconds + + + + + Retrieves the pointer to the default display. + + + the default display + + + + + Gets the number of the default X Screen object. + + + the number of the default screen + + + + + Retrieves the root window. + + + the id of the root window + + + + + Gets the stage for a particular X window. + + + A #ClutterStage, or% NULL if a stage + does not exist for the window + + + + + an X Window ID + + + + + + Gets the stages X Window. + + + An XID for the stage window. + + + + + a #ClutterStage + + + + + + Retrieves whether the Clutter X11 backend is using ARGB visuals by default + + + %TRUE if ARGB visuals are queried by default + + + + + Retrieves whether the Clutter X11 backend will create stereo +stages if possible. + + + %TRUE if stereo stages are used if possible + + + + + Retrieves the `XVisualInfo` used by the Clutter X11 backend. + + + a `XVisualInfo`, or `None`. + The returned value should be freed using `XFree()` when done + + + + + This function processes a single X event; it can be used to hook +into external X11 event processing (for example, a GDK filter +function). + +If clutter_x11_disable_event_retrieval() has been called, you must +let this function process events to update Clutter's internal state. + + + #ClutterX11FilterReturn. %CLUTTER_X11_FILTER_REMOVE + indicates that Clutter has internally handled the event and the + caller should do no further processing. %CLUTTER_X11_FILTER_CONTINUE + indicates that Clutter is either not interested in the event, + or has used the event to update internal state without taking + any exclusive action. %CLUTTER_X11_FILTER_TRANSLATE will not + occur. + + + + + pointer to XEvent structure + + + + + + Retrieves whether Clutter is running on an X11 server with the +XComposite extension + + + %TRUE if the XComposite extension is available + + + + + Queries the X11 backend to check if event collection has been disabled. + + + TRUE if event retrival has been disabled. FALSE otherwise. + + + + + Gets whether Clutter has XInput support. + + + %TRUE if Clutter was compiled with XInput support + and XInput support is available at run time. + + + + + Removes the given filter function. + + + + + + + a filter function + + + + user data to be passed to the filter function, or %NULL + + + + + + Sets the display connection Clutter should use; must be called +before clutter_init(), clutter_init_with_args() or other functions +pertaining Clutter's initialization process. + +If you are parsing the command line arguments by retrieving Clutter's +#GOptionGroup with clutter_get_option_group() and calling +g_option_context_parse() yourself, you should also call +clutter_x11_set_display() before g_option_context_parse(). + + + + + + + pointer to a X display connection. + + + + + + Target the #ClutterStage to use an existing external X Window + + + %TRUE if foreign window is valid + + + + + a #ClutterStage + + + + an existing X Window id + + + + + + Sets whether the Clutter X11 backend should request ARGB visuals by default +or not. + +By default, Clutter requests RGB visuals. + +If no ARGB visuals are found, the X11 backend will fall back to +requesting a RGB visual instead. + +ARGB visuals are required for the #ClutterStage:use-alpha property to work. + +This function can only be called once, and before clutter_init() is +called. + + + + + + + %TRUE if ARGB visuals should be requested by default + + + + + + Sets whether the backend object for Clutter stages, will, +if possible, be created with the ability to support stereo drawing +(drawing separate images for the left and right eyes). + +This function must be called before clutter_init() is called. +During paint callbacks, cogl_framebuffer_is_stereo() can be called +on the framebuffer retrieved by cogl_get_draw_framebuffer() to +determine if stereo support was successfully enabled, and +cogl_framebuffer_set_stereo_mode() to determine which buffers +will be drawn to. + +Note that this function *does not* cause the stage to be drawn +multiple times with different perspective transformations and thus +appear in 3D, it simply enables individual ClutterActors to paint +different images for the left and and right eye. + + + + + + + %TRUE if the stereo stages should be used if possible. + + + + + + Traps every X error until clutter_x11_untrap_x_errors() is called. + + + + + + + Removes the X error trap and returns the current status. + + + the trapped error code, or 0 for success + + + + + diff --git a/lib/docs/scrapers/gnome/girs/mutter-4/Cogl-4.gir b/lib/docs/scrapers/gnome/girs/mutter-4/Cogl-4.gir new file mode 100644 index 0000000000..99d0d135b5 --- /dev/null +++ b/lib/docs/scrapers/gnome/girs/mutter-4/Cogl-4.gir @@ -0,0 +1,19254 @@ + + + + + + + + Integer representation of an angle such that 1024 corresponds to +full circle (i.e., 2 * pi). + + + + + Type used for storing references to cogl objects, the CoglHandle is +a fully opaque type without any public data members. + + + + + When associating private data with a #CoglObject a callback can be +given which will be called either if the object is destroyed or if +cogl_object_set_user_data() is called with NULL user_data for the +same key. + + + + + + + + + + + + + Data types for the components of a vertex attribute. + + + Data is the same size of a byte + + + Data is the same size of an + unsigned byte + + + Data is the same size of a short integer + + + Data is the same size of + an unsigned short integer + + + Data is the same size of a float + + + + + + + + + Creates a bitmap using some existing data. The data is not copied +so the application must keep the buffer alive for the lifetime of +the #CoglBitmap. This can be used for example with +cogl_framebuffer_read_pixels_into_bitmap() to read data directly +into an application buffer with the specified rowstride. + + + A new #CoglBitmap. + + + + + A #CoglContext + + + + The width of the bitmap. + + + + The height of the bitmap. + + + + The format of the pixel data. + + + + The rowstride of the bitmap (the number of bytes from + the start of one row of the bitmap to the next). + + + + A pointer to the data. The bitmap will take ownership of this data. + + + + + + Wraps some image data that has been uploaded into a #CoglBuffer as +a #CoglBitmap. The data is not copied in this process. + + + a #CoglBitmap encapsulating the given @buffer. + + + + + A #CoglBuffer containing image data + + + + The #CoglPixelFormat defining the format of the image data + in the given @buffer. + + + + The width of the image data in the given @buffer. + + + + The height of the image data in the given @buffer. + + + + The rowstride in bytes of the image data in the given @buffer. + + + + The offset into the given @buffer to the first pixel that + should be considered part of the #CoglBitmap. + + + + + + Loads an image file from disk. This function can be safely called from +within a thread. + + + a #CoglBitmap to the new loaded + image data, or %NULL if loading the image failed. + + + + + the file to load. + + + + + + Creates a new #CoglBitmap with the given width, height and format. +The initial contents of the bitmap are undefined. + +The data for the bitmap will be stored in a newly created +#CoglPixelBuffer. You can get a pointer to the pixel buffer using +cogl_bitmap_get_buffer(). The #CoglBuffer API can then be +used to fill the bitmap with data. + +<note>Cogl will try its best to provide a hardware array you can +map, write into and effectively do a zero copy upload when creating +a texture from it with cogl_texture_new_from_bitmap(). For various +reasons, such arrays are likely to have a stride larger than width +* bytes_per_pixel. The user must take the stride into account when +writing into it. The stride can be retrieved with +cogl_bitmap_get_rowstride().</note> + + + a #CoglPixelBuffer representing the + newly created array or %NULL on failure + + + + + A #CoglContext + + + + width of the bitmap in pixels + + + + height of the bitmap in pixels + + + + the format of the pixels the array will store + + + + + + + + + + + + Parses an image file enough to extract the width and height +of the bitmap. + + + %TRUE if the image was successfully parsed + + + + + the file to check + + + + return location for the bitmap width, or %NULL + + + + return location for the bitmap height, or %NULL + + + + + + + + the #CoglPixelBuffer that this + buffer uses for storage. Note that if the bitmap was created with + cogl_bitmap_new_from_file() then it will not actually be using a + pixel buffer and this function will return %NULL. + + + + + A #CoglBitmap + + + + + + + + the #CoglPixelFormat that the data for the bitmap is in. + + + + + A #CoglBitmap + + + + + + + + the height of the bitmap + + + + + A #CoglBitmap + + + + + + + + the rowstride of the bitmap. This is the number of + bytes between the address of start of one row to the address of the + next row in the image. + + + + + A #CoglBitmap + + + + + + + + the width of the bitmap + + + + + A #CoglBitmap + + + + + + + Error codes that can be thrown when performing bitmap +operations. Note that gdk_pixbuf_new_from_file() can also throw +errors directly from the underlying image loading library. For +example, if GdkPixbuf is used then errors #GdkPixbufError<!-- -->s +will be used directly. + + + Generic failure code, something went + wrong. + + + Unknown image type. + + + An image file was broken somehow. + + + + Error enumeration for the blend strings parser + + + Generic parse error + + + Argument parse error + + + Internal parser error + + + Blend string not + supported by the GPU + + + + Types of auxiliary buffers + + + Selects the primary color buffer + + + Selects the depth buffer + + + Selects the stencil buffer + + + + Target flags for FBOs. + + + FIXME + + + FIXME + + + + A structure for holding a color definition. The contents of +the CoglColor structure are private and should never by accessed +directly. + + + + + + + + + + + + + + + + + + + + + + + + Creates a new (empty) color + + + a newly-allocated #CoglColor. Use cogl_color_free() + to free the allocated resources + + + + + Creates a copy of @color + + + a newly-allocated #CoglColor. Use cogl_color_free() + to free the allocate resources + + + + + the color to copy + + + + + + Frees the resources allocated by cogl_color_new() and cogl_color_copy() + + + + + + + the color to free + + + + + + Retrieves the alpha channel of @color as a fixed point +value between 0 and 1.0. + + + the alpha channel of the passed color + + + + + a #CoglColor + + + + + + Retrieves the alpha channel of @color as a byte value +between 0 and 255 + + + the alpha channel of the passed color + + + + + a #CoglColor + + + + + + Retrieves the alpha channel of @color as a floating point +value between 0.0 and 1.0 + + + the alpha channel of the passed color + + + + + a #CoglColor + + + + + + Retrieves the blue channel of @color as a fixed point +value between 0 and 1.0. + + + the blue channel of the passed color + + + + + a #CoglColor + + + + + + Retrieves the blue channel of @color as a byte value +between 0 and 255 + + + the blue channel of the passed color + + + + + a #CoglColor + + + + + + Retrieves the blue channel of @color as a floating point +value between 0.0 and 1.0 + + + the blue channel of the passed color + + + + + a #CoglColor + + + + + + Retrieves the green channel of @color as a fixed point +value between 0 and 1.0. + + + the green channel of the passed color + + + + + a #CoglColor + + + + + + Retrieves the green channel of @color as a byte value +between 0 and 255 + + + the green channel of the passed color + + + + + a #CoglColor + + + + + + Retrieves the green channel of @color as a floating point +value between 0.0 and 1.0 + + + the green channel of the passed color + + + + + a #CoglColor + + + + + + Retrieves the red channel of @color as a fixed point +value between 0 and 1.0. + + + the red channel of the passed color + + + + + a #CoglColor + + + + + + Retrieves the red channel of @color as a byte value +between 0 and 255 + + + the red channel of the passed color + + + + + a #CoglColor + + + + + + Retrieves the red channel of @color as a floating point +value between 0.0 and 1.0 + + + the red channel of the passed color + + + + + a #CoglColor + + + + + + Sets the values of the passed channels into a #CoglColor + + + + + + + A pointer to a #CoglColor to initialize + + + + value of the red channel, between 0 and 1.0 + + + + value of the green channel, between 0 and 1.0 + + + + value of the blue channel, between 0 and 1.0 + + + + value of the alpha channel, between 0 and 1.0 + + + + + + Sets the values of the passed channels into a #CoglColor + + + + + + + A pointer to a #CoglColor to initialize + + + + a pointer to an array of 4 float color components + + + + + + Sets the values of the passed channels into a #CoglColor. + + + + + + + A pointer to a #CoglColor to initialize + + + + value of the red channel, between 0 and 255 + + + + value of the green channel, between 0 and 255 + + + + value of the blue channel, between 0 and 255 + + + + value of the alpha channel, between 0 and 255 + + + + + + Converts a non-premultiplied color to a pre-multiplied color. For +example, semi-transparent red is (1.0, 0, 0, 0.5) when non-premultiplied +and (0.5, 0, 0, 0.5) when premultiplied. + + + + + + + the color to premultiply + + + + + + Sets the alpha channel of @color to @alpha. + + + + + + + a #CoglColor + + + + a float value between 0.0f and 1.0f + + + + + + Sets the alpha channel of @color to @alpha. + + + + + + + a #CoglColor + + + + a byte value between 0 and 255 + + + + + + Sets the alpha channel of @color to @alpha. + + + + + + + a #CoglColor + + + + a float value between 0.0f and 1.0f + + + + + + Sets the blue channel of @color to @blue. + + + + + + + a #CoglColor + + + + a float value between 0.0f and 1.0f + + + + + + Sets the blue channel of @color to @blue. + + + + + + + a #CoglColor + + + + a byte value between 0 and 255 + + + + + + Sets the blue channel of @color to @blue. + + + + + + + a #CoglColor + + + + a float value between 0.0f and 1.0f + + + + + + Sets the values of the passed channels into a #CoglColor + Use cogl_color_init_from_4f instead. + + + + + + + A pointer to a #CoglColor to initialize + + + + value of the red channel, between 0 and %1.0 + + + + value of the green channel, between 0 and %1.0 + + + + value of the blue channel, between 0 and %1.0 + + + + value of the alpha channel, between 0 and %1.0 + + + + + + Sets the values of the passed channels into a #CoglColor. + Use cogl_color_init_from_4ub instead. + + + + + + + A pointer to a #CoglColor to initialize + + + + value of the red channel, between 0 and 255 + + + + value of the green channel, between 0 and 255 + + + + value of the blue channel, between 0 and 255 + + + + value of the alpha channel, between 0 and 255 + + + + + + Sets the green channel of @color to @green. + + + + + + + a #CoglColor + + + + a float value between 0.0f and 1.0f + + + + + + Sets the green channel of @color to @green. + + + + + + + a #CoglColor + + + + a byte value between 0 and 255 + + + + + + Sets the green channel of @color to @green. + + + + + + + a #CoglColor + + + + a float value between 0.0f and 1.0f + + + + + + Sets the red channel of @color to @red. + + + + + + + a #CoglColor + + + + a float value between 0.0f and 1.0f + + + + + + Sets the red channel of @color to @red. + + + + + + + a #CoglColor + + + + a byte value between 0 and 255 + + + + + + Sets the red channel of @color to @red. + + + + + + + a #CoglColor + + + + a float value between 0.0f and 1.0f + + + + + + Converts @color to the HLS format. + +The @hue value is in the 0 .. 360 range. The @luminance and +@saturation values are in the 0 .. 1 range. + + + + + + + a #CoglColor + + + + return location for the hue value or %NULL + + + + return location for the saturation value or %NULL + + + + return location for the luminance value or %NULL + + + + + + Converts a pre-multiplied color to a non-premultiplied color. For +example, semi-transparent red is (0.5, 0, 0, 0.5) when premultiplied +and (1.0, 0, 0, 0.5) when non-premultiplied. + + + + + + + the color to unpremultiply + + + + + + Compares two #CoglColor<!-- -->s and checks if they are the same. + +This function can be passed to g_hash_table_new() as the @key_equal_func +parameter, when using #CoglColor<!-- -->s as keys in a #GHashTable. + + + %TRUE if the two colors are the same. + + + + + a #CoglColor + + + + a #CoglColor + + + + + + Converts a color expressed in HLS (hue, luminance and saturation) +values into a #CoglColor. + + + + + + + return location for a #CoglColor + + + + hue value, in the 0 .. 360 range + + + + saturation value, in the 0 .. 1 range + + + + luminance value, in the 0 .. 1 range + + + + + + + Defines a bit mask of color channels. This can be used with +cogl_pipeline_set_color_mask() for example to define which color +channels should be written to the current framebuffer when +drawing something. + + + None of the color channels are masked + + + Masks the red color channel + + + Masks the green color channel + + + Masks the blue color channel + + + Masks the alpha color channel + + + All of the color channels are masked + + + + + + + + A callback function to use for cogl_debug_object_foreach_type(). + + + + + + + A pointer to a struct containing information about the type. + + + + + + + + + This struct is used to pass information to the callback when +cogl_debug_object_foreach_type() is called. + + + A human readable name for the type. + + + + The number of objects of this type that are + currently in use + + + + + When using depth testing one of these functions is used to compare +the depth of an incoming fragment against the depth value currently +stored in the depth buffer. The function is changed using +cogl_depth_state_set_test_function(). + +The test is only done when depth testing is explicitly enabled. (See +cogl_depth_state_set_test_enabled()) + + + Never passes. + + + Passes if the fragment's depth +value is less than the value currently in the depth buffer. + + + Passes if the fragment's depth +value is equal to the value currently in the depth buffer. + + + Passes if the fragment's depth +value is less or equal to the value currently in the depth buffer. + + + Passes if the fragment's depth +value is greater than the value currently in the depth buffer. + + + Passes if the fragment's depth +value is not equal to the value currently in the depth buffer. + + + Passes if the fragment's depth +value greater than or equal to the value currently in the depth buffer. + + + Always passes. + + + + + + + Flags for the supported features. + + + ARB_texture_rectangle support + + + Non power of two textures are supported + by the hardware. This is a equivalent to the + %COGL_FEATURE_TEXTURE_NPOT_BASIC, %COGL_FEATURE_TEXTURE_NPOT_MIPMAP + and %COGL_FEATURE_TEXTURE_NPOT_REPEAT features combined. + + + ycbcr conversion support + + + glReadPixels() support + + + GLSL support + + + FBO support + + + Multisample support on FBOs + + + Blit support on FBOs + + + At least 4 clip planes available + + + Stencil buffer support + + + VBO support + + + PBO support + + + Set if + %COGL_INDICES_TYPE_UNSIGNED_INT is supported in + cogl_vertex_buffer_indices_new(). + + + cogl_material_set_depth_range() support + + + The hardware supports non power + of two textures, but you also need to check the + %COGL_FEATURE_TEXTURE_NPOT_MIPMAP and %COGL_FEATURE_TEXTURE_NPOT_REPEAT + features to know if the hardware supports npot texture mipmaps + or repeat modes other than + %COGL_PIPELINE_WRAP_MODE_CLAMP_TO_EDGE respectively. + + + Mipmapping is supported in + conjuntion with non power of two textures. + + + Repeat modes other than + %COGL_PIPELINE_WRAP_MODE_CLAMP_TO_EDGE are supported by the + hardware. + + + Whether + cogl_material_set_layer_point_sprite_coords_enabled() is supported. + + + 3D texture support + + + Whether cogl_buffer_map() is + supported with CoglBufferAccess including read support. + + + Whether cogl_buffer_map() is + supported with CoglBufferAccess including write support. + + + + + Whether #CoglFramebuffer support rendering the + depth buffer to a texture. + + + + Return values for the #CoglXlibFilterFunc and #CoglWin32FilterFunc functions. + + + The event was not handled, continues the + processing + + + Remove the event, stops the processing + + + + The fog mode determines the equation used to calculate the fogging blend +factor while fogging is enabled. The simplest %COGL_FOG_MODE_LINEAR mode +determines f as: + +|[ + f = end - eye_distance / end - start +]| + +Where eye_distance is the distance of the current fragment in eye +coordinates from the origin. + + + Calculates the fog blend factor as: +|[ + f = end - eye_distance / end - start +]| + + + Calculates the fog blend factor as: +|[ + f = e ^ -(density * eye_distance) +]| + + + Calculates the fog blend factor as: +|[ + f = e ^ -(density * eye_distance)^2 +]| + + + + Is a callback that can be registered via +cogl_onscreen_add_frame_callback() to be called when a frame +progresses in some notable way. + +Please see the documentation for #CoglFrameEvent and +cogl_onscreen_add_frame_callback() for more details about what +events can be notified. + + + + + + + The onscreen that the frame is associated with + + + + A #CoglFrameEvent notifying how the frame has progressed + + + + The meta information, such as timing information, about + the frame that has progressed. + + + + The user pointer passed to + cogl_onscreen_add_frame_callback() + + + + + + An opaque type that tracks a #CoglFrameCallback and associated user +data. A #CoglFrameClosure pointer will be returned from +cogl_onscreen_add_frame_callback() and it allows you to remove a +callback later using cogl_onscreen_remove_frame_callback(). + + + + Identifiers that are passed to #CoglFrameCallback functions +(registered using cogl_onscreen_add_frame_callback()) that +mark the progression of a frame in some way which usually +means that new information will have been accumulated in the +frame's corresponding #CoglFrameInfo object. + +The last event that will be sent for a frame will be a +@COGL_FRAME_EVENT_COMPLETE event and so these are a good +opportunity to collect statistics about a frame since the +#CoglFrameInfo should hold the most data at this point. + +<note>A frame may not be completed before the next frame can start +so applications should avoid needing to collect all statistics for +a particular frame before they can start a new frame.</note> + + + Notifies that the system compositor has + acknowledged a frame and is ready for a + new frame to be created. + + + Notifies that a frame has ended. This + is a good time for applications to + collect statistics about the frame + since the #CoglFrameInfo should hold + the most data at this point. No other + events should be expected after a + @COGL_FRAME_EVENT_COMPLETE event. + + + + + + + + + + + + Explicitly allocates a configured #CoglFramebuffer allowing developers to +check and handle any errors that might arise from an unsupported +configuration so that fallback configurations may be tried. + +<note>Many applications don't support any fallback options at least when +they are initially developed and in that case the don't need to use this API +since Cogl will automatically allocate a framebuffer when it first gets +used. The disadvantage of relying on automatic allocation is that the +program will abort with an error message if there is an error during +automatic allocation.</note> + + + %TRUE if there were no error allocating the framebuffer, else %FALSE. + + + + + A #CoglFramebuffer + + + + + + Clears all the auxiliary buffers identified in the @buffers mask, and if +that includes the color buffer then the specified @color is used. + + + + + + + A #CoglFramebuffer + + + + A mask of #CoglBufferBit<!-- -->'s identifying which auxiliary + buffers to clear + + + + The color to clear the color buffer too if specified in + @buffers. + + + + + + Clears all the auxiliary buffers identified in the @buffers mask, and if +that includes the color buffer then the specified @color is used. + + + + + + + A #CoglFramebuffer + + + + A mask of #CoglBufferBit<!-- -->'s identifying which auxiliary + buffers to clear + + + + The red component of color to clear the color buffer too if + specified in @buffers. + + + + The green component of color to clear the color buffer too if + specified in @buffers. + + + + The blue component of color to clear the color buffer too if + specified in @buffers. + + + + The alpha component of color to clear the color buffer too if + specified in @buffers. + + + + + + Declares that the specified @buffers no longer need to be referenced +by any further rendering commands. This can be an important +optimization to avoid subsequent frames of rendering depending on +the results of a previous frame. + +For example; some tile-based rendering GPUs are able to avoid allocating and +accessing system memory for the depth and stencil buffer so long as these +buffers are not required as input for subsequent frames and that can save a +significant amount of memory bandwidth used to save and restore their +contents to system memory between frames. + +It is currently considered an error to try and explicitly discard the color +buffer by passing %COGL_BUFFER_BIT_COLOR. This is because the color buffer is +already implicitly discard when you finish rendering to a #CoglOnscreen +framebuffer, and it's not meaningful to try and discard the color buffer of +a #CoglOffscreen framebuffer since they are single-buffered. + + + + + + + A #CoglFramebuffer + + + + A #CoglBufferBit mask of which ancillary buffers you want + to discard. + + + + + + First defines a geometry primitive by grouping a set of vertex @attributes; +specifying a @first_vertex; a number of vertices (@n_vertices) and +specifying what kind of topology the vertices have via @mode. + +Then the function draws the given @primitive geometry to the specified +destination @framebuffer using the graphics processing pipeline described by +@pipeline. + +The list of #CoglAttribute<!-- -->s define the attributes of the vertices to +be drawn, such as positions, colors and normals and the number of attributes +is given as @n_attributes. + +This drawing api doesn't support high-level meta texture types such +as #CoglTexture2DSliced so it is the user's responsibility to +ensure that only low-level textures that can be directly sampled by +a GPU such as #CoglTexture2D, #CoglTextureRectangle or #CoglTexture3D +are associated with layers of the given @pipeline. + +<note>This api doesn't support any of the legacy global state options such +as cogl_set_depth_test_enabled(), cogl_set_backface_culling_enabled() or +cogl_program_use()</note> + Use #CoglPrimitive<!-- -->s and + cogl_primitive_draw() instead + + + + + + + A destination #CoglFramebuffer + + + + A #CoglPipeline state object + + + + The #CoglVerticesMode defining the topology of vertices + + + + The vertex offset within the given attributes to draw from + + + + The number of vertices to draw from the given attributes + + + + An array of pointers to #CoglAttribute<-- -->s defining vertex + geometry + + + + The number of attributes in the @attributes array. + + + + + + Behaves the same as cogl_framebuffer_draw_attributes() except that +instead of reading vertex data sequentially from the specified +@attributes the @indices provide an indirection for how the data +should be indexed allowing a random access order to be +specified. + +For example an indices array of [0, 1, 2, 0, 2, 3] could be used +used to draw two triangles (@mode = %COGL_VERTICES_MODE_TRIANGLES + +@n_vertices = 6) but only provide attribute data for the 4 corners +of a rectangle. When the GPU needs to read in each of the 6 +vertices it will read the @indices array for each vertex in +sequence and use the index to look up the vertex attribute data. So +here you can see that first and fourth vertex will point to the +same data and third and fifth vertex will also point to shared +data. + +Drawing with indices can be a good way of minimizing the size of a +mesh by allowing you to avoid data for duplicate vertices because +multiple entries in the index array can refer back to a single +shared vertex. + +<note>The @indices array must be at least as long as @first_vertex ++ @n_vertices otherwise the GPU will overrun the indices array when +looking up vertex data.</note> + +Since it's very common to want to draw a run of rectangles using +indices to avoid duplicating vertex data you can use +cogl_get_rectangle_indices() to get a set of indices that can be +shared. + +This drawing api doesn't support high-level meta texture types such +as #CoglTexture2DSliced so it is the user's responsibility to +ensure that only low-level textures that can be directly sampled by +a GPU such as #CoglTexture2D, #CoglTextureRectangle or +#CoglTexture3D are associated with layers of the given @pipeline. + +<note>This api doesn't support any of the legacy global state +options such as cogl_set_depth_test_enabled(), +cogl_set_backface_culling_enabled() or cogl_program_use()</note> + Use #CoglPrimitive<!-- -->s and + cogl_primitive_draw() instead + + + + + + + A destination #CoglFramebuffer + + + + A #CoglPipeline state object + + + + The #CoglVerticesMode defining the topology of vertices + + + + The vertex offset within the given attributes to draw from + + + + The number of vertices to draw from the given attributes + + + + The array of indices used by the GPU to lookup attribute + data for each vertex. + + + + An array of pointers to #CoglAttribute<-- -->s defining vertex + geometry + + + + The number of attributes in the @attributes array. + + + + + + Draws a textured rectangle to @framebuffer with the given @pipeline +state with the top left corner positioned at (@x_1, @y_1) and the +bottom right corner positioned at (@x_2, @y_2). As a pipeline may +contain multiple texture layers this interface lets you supply +texture coordinates for each layer of the pipeline. + +<note>The position is the position before the rectangle has been +transformed by the model-view matrix and the projection +matrix.</note> + +This is a high level drawing api that can handle any kind of +#CoglMetaTexture texture for the first layer such as +#CoglTexture2DSliced textures which may internally be comprised of +multiple low-level textures. This is unlike low-level drawing apis +such as cogl_primitive_draw() which only support low level texture +types that are directly supported by GPUs such as #CoglTexture2D. + +<note>This api can not currently handle multiple high-level meta +texture layers. The first layer may be a high level meta texture +such as #CoglTexture2DSliced but all other layers much be low +level textures such as #CoglTexture2D and additionally they +should be textures that can be sampled using normalized coordinates +(so not #CoglTextureRectangle textures).</note> + +The top left texture coordinate for layer 0 of any pipeline will be +(tex_coords[0], tex_coords[1]) and the bottom right coordinate will +be (tex_coords[2], tex_coords[3]). The coordinates for layer 1 +would be (tex_coords[4], tex_coords[5]) (tex_coords[6], +tex_coords[7]) and so on... + +The given texture coordinates should always be normalized such that +(0, 0) corresponds to the top left and (1, 1) corresponds to the +bottom right. To map an entire texture across the rectangle pass +in tex_coords[0]=0, tex_coords[1]=0, tex_coords[2]=1, +tex_coords[3]=1. + +<note>Even if you have associated a #CoglTextureRectangle texture +which normally implies working with non-normalized texture +coordinates this api should still be passed normalized texture +coordinates.</note> + +The first pair of coordinates are for the first layer (with the +smallest layer index) and if you supply less texture coordinates +than there are layers in the current source material then default +texture coordinates (0.0, 0.0, 1.0, 1.0) are generated. + + + + + + + A destination #CoglFramebuffer + + + + A #CoglPipeline state object + + + + x coordinate upper left on screen. + + + + y coordinate upper left on screen. + + + + x coordinate lower right on screen. + + + + y coordinate lower right on screen. + + + + An array containing groups of + 4 float values: [s_1, t_1, s_2, t_2] that are interpreted as two texture + coordinates; one for the top left texel, and one for the bottom right + texel. Each value should be between 0.0 and 1.0, where the coordinate + (0.0, 0.0) represents the top left of the texture, and (1.0, 1.0) the + bottom right. + + + + + + The length of the @tex_coords array. (For one layer + and one group of texture coordinates, this would be 4) + + + + + + Draws the given @primitive geometry to the specified destination +@framebuffer using the graphics processing state described by @pipeline. + +This drawing api doesn't support high-level meta texture types such +as #CoglTexture2DSliced so it is the user's responsibility to +ensure that only low-level textures that can be directly sampled by +a GPU such as #CoglTexture2D, #CoglTextureRectangle or #CoglTexture3D +are associated with layers of the given @pipeline. + +<note>This api doesn't support any of the legacy global state options such +as cogl_set_depth_test_enabled(), cogl_set_backface_culling_enabled() or +cogl_program_use()</note> + Use #CoglPrimitive<!-- -->s and + cogl_primitive_draw() instead + + + + + + + A destination #CoglFramebuffer + + + + A #CoglPipeline state object + + + + A #CoglPrimitive geometry object + + + + + + Draws a rectangle to @framebuffer with the given @pipeline state +and with the top left corner positioned at (@x_1, @y_1) and the +bottom right corner positioned at (@x_2, @y_2). + +<note>The position is the position before the rectangle has been +transformed by the model-view matrix and the projection +matrix.</note> + +<note>If you want to describe a rectangle with a texture mapped on +it then you can use +cogl_framebuffer_draw_textured_rectangle().</note> + + + + + + + A destination #CoglFramebuffer + + + + A #CoglPipeline state object + + + + X coordinate of the top-left corner + + + + Y coordinate of the top-left corner + + + + X coordinate of the bottom-right corner + + + + Y coordinate of the bottom-right corner + + + + + + Draws a series of rectangles to @framebuffer with the given +@pipeline state in the same way that +cogl_framebuffer_draw_rectangle() does. + +The top left corner of the first rectangle is positioned at +(coordinates[0], coordinates[1]) and the bottom right corner is +positioned at (coordinates[2], coordinates[3]). The positions for +the second rectangle are (coordinates[4], coordinates[5]) and +(coordinates[6], coordinates[7]) and so on... + +<note>The position is the position before the rectangle has been +transformed by the model-view matrix and the projection +matrix.</note> + +As a general rule for better performance its recommended to use +this this API instead of calling +cogl_framebuffer_draw_textured_rectangle() separately for multiple +rectangles if all of the rectangles will be drawn together with the +same @pipeline state. + + + + + + + A destination #CoglFramebuffer + + + + A #CoglPipeline state object + + + + an array of coordinates + containing groups of 4 float values: [x_1, y_1, x_2, y_2] that are + interpreted as two position coordinates; one for the top left of + the rectangle (x1, y1), and one for the bottom right of the + rectangle (x2, y2). + + + + + + number of rectangles defined in @coordinates. + + + + + + Draws a textured rectangle to @framebuffer using the given +@pipeline state with the top left corner positioned at (@x_1, @y_1) +and the bottom right corner positioned at (@x_2, @y_2). The top +left corner will have texture coordinates of (@s_1, @t_1) and the +bottom right corner will have texture coordinates of (@s_2, @t_2). + +<note>The position is the position before the rectangle has been +transformed by the model-view matrix and the projection +matrix.</note> + +This is a high level drawing api that can handle any kind of +#CoglMetaTexture texture such as #CoglTexture2DSliced textures +which may internally be comprised of multiple low-level textures. +This is unlike low-level drawing apis such as cogl_primitive_draw() +which only support low level texture types that are directly +supported by GPUs such as #CoglTexture2D. + +<note>The given texture coordinates will only be used for the first +texture layer of the pipeline and if your pipeline has more than +one layer then all other layers will have default texture +coordinates of @s_1=0.0 @t_1=0.0 @s_2=1.0 @t_2=1.0 </note> + +The given texture coordinates should always be normalized such that +(0, 0) corresponds to the top left and (1, 1) corresponds to the +bottom right. To map an entire texture across the rectangle pass +in @s_1=0, @t_1=0, @s_2=1, @t_2=1. + +<note>Even if you have associated a #CoglTextureRectangle texture +with one of your @pipeline layers which normally implies working +with non-normalized texture coordinates this api should still be +passed normalized texture coordinates.</note> + + + + + + + A destination #CoglFramebuffer + + + + A #CoglPipeline state object + + + + x coordinate upper left on screen. + + + + y coordinate upper left on screen. + + + + x coordinate lower right on screen. + + + + y coordinate lower right on screen. + + + + S texture coordinate of the top-left coorner + + + + T texture coordinate of the top-left coorner + + + + S texture coordinate of the bottom-right coorner + + + + T texture coordinate of the bottom-right coorner + + + + + + Draws a series of rectangles to @framebuffer with the given +@pipeline state in the same way that +cogl_framebuffer_draw_textured_rectangle() does. + +<note>The position is the position before the rectangle has been +transformed by the model-view matrix and the projection +matrix.</note> + +This is a high level drawing api that can handle any kind of +#CoglMetaTexture texture such as #CoglTexture2DSliced textures +which may internally be comprised of multiple low-level textures. +This is unlike low-level drawing apis such as cogl_primitive_draw() +which only support low level texture types that are directly +supported by GPUs such as #CoglTexture2D. + +The top left corner of the first rectangle is positioned at +(coordinates[0], coordinates[1]) and the bottom right corner is +positioned at (coordinates[2], coordinates[3]). The top left +texture coordinate is (coordinates[4], coordinates[5]) and the +bottom right texture coordinate is (coordinates[6], +coordinates[7]). The coordinates for subsequent rectangles +are defined similarly by the subsequent coordinates. + +As a general rule for better performance its recommended to use +this this API instead of calling +cogl_framebuffer_draw_textured_rectangle() separately for multiple +rectangles if all of the rectangles will be drawn together with the +same @pipeline state. + +The given texture coordinates should always be normalized such that +(0, 0) corresponds to the top left and (1, 1) corresponds to the +bottom right. To map an entire texture across the rectangle pass +in tex_coords[0]=0, tex_coords[1]=0, tex_coords[2]=1, +tex_coords[3]=1. + +<note>Even if you have associated a #CoglTextureRectangle texture +which normally implies working with non-normalized texture +coordinates this api should still be passed normalized texture +coordinates.</note> + + + + + + + A destination #CoglFramebuffer + + + + A #CoglPipeline state object + + + + an array containing + groups of 8 float values: [x_1, y_1, x_2, y_2, s_1, t_1, s_2, t_2] + that have the same meaning as the arguments for + cogl_framebuffer_draw_textured_rectangle(). + + + + + + number of rectangles to @coordinates to draw + + + + + + This blocks the CPU until all pending rendering associated with the +specified framebuffer has completed. It's very rare that developers should +ever need this level of synchronization with the GPU and should never be +used unless you clearly understand why you need to explicitly force +synchronization. + +One example might be for benchmarking purposes to be sure timing +measurements reflect the time that the GPU is busy for not just the time it +takes to queue rendering commands. + + + + + + + A #CoglFramebuffer pointer + + + + + + Replaces the current projection matrix with a perspective matrix +for a given viewing frustum defined by 4 side clip planes that +all cross through the origin and 2 near and far clip planes. + + + + + + + A #CoglFramebuffer pointer + + + + X position of the left clipping plane where it + intersects the near clipping plane + + + + X position of the right clipping plane where it + intersects the near clipping plane + + + + Y position of the bottom clipping plane where it + intersects the near clipping plane + + + + Y position of the top clipping plane where it intersects + the near clipping plane + + + + The distance to the near clipping plane (Must be positive) + + + + The distance to the far clipping plane (Must be positive) + + + + + + Retrieves the number of alpha bits of @framebuffer + + + the number of bits + + + + + a pointer to a #CoglFramebuffer + + + + + + Retrieves the number of blue bits of @framebuffer + + + the number of bits + + + + + a pointer to a #CoglFramebuffer + + + + + + Gets the current #CoglColorMask of which channels would be written to the +current framebuffer. Each bit set in the mask means that the +corresponding color would be written. + + + A #CoglColorMask + + + + + a pointer to a #CoglFramebuffer + + + + + + Can be used to query the #CoglContext a given @framebuffer was +instantiated within. This is the #CoglContext that was passed to +cogl_onscreen_new() for example. + + + The #CoglContext that the given + @framebuffer was instantiated within. + + + + + A #CoglFramebuffer + + + + + + Retrieves the number of depth bits of @framebuffer + + + the number of bits + + + + + a pointer to a #CoglFramebuffer + + + + + + Retrieves the depth buffer of @framebuffer as a #CoglTexture. You need to +call cogl_framebuffer_get_depth_texture(fb, TRUE); before using this +function. + +<note>Calling this function implicitely allocates the framebuffer.</note> +<note>The texture returned stays valid as long as the framebuffer stays +valid.</note> + + + the depth texture + + + + + A #CoglFramebuffer + + + + + + Queries whether texture based depth buffer has been enabled via +cogl_framebuffer_set_depth_texture_enabled(). + + + %TRUE if a depth texture has been enabled, else + %FALSE. + + + + + A #CoglFramebuffer + + + + + + Queries whether depth buffer writing is enabled for @framebuffer. This +can be controlled via cogl_framebuffer_set_depth_write_enabled(). + + + %TRUE if depth writing is enabled or %FALSE if not. + + + + + a pointer to a #CoglFramebuffer + + + + + + Returns whether dithering has been requested for the given @framebuffer. +See cogl_framebuffer_set_dither_enabled() for more details about dithering. + +<note>This may return %TRUE even when the underlying @framebuffer +display pipeline does not support dithering. This value only represents +the user's request for dithering.</note> + + + %TRUE if dithering has been requested or %FALSE if not. + + + + + a pointer to a #CoglFramebuffer + + + + + + Retrieves the number of green bits of @framebuffer + + + the number of bits + + + + + a pointer to a #CoglFramebuffer + + + + + + Queries the current height of the given @framebuffer. + + + The height of @framebuffer. + + + + + A #CoglFramebuffer + + + + + + + + + + + + + + + + + Stores the current model-view matrix in @matrix. + + + + + + + A #CoglFramebuffer pointer + + + + return location for the model-view matrix + + + + + + Stores the current projection matrix in @matrix. + + + + + + + A #CoglFramebuffer pointer + + + + return location for the projection matrix + + + + + + Retrieves the number of red bits of @framebuffer + + + the number of bits + + + + + a pointer to a #CoglFramebuffer + + + + + + Gets the number of points that are sampled per-pixel when +rasterizing geometry. Usually by default this will return 0 which +means that single-sample not multisample rendering has been chosen. +When using a GPU supporting multisample rendering it's possible to +increase the number of samples per pixel using +cogl_framebuffer_set_samples_per_pixel(). + +Calling cogl_framebuffer_get_samples_per_pixel() before the +framebuffer has been allocated will simply return the value set +using cogl_framebuffer_set_samples_per_pixel(). After the +framebuffer has been allocated the value will reflect the actual +number of samples that will be made by the GPU. + + + The number of point samples made per pixel when + rasterizing geometry or 0 if single-sample rendering + has been chosen. + + + + + A #CoglFramebuffer framebuffer + + + + + + Gets the current #CoglStereoMode, which defines which stereo buffers +should be drawn to. See cogl_framebuffer_set_stereo_mode(). + + + A #CoglStereoMode + + + + + a pointer to a #CoglFramebuffer + + + + + + Queries the x, y, width and height components of the current viewport as set +using cogl_framebuffer_set_viewport() or the default values which are 0, 0, +framebuffer_width and framebuffer_height. The values are written into the +given @viewport array. + + + + + + + A #CoglFramebuffer + + + + A pointer to an + array of 4 floats to receive the (x, y, width, height) + components of the current viewport. + + + + + + + + Queries the height of the viewport as set using cogl_framebuffer_set_viewport() +or the default value which is the height of the framebuffer. + + + The height of the viewport. + + + + + A #CoglFramebuffer + + + + + + Queries the width of the viewport as set using cogl_framebuffer_set_viewport() +or the default value which is the width of the framebuffer. + + + The width of the viewport. + + + + + A #CoglFramebuffer + + + + + + Queries the x coordinate of the viewport origin as set using cogl_framebuffer_set_viewport() +or the default value which is 0. + + + The x coordinate of the viewport origin. + + + + + A #CoglFramebuffer + + + + + + Queries the y coordinate of the viewport origin as set using cogl_framebuffer_set_viewport() +or the default value which is 0. + + + The y coordinate of the viewport origin. + + + + + A #CoglFramebuffer + + + + + + Queries the current width of the given @framebuffer. + + + The width of @framebuffer. + + + + + A #CoglFramebuffer + + + + + + Resets the current model-view matrix to the identity matrix. + + + + + + + A #CoglFramebuffer pointer + + + + + + Replaces the current projection matrix with an orthographic projection +matrix. + + + + + + + A #CoglFramebuffer pointer + + + + The x coordinate for the first vertical clipping plane + + + + The y coordinate for the first horizontal clipping plane + + + + The x coordinate for the second vertical clipping plane + + + + The y coordinate for the second horizontal clipping plane + + + + The <emphasis>distance</emphasis> to the near clipping + plane (will be <emphasis>negative</emphasis> if the plane is + behind the viewer) + + + + The <emphasis>distance</emphasis> to the far clipping + plane (will be <emphasis>negative</emphasis> if the plane is + behind the viewer) + + + + + + Replaces the current projection matrix with a perspective matrix +based on the provided values. + +<note>You should be careful not to have to great a @z_far / @z_near +ratio since that will reduce the effectiveness of depth testing +since there wont be enough precision to identify the depth of +objects near to each other.</note> + + + + + + + A #CoglFramebuffer pointer + + + + Vertical field of view angle in degrees. + + + + The (width over height) aspect ratio for display + + + + The distance to the near clipping plane (Must be positive, + and must not be 0) + + + + The distance to the far clipping plane (Must be positive) + + + + + + Reverts the clipping region to the state before the last call to +cogl_framebuffer_push_scissor_clip(), cogl_framebuffer_push_rectangle_clip() +cogl_framebuffer_push_path_clip(), or cogl_framebuffer_push_primitive_clip(). + + + + + + + A #CoglFramebuffer pointer + + + + + + Restores the model-view matrix on the top of the matrix stack. + + + + + + + A #CoglFramebuffer pointer + + + + + + Copies the current model-view matrix onto the matrix stack. The matrix +can later be restored with cogl_framebuffer_pop_matrix(). + + + + + + + A #CoglFramebuffer pointer + + + + + + Sets a new clipping area using a 2D shaped described with a +#CoglPrimitive. The shape must not contain self overlapping +geometry and must lie on a single 2D plane. A bounding box of the +2D shape in local coordinates (the same coordinates used to +describe the shape) must be given. It is acceptable for the bounds +to be larger than the true bounds but behaviour is undefined if the +bounds are smaller than the true bounds. + +The primitive is transformed by the current model-view matrix and +the silhouette is intersected with the previous clipping area. To +restore the previous clipping area, call +cogl_framebuffer_pop_clip(). + + + + + + + A #CoglFramebuffer pointer + + + + A #CoglPrimitive describing a flat 2D shape + + + + x coordinate for the top-left corner of the primitives + bounds + + + + y coordinate for the top-left corner of the primitives + bounds + + + + x coordinate for the bottom-right corner of the + primitives bounds. + + + + y coordinate for the bottom-right corner of the + primitives bounds. + + + + + + Specifies a modelview transformed rectangular clipping area for all +subsequent drawing operations. Any drawing commands that extend +outside the rectangle will be clipped so that only the portion +inside the rectangle will be displayed. The rectangle dimensions +are transformed by the current model-view matrix. + +The rectangle is intersected with the current clip region. To undo +the effect of this function, call cogl_framebuffer_pop_clip(). + + + + + + + A #CoglFramebuffer pointer + + + + x coordinate for top left corner of the clip rectangle + + + + y coordinate for top left corner of the clip rectangle + + + + x coordinate for bottom right corner of the clip rectangle + + + + y coordinate for bottom right corner of the clip rectangle + + + + + + Specifies a rectangular clipping area for all subsequent drawing +operations. Any drawing commands that extend outside the rectangle +will be clipped so that only the portion inside the rectangle will +be displayed. The rectangle dimensions are not transformed by the +current model-view matrix. + +The rectangle is intersected with the current clip region. To undo +the effect of this function, call cogl_framebuffer_pop_clip(). + + + + + + + A #CoglFramebuffer pointer + + + + left edge of the clip rectangle in window coordinates + + + + top edge of the clip rectangle in window coordinates + + + + width of the clip rectangle + + + + height of the clip rectangle + + + + + + This is a convenience wrapper around +cogl_framebuffer_read_pixels_into_bitmap() which allocates a +temporary #CoglBitmap to read pixel data directly into the given +buffer. The rowstride of the buffer is assumed to be the width of +the region times the bytes per pixel of the format. The source for +the data is always taken from the color buffer. If you want to use +any other rowstride or source, please use the +cogl_framebuffer_read_pixels_into_bitmap() function directly. + +The implementation of the function looks like this: + +|[ +bitmap = cogl_bitmap_new_for_data (context, + width, height, + format, + /<!-- -->* rowstride *<!-- -->/ + bpp * width, + pixels); +cogl_framebuffer_read_pixels_into_bitmap (framebuffer, + x, y, + COGL_READ_PIXELS_COLOR_BUFFER, + bitmap); +cogl_object_unref (bitmap); +]| + + + %TRUE if the read succeeded or %FALSE otherwise. + + + + + A #CoglFramebuffer + + + + The x position to read from + + + + The y position to read from + + + + The width of the region of rectangles to read + + + + The height of the region of rectangles to read + + + + The pixel format to store the data in + + + + The address of the buffer to store the data in + + + + + + This reads a rectangle of pixels from the given framebuffer where +position (0, 0) is the top left. The pixel at (x, y) is the first +read, and a rectangle of pixels with the same size as the bitmap is +read right and downwards from that point. + +Currently Cogl assumes that the framebuffer is in a premultiplied +format so if the format of @bitmap is non-premultiplied it will +convert it. To read the pixel values without any conversion you +should either specify a format that doesn't use an alpha channel or +use one of the formats ending in PRE. + + + %TRUE if the read succeeded or %FALSE otherwise. The + function is only likely to fail if the bitmap points to a pixel + buffer and it could not be mapped. + + + + + A #CoglFramebuffer + + + + The x position to read from + + + + The y position to read from + + + + Identifies which auxillary buffer you want to read + (only COGL_READ_PIXELS_COLOR_BUFFER supported currently) + + + + The bitmap to store the results in. + + + + + + When point sample rendering (also known as multisample rendering) +has been enabled via cogl_framebuffer_set_samples_per_pixel() +then you can optionally call this function (or +cogl_framebuffer_resolve_samples_region()) to explicitly resolve +the point samples into values for the final color buffer. + +Some GPUs will implicitly resolve the point samples during +rendering and so this function is effectively a nop, but with other +architectures it is desirable to defer the resolve step until the +end of the frame. + +Since Cogl will automatically ensure samples are resolved if the +target color buffer is used as a source this API only needs to be +used if explicit control is desired - perhaps because you want to +ensure that the resolve is completed in advance to avoid later +having to wait for the resolve to complete. + +If you are performing incremental updates to a framebuffer you +should consider using cogl_framebuffer_resolve_samples_region() +instead to avoid resolving redundant pixels. + + + + + + + A #CoglFramebuffer framebuffer + + + + + + When point sample rendering (also known as multisample rendering) +has been enabled via cogl_framebuffer_set_samples_per_pixel() +then you can optionally call this function (or +cogl_framebuffer_resolve_samples()) to explicitly resolve the point +samples into values for the final color buffer. + +Some GPUs will implicitly resolve the point samples during +rendering and so this function is effectively a nop, but with other +architectures it is desirable to defer the resolve step until the +end of the frame. + +Use of this API is recommended if incremental, small updates to +a framebuffer are being made because by default Cogl will +implicitly resolve all the point samples of the framebuffer which +can result in redundant work if only a small number of samples have +changed. + +Because some GPUs implicitly resolve point samples this function +only guarantees that at-least the region specified will be resolved +and if you have rendered to a larger region then it's possible that +other samples may be implicitly resolved. + + + + + + + A #CoglFramebuffer framebuffer + + + + top-left x coordinate of region to resolve + + + + top-left y coordinate of region to resolve + + + + width of region to resolve + + + + height of region to resolve + + + + + + Multiplies the current model-view matrix by one that rotates the +model around the axis-vector specified by @x, @y and @z. The +rotation follows the right-hand thumb rule so for example rotating +by 10 degrees about the axis-vector (0, 0, 1) causes a small +counter-clockwise rotation. + + + + + + + A #CoglFramebuffer pointer + + + + Angle in degrees to rotate. + + + + X-component of vertex to rotate around. + + + + Y-component of vertex to rotate around. + + + + Z-component of vertex to rotate around. + + + + + + Multiplies the current model-view matrix by one that rotates +according to the rotation described by @euler. + + + + + + + A #CoglFramebuffer pointer + + + + A #CoglEuler + + + + + + Multiplies the current model-view matrix by one that rotates +according to the rotation described by @quaternion. + + + + + + + A #CoglFramebuffer pointer + + + + A #CoglQuaternion + + + + + + Multiplies the current model-view matrix by one that scales the x, +y and z axes by the given values. + + + + + + + A #CoglFramebuffer pointer + + + + Amount to scale along the x-axis + + + + Amount to scale along the y-axis + + + + Amount to scale along the z-axis + + + + + + Defines a bit mask of which color channels should be written to the +given @framebuffer. If a bit is set in @color_mask that means that +color will be written. + + + + + + + a pointer to a #CoglFramebuffer + + + + A #CoglColorMask of which color channels to write to + the current framebuffer. + + + + + + If @enabled is #TRUE, the depth buffer used when rendering to @framebuffer +is available as a texture. You can retrieve the texture with +cogl_framebuffer_get_depth_texture(). + +<note>It's possible that your GPU does not support depth textures. You +should check the %COGL_FEATURE_ID_DEPTH_TEXTURE feature before using this +function.</note> +<note>It's not valid to call this function after the framebuffer has been +allocated as the creation of the depth texture is done at allocation time. +</note> + + + + + + + A #CoglFramebuffer + + + + TRUE or FALSE + + + + + + Enables or disables depth buffer writing when rendering to @framebuffer. +If depth writing is enabled for both the framebuffer and the rendering +pipeline, and the framebuffer has an associated depth buffer, depth +information will be written to this buffer during rendering. + +Depth buffer writing is enabled by default. + + + + + + + a pointer to a #CoglFramebuffer + + + + %TRUE to enable depth writing or %FALSE to disable + + + + + + Enables or disabled dithering if supported by the hardware. + +Dithering is a hardware dependent technique to increase the visible +color resolution beyond what the underlying hardware supports by playing +tricks with the colors placed into the framebuffer to give the illusion +of other colors. (For example this can be compared to half-toning used +by some news papers to show varying levels of grey even though their may +only be black and white are available). + +If the current display pipeline for @framebuffer does not support dithering +then this has no affect. + +Dithering is enabled by default. + + + + + + + a pointer to a #CoglFramebuffer + + + + %TRUE to enable dithering or %FALSE to disable + + + + + + Sets @matrix as the new model-view matrix. + + + + + + + A #CoglFramebuffer pointer + + + + the new model-view matrix + + + + + + Sets @matrix as the new projection matrix. + + + + + + + A #CoglFramebuffer pointer + + + + the new projection matrix + + + + + + Requires that when rendering to @framebuffer then @n point samples +should be made per pixel which will all contribute to the final +resolved color for that pixel. The idea is that the hardware aims +to get quality similar to what you would get if you rendered +everything twice as big (for 4 samples per pixel) and then scaled +that image back down with filtering. It can effectively remove the +jagged edges of polygons and should be more efficient than if you +were to manually render at a higher resolution and downscale +because the hardware is often able to take some shortcuts. For +example the GPU may only calculate a single texture sample for all +points of a single pixel, and for tile based architectures all the +extra sample data (such as depth and stencil samples) may be +handled on-chip and so avoid increased demand on system memory +bandwidth. + +By default this value is usually set to 0 and that is referred to +as "single-sample" rendering. A value of 1 or greater is referred +to as "multisample" rendering. + +<note>There are some semantic differences between single-sample +rendering and multisampling with just 1 point sample such as it +being redundant to use the cogl_framebuffer_resolve_samples() and +cogl_framebuffer_resolve_samples_region() apis with single-sample +rendering.</note> + +<note>It's recommended that +cogl_framebuffer_resolve_samples_region() be explicitly used at the +end of rendering to a point sample buffer to minimize the number of +samples that get resolved. By default Cogl will implicitly resolve +all framebuffer samples but if only a small region of a +framebuffer has changed this can lead to redundant work being +done.</note> + + + + + + + A #CoglFramebuffer framebuffer + + + + The minimum number of samples per pixel + + + + + + Sets which stereo buffers should be drawn to. The default +is %COGL_STEREO_BOTH, which means that both the left and +right buffers will be affected by drawing. For this to have +an effect, the display system must support stereo drawables, +and the framebuffer must have been created with stereo +enabled. (See cogl_onscreen_template_set_stereo_enabled(), +cogl_framebuffer_get_is_stereo().) + + + + + + + a pointer to a #CoglFramebuffer + + + + A #CoglStereoMode specifying which stereo buffers + should be drawn tow. + + + + + + Defines a scale and offset for everything rendered relative to the +top-left of the destination framebuffer. + +By default the viewport has an origin of (0,0) and width and height +that match the framebuffer's size. Assuming a default projection and +modelview matrix then you could translate the contents of a window +down and right by leaving the viewport size unchanged by moving the +offset to (10,10). The viewport coordinates are measured in pixels. +If you left the x and y origin as (0,0) you could scale the windows +contents down by specify and width and height that's half the real +size of the framebuffer. + +<note>Although the function takes floating point arguments, existing +drivers only allow the use of integer values. In the future floating +point values will be exposed via a checkable feature.</note> + + + + + + + A #CoglFramebuffer + + + + The top-left x coordinate of the viewport origin (only integers + supported currently) + + + + The top-left y coordinate of the viewport origin (only integers + supported currently) + + + + The width of the viewport (only integers supported currently) + + + + The height of the viewport (only integers supported currently) + + + + + + Multiplies the current model-view matrix by the given matrix. + + + + + + + A #CoglFramebuffer pointer + + + + the matrix to multiply with the current model-view + + + + + + Multiplies the current model-view matrix by one that translates the +model along all three axes according to the given values. + + + + + + + A #CoglFramebuffer pointer + + + + Distance to translate along the x-axis + + + + Distance to translate along the y-axis + + + + Distance to translate along the z-axis + + + + + + First defines a geometry primitive by grouping a set of vertex attributes; +specifying a @first_vertex; a number of vertices (@n_vertices) and +specifying what kind of topology the vertices have via @mode. + +Then the function draws the given @primitive geometry to the specified +destination @framebuffer using the graphics processing pipeline described by +@pipeline. + +The list of #CoglAttribute<!-- -->s define the attributes of the vertices to +be drawn, such as positions, colors and normals and should be %NULL +terminated. + +This drawing api doesn't support high-level meta texture types such +as #CoglTexture2DSliced so it is the user's responsibility to +ensure that only low-level textures that can be directly sampled by +a GPU such as #CoglTexture2D, #CoglTextureRectangle or #CoglTexture3D +are associated with layers of the given @pipeline. + Use #CoglPrimitive<!-- -->s and + cogl_primitive_draw() instead + + + + + + + A destination #CoglFramebuffer + + + + A #CoglPipeline state object + + + + The #CoglVerticesMode defining the topology of vertices + + + + The vertex offset within the given attributes to draw from + + + + The number of vertices to draw from the given attributes + + + + A set of vertex #CoglAttribute<!-- -->s defining vertex geometry + + + + + + Behaves the same as cogl_framebuffer_vdraw_attributes() except that +instead of reading vertex data sequentially from the specified +attributes the @indices provide an indirection for how the data +should be indexed allowing a random access order to be +specified. + +For example an indices array of [0, 1, 2, 0, 2, 3] could be used +used to draw two triangles (@mode = %COGL_VERTICES_MODE_TRIANGLES + +@n_vertices = 6) but only provide attribute data for the 4 corners +of a rectangle. When the GPU needs to read in each of the 6 +vertices it will read the @indices array for each vertex in +sequence and use the index to look up the vertex attribute data. So +here you can see that first and fourth vertex will point to the +same data and third and fifth vertex will also point to shared +data. + +Drawing with indices can be a good way of minimizing the size of a +mesh by allowing you to avoid data for duplicate vertices because +multiple entries in the index array can refer back to a single +shared vertex. + +<note>The @indices array must be at least as long as @first_vertex ++ @n_vertices otherwise the GPU will overrun the indices array when +looking up vertex data.</note> + +Since it's very common to want to draw a run of rectangles using +indices to avoid duplicating vertex data you can use +cogl_get_rectangle_indices() to get a set of indices that can be +shared. + +This drawing api doesn't support high-level meta texture types such +as #CoglTexture2DSliced so it is the user's responsibility to +ensure that only low-level textures that can be directly sampled by +a GPU such as #CoglTexture2D, #CoglTextureRectangle or +#CoglTexture3D are associated with layers of the given @pipeline. + +<note>This api doesn't support any of the legacy global state +options such as cogl_set_depth_test_enabled(), +cogl_set_backface_culling_enabled() or cogl_program_use()</note> + Use #CoglPrimitive<!-- -->s and + cogl_primitive_draw() instead + + + + + + + A destination #CoglFramebuffer + + + + A #CoglPipeline state object + + + + The #CoglVerticesMode defining the topology of vertices + + + + The vertex offset within the given attributes to draw from + + + + The number of vertices to draw from the given attributes + + + + The array of indices used by the GPU to lookup attribute + data for each vertex. + + + + A set of vertex #CoglAttribute<!-- -->s defining vertex geometry + + + + + + + + + + + + You should aim to use the smallest data type that gives you enough +range, since it reduces the size of your index array and can help +reduce the demand on memory bandwidth. + +Note that %COGL_INDICES_TYPE_UNSIGNED_INT is only supported if the +%COGL_FEATURE_ID_UNSIGNED_INT_INDICES feature is available. This +should always be available on OpenGL but on OpenGL ES it will only +be available if the GL_OES_element_index_uint extension is +advertized. + + + Your indices are unsigned bytes + + + Your indices are unsigned shorts + + + Your indices are unsigned ints + + + + + + Allocates and initializes a blank white material + Use cogl_pipeline_new() instead + + + a pointer to a new #CoglMaterial + + + + + Creates a new material with the configuration copied from the +source material. + +We would strongly advise developers to always aim to use +cogl_material_copy() instead of cogl_material_new() whenever there will +be any similarity between two materials. Copying a material helps Cogl +keep track of a materials ancestry which we may use to help minimize GPU +state changes. + Use cogl_pipeline_copy() instead + + + a pointer to the newly allocated #CoglMaterial + + + + + a #CoglMaterial object to copy + + + + + + Iterates all the layer indices of the given @material. + No replacement + + + + + + + A #CoglMaterial object + + + + A #CoglMaterialLayerCallback to be called for each + layer index + + + + Private data that will be passed to the callback + + + + + + Retrieves the current ambient color for @material + Use the #CoglSnippet shader api for lighting + + + + + + + A #CoglMaterial object + + + + The location to store the ambient color + + + + + + Retrieves the current material color. + Use cogl_pipeline_get_color() instead + + + + + + + A #CoglMaterial object + + + + The location to store the color + + + + + + Retrieves the current depth state configuration for the given +@pipeline as previously set using cogl_pipeline_set_depth_state(). + Use cogl_pipeline_get_depth_state() instead + + + + + + + A #CoglMaterial object + + + + A destination #CoglDepthState struct + + + + + + Retrieves the current diffuse color for @material + Use the #CoglSnippet shader api for lighting + + + + + + + A #CoglMaterial object + + + + The location to store the diffuse color + + + + + + Retrieves the materials current emission color. + Use the #CoglSnippet shader api for lighting + + + + + + + A #CoglMaterial object + + + + The location to store the emission color + + + + + + Gets whether point sprite coordinate generation is enabled for this +texture layer. + Use cogl_pipeline_get_layer_point_sprite_coords_enabled() + instead + + + whether the texture coordinates will be replaced with +point sprite coordinates. + + + + + a #CoglHandle to a material. + + + + the layer number to check. + + + + + + Returns the wrap mode for the 'p' coordinate of texture lookups on this +layer. + Use cogl_pipeline_get_layer_wrap_mode_p() instead + + + the wrap mode for the 'p' coordinate of texture lookups on +this layer. + + + + + A #CoglMaterial object + + + + the layer number to change. + + + + + + Returns the wrap mode for the 's' coordinate of texture lookups on this +layer. + Use cogl_pipeline_get_layer_wrap_mode_s() instead + + + the wrap mode for the 's' coordinate of texture lookups on +this layer. + + + + + A #CoglMaterial object + + + + the layer number to change. + + + + + + Returns the wrap mode for the 't' coordinate of texture lookups on this +layer. + Use cogl_pipeline_get_layer_wrap_mode_t() instead + + + the wrap mode for the 't' coordinate of texture lookups on +this layer. + + + + + A #CoglMaterial object + + + + the layer number to change. + + + + + + This function lets you access a material's internal list of layers +for iteration. + +<note>You should avoid using this API if possible since it was only +made public by mistake and will be deprecated when we have +suitable alternative.</note> + +<note>It's important to understand that the list returned may not +remain valid if you modify the material or any of the layers in any +way and so you would have to re-get the list in that +situation.</note> + + + A + list of #CoglMaterialLayer<!-- -->'s that can be passed to the + cogl_material_layer_* functions. The list is owned by Cogl and it + should not be modified or freed + Deprecated: 1.16: Use cogl_pipeline_get_layers() instead + + + + + + + A #CoglMaterial object + + + + + + Retrieves the number of layers defined for the given @material + Use cogl_pipeline_get_n_layers() instead + + + the number of layers + + + + + A #CoglMaterial object + + + + + + Get the size of points drawn when %COGL_VERTICES_MODE_POINTS is +used with the vertex buffer API. + Use cogl_pipeline_get_point_size() instead + + + the point size of the material. + + + + + a #CoglHandle to a material. + + + + + + Retrieves the materials current emission color. + Use the #CoglSnippet shader api for lighting + + + The materials current shininess value + + + + + A #CoglMaterial object + + + + + + Retrieves the materials current specular color. + Use the #CoglSnippet shader api for lighting + + + + + + + A #CoglMaterial object + + + + The location to store the specular color + + + + + + Queries what user program has been associated with the given +@material using cogl_material_set_user_program(). + Use #CoglSnippet api instead instead + + + The current user program + or %COGL_INVALID_HANDLE. + + + + + a #CoglMaterial object. + + + + + + This function removes a layer from your material + Use cogl_pipeline_remove_layer() instead + + + + + + + A #CoglMaterial object + + + + Specifies the layer you want to remove + + + + + + Before a primitive is blended with the framebuffer, it goes through an +alpha test stage which lets you discard fragments based on the current +alpha value. This function lets you change the function used to evaluate +the alpha channel, and thus determine which fragments are discarded +and which continue on to the blending stage. + +The default is %COGL_MATERIAL_ALPHA_FUNC_ALWAYS + Use cogl_pipeline_set_alpha_test_function() instead + + + + + + + A #CoglMaterial object + + + + A @CoglMaterialAlphaFunc constant + + + + A reference point that the chosen alpha function uses + to compare incoming fragments to. + + + + + + Sets the material's ambient color, in the standard OpenGL lighting +model. The ambient color affects the overall color of the object. + +Since the diffuse color will be intense when the light hits the surface +directly, the ambient will be most apparent where the light hits at a +slant. + +The default value is (0.2, 0.2, 0.2, 1.0) + Use the #CoglSnippet shader api for lighting + + + + + + + A #CoglMaterial object + + + + The components of the desired ambient color + + + + + + Conveniently sets the diffuse and ambient color of @material at the same +time. See cogl_material_set_ambient() and cogl_material_set_diffuse(). + +The default ambient color is (0.2, 0.2, 0.2, 1.0) + +The default diffuse color is (0.8, 0.8, 0.8, 1.0) + Use the #CoglSnippet shader api for lighting + + + + + + + A #CoglMaterial object + + + + The components of the desired ambient and diffuse colors + + + + + + If not already familiar; please refer <link linkend="cogl-Blend-Strings">here</link> +for an overview of what blend strings are, and their syntax. + +Blending occurs after the alpha test function, and combines fragments with +the framebuffer. + +Currently the only blend function Cogl exposes is ADD(). So any valid +blend statements will be of the form: + +|[ + &lt;channel-mask&gt;=ADD(SRC_COLOR*(&lt;factor&gt;), DST_COLOR*(&lt;factor&gt;)) +]| + +<warning>The brackets around blend factors are currently not +optional!</warning> + +This is the list of source-names usable as blend factors: +<itemizedlist> + <listitem><para>SRC_COLOR: The color of the in comming fragment</para></listitem> + <listitem><para>DST_COLOR: The color of the framebuffer</para></listitem> + <listitem><para>CONSTANT: The constant set via cogl_material_set_blend_constant()</para></listitem> +</itemizedlist> + +The source names can be used according to the +<link linkend="cogl-Blend-String-syntax">color-source and factor syntax</link>, +so for example "(1-SRC_COLOR[A])" would be a valid factor, as would +"(CONSTANT[RGB])" + +These can also be used as factors: +<itemizedlist> + <listitem>0: (0, 0, 0, 0)</listitem> + <listitem>1: (1, 1, 1, 1)</listitem> + <listitem>SRC_ALPHA_SATURATE_FACTOR: (f,f,f,1) where f = MIN(SRC_COLOR[A],1-DST_COLOR[A])</listitem> +</itemizedlist> + +<note>Remember; all color components are normalized to the range [0, 1] +before computing the result of blending.</note> + +<example id="cogl-Blend-Strings-blend-unpremul"> + <title>Blend Strings/1</title> + <para>Blend a non-premultiplied source over a destination with + premultiplied alpha:</para> + <programlisting> +"RGB = ADD(SRC_COLOR*(SRC_COLOR[A]), DST_COLOR*(1-SRC_COLOR[A]))" +"A = ADD(SRC_COLOR, DST_COLOR*(1-SRC_COLOR[A]))" + </programlisting> +</example> + +<example id="cogl-Blend-Strings-blend-premul"> + <title>Blend Strings/2</title> + <para>Blend a premultiplied source over a destination with + premultiplied alpha</para> + <programlisting> +"RGBA = ADD(SRC_COLOR, DST_COLOR*(1-SRC_COLOR[A]))" + </programlisting> +</example> + +The default blend string is: +|[ + RGBA = ADD (SRC_COLOR, DST_COLOR*(1-SRC_COLOR[A])) +]| + +That gives normal alpha-blending when the calculated color for the material +is in premultiplied form. + Use cogl_pipeline_set_blend() instead + + + %TRUE if the blend string was successfully parsed, and the + described blending is supported by the underlying driver/hardware. If + there was an error, %FALSE is returned and @error is set accordingly (if + present). + + + + + A #CoglMaterial object + + + + A <link linkend="cogl-Blend-Strings">Cogl blend string</link> + describing the desired blend function. + + + + + + When blending is setup to reference a CONSTANT blend factor then +blending will depend on the constant set with this function. + Use cogl_pipeline_set_blend_constant() instead + + + + + + + A #CoglMaterial object + + + + The constant color you want + + + + + + Sets the basic color of the material, used when no lighting is enabled. + +Note that if you don't add any layers to the material then the color +will be blended unmodified with the destination; the default blend +expects premultiplied colors: for example, use (0.5, 0.0, 0.0, 0.5) for +semi-transparent red. See cogl_color_premultiply(). + +The default value is (1.0, 1.0, 1.0, 1.0) + Use cogl_pipeline_set_color() instead + + + + + + + A #CoglMaterial object + + + + The components of the color + + + + + + Sets the basic color of the material, used when no lighting is enabled. + +The default value is (1.0, 1.0, 1.0, 1.0) + Use cogl_pipeline_set_color4f() instead + + + + + + + A #CoglMaterial object + + + + The red component + + + + The green component + + + + The blue component + + + + The alpha component + + + + + + Sets the basic color of the material, used when no lighting is enabled. + +The default value is (0xff, 0xff, 0xff, 0xff) + Use cogl_pipeline_set_color4ub() instead + + + + + + + A #CoglMaterial object + + + + The red component + + + + The green component + + + + The blue component + + + + The alpha component + + + + + + This commits all the depth state configured in @state struct to the +given @material. The configuration values are copied into the +material so there is no requirement to keep the #CoglDepthState +struct around if you don't need it any more. + +Note: Since some platforms do not support the depth range feature +it is possible for this function to fail and report an @error. + Use cogl_pipeline_set_depth_state() instead + + + TRUE if the GPU supports all the given @state else %FALSE + and returns an @error. + + + + + A #CoglMaterial object + + + + A #CoglDepthState struct + + + + + + Sets the material's diffuse color, in the standard OpenGL lighting +model. The diffuse color is most intense where the light hits the +surface directly - perpendicular to the surface. + +The default value is (0.8, 0.8, 0.8, 1.0) + Use the #CoglSnippet shader api for lighting + + + + + + + A #CoglMaterial object + + + + The components of the desired diffuse color + + + + + + Sets the material's emissive color, in the standard OpenGL lighting +model. It will look like the surface is a light source emitting this +color. + +The default value is (0.0, 0.0, 0.0, 1.0) + Use the #CoglSnippet shader api for lighting + + + + + + + A #CoglMaterial object + + + + The components of the desired emissive color + + + + + + In addition to the standard OpenGL lighting model a Cogl material may have +one or more layers comprised of textures that can be blended together in +order, with a number of different texture combine modes. This function +defines a new texture layer. + +The index values of multiple layers do not have to be consecutive; it is +only their relative order that is important. + +<note>In the future, we may define other types of material layers, such +as purely GLSL based layers.</note> + Use cogl_pipeline_set_layer() instead + + + + + + + A #CoglMaterial object + + + + the index of the layer + + + + a #CoglHandle for the layer object + + + + + + If not already familiar; you can refer +<link linkend="cogl-Blend-Strings">here</link> for an overview of what blend +strings are and there syntax. + +These are all the functions available for texture combining: +<itemizedlist> + <listitem>REPLACE(arg0) = arg0</listitem> + <listitem>MODULATE(arg0, arg1) = arg0 x arg1</listitem> + <listitem>ADD(arg0, arg1) = arg0 + arg1</listitem> + <listitem>ADD_SIGNED(arg0, arg1) = arg0 + arg1 - 0.5</listitem> + <listitem>INTERPOLATE(arg0, arg1, arg2) = arg0 x arg2 + arg1 x (1 - arg2)</listitem> + <listitem>SUBTRACT(arg0, arg1) = arg0 - arg1</listitem> + <listitem> + <programlisting> + DOT3_RGB(arg0, arg1) = 4 x ((arg0[R] - 0.5)) * (arg1[R] - 0.5) + + (arg0[G] - 0.5)) * (arg1[G] - 0.5) + + (arg0[B] - 0.5)) * (arg1[B] - 0.5)) + </programlisting> + </listitem> + <listitem> + <programlisting> + DOT3_RGBA(arg0, arg1) = 4 x ((arg0[R] - 0.5)) * (arg1[R] - 0.5) + + (arg0[G] - 0.5)) * (arg1[G] - 0.5) + + (arg0[B] - 0.5)) * (arg1[B] - 0.5)) + </programlisting> + </listitem> +</itemizedlist> + +Refer to the +<link linkend="cogl-Blend-String-syntax">color-source syntax</link> for +describing the arguments. The valid source names for texture combining +are: +<variablelist> + <varlistentry> + <term>TEXTURE</term> + <listitem>Use the color from the current texture layer</listitem> + </varlistentry> + <varlistentry> + <term>TEXTURE_0, TEXTURE_1, etc</term> + <listitem>Use the color from the specified texture layer</listitem> + </varlistentry> + <varlistentry> + <term>CONSTANT</term> + <listitem>Use the color from the constant given with + cogl_material_set_layer_constant()</listitem> + </varlistentry> + <varlistentry> + <term>PRIMARY</term> + <listitem>Use the color of the material as set with + cogl_material_set_color()</listitem> + </varlistentry> + <varlistentry> + <term>PREVIOUS</term> + <listitem>Either use the texture color from the previous layer, or + if this is layer 0, use the color of the material as set with + cogl_material_set_color()</listitem> + </varlistentry> +</variablelist> + +<refsect2 id="cogl-Layer-Combine-Examples"> + <title>Layer Combine Examples</title> + <para>This is effectively what the default blending is:</para> + <informalexample><programlisting> + RGBA = MODULATE (PREVIOUS, TEXTURE) + </programlisting></informalexample> + <para>This could be used to cross-fade between two images, using + the alpha component of a constant as the interpolator. The constant + color is given by calling cogl_material_set_layer_constant.</para> + <informalexample><programlisting> + RGBA = INTERPOLATE (PREVIOUS, TEXTURE, CONSTANT[A]) + </programlisting></informalexample> +</refsect2> + +<note>You can't give a multiplication factor for arguments as you can +with blending.</note> + Use cogl_pipeline_set_layer_combine() instead + + + %TRUE if the blend string was successfully parsed, and the + described texture combining is supported by the underlying driver and + or hardware. On failure, %FALSE is returned and @error is set + + + + + A #CoglMaterial object + + + + Specifies the layer you want define a combine function for + + + + A <link linkend="cogl-Blend-Strings">Cogl blend string</link> + describing the desired texture combine function. + + + + + + When you are using the 'CONSTANT' color source in a layer combine +description then you can use this function to define its value. + Use cogl_pipeline_set_layer_combine_constant() +instead + + + + + + + A #CoglMaterial object + + + + Specifies the layer you want to specify a constant used + for texture combining + + + + The constant color you want + + + + + + Changes the decimation and interpolation filters used when a texture is +drawn at other scales than 100%. + Use cogl_pipeline_set_layer_filters() instead + + + + + + + A #CoglMaterial object + + + + the layer number to change. + + + + the filter used when scaling a texture down. + + + + the filter used when magnifying a texture. + + + + + + This function lets you set a matrix that can be used to e.g. translate +and rotate a single layer of a material used to fill your geometry. + Use cogl_pipeline_set_layer_matrix() instead + + + + + + + A #CoglMaterial object + + + + the index for the layer inside @material + + + + the transformation matrix for the layer + + + + + + When rendering points, if @enable is %TRUE then the texture +coordinates for this layer will be replaced with coordinates that +vary from 0.0 to 1.0 across the primitive. The top left of the +point will have the coordinates 0.0,0.0 and the bottom right will +have 1.0,1.0. If @enable is %FALSE then the coordinates will be +fixed for the entire point. + +This function will only work if %COGL_FEATURE_POINT_SPRITE is +available. If the feature is not available then the function will +return %FALSE and set @error. + Use cogl_pipeline_set_layer_point_sprite_coords_enabled() + instead + + + %TRUE if the function succeeds, %FALSE otherwise. + + + + + a #CoglHandle to a material. + + + + the layer number to change. + + + + whether to enable point sprite coord generation. + + + + + + Sets the wrap mode for all three coordinates of texture lookups on +this layer. This is equivalent to calling +cogl_material_set_layer_wrap_mode_s(), +cogl_material_set_layer_wrap_mode_t() and +cogl_material_set_layer_wrap_mode_p() separately. + Use cogl_pipeline_set_layer_wrap_mode() instead + + + + + + + A #CoglMaterial object + + + + the layer number to change. + + + + the new wrap mode + + + + + + Sets the wrap mode for the 'p' coordinate of texture lookups on +this layer. 'p' is the third coordinate. + Use cogl_pipeline_set_layer_wrap_mode_p() instead + + + + + + + A #CoglMaterial object + + + + the layer number to change. + + + + the new wrap mode + + + + + + Sets the wrap mode for the 's' coordinate of texture lookups on this layer. + Use cogl_pipeline_set_layer_wrap_mode_s() instead + + + + + + + A #CoglMaterial object + + + + the layer number to change. + + + + the new wrap mode + + + + + + Sets the wrap mode for the 't' coordinate of texture lookups on this layer. + Use cogl_pipeline_set_layer_wrap_mode_t() instead + + + + + + + A #CoglMaterial object + + + + the layer number to change. + + + + the new wrap mode + + + + + + Changes the size of points drawn when %COGL_VERTICES_MODE_POINTS is +used with the vertex buffer API. Note that typically the GPU will +only support a limited minimum and maximum range of point sizes. If +the chosen point size is outside that range then the nearest value +within that range will be used instead. The size of a point is in +screen space so it will be the same regardless of any +transformations. The default point size is 1.0. + Use cogl_pipeline_set_point_size() instead + + + + + + + a material. + + + + the new point size. + + + + + + Sets the shininess of the material, in the standard OpenGL lighting +model, which determines the size of the specular highlights. A +higher @shininess will produce smaller highlights which makes the +object appear more shiny. + +The default value is 0.0 + Use the #CoglSnippet shader api for lighting + + + + + + + A #CoglMaterial object + + + + The desired shininess; must be >= 0.0 + + + + + + Sets the material's specular color, in the standard OpenGL lighting +model. The intensity of the specular color depends on the viewport +position, and is brightest along the lines of reflection. + +The default value is (0.0, 0.0, 0.0, 1.0) + Use the #CoglSnippet shader api for lighting + + + + + + + A #CoglMaterial object + + + + The components of the desired specular color + + + + + + Associates a linked CoglProgram with the given material so that the +program can take full control of vertex and/or fragment processing. + +This is an example of how it can be used to associate an ARBfp +program with a #CoglMaterial: +|[ +CoglHandle shader; +CoglHandle program; +CoglMaterial *material; + +shader = cogl_create_shader (COGL_SHADER_TYPE_FRAGMENT); +cogl_shader_source (shader, + "!!ARBfp1.0\n" + "MOV result.color,fragment.color;\n" + "END\n"); +cogl_shader_compile (shader); + +program = cogl_create_program (); +cogl_program_attach_shader (program, shader); +cogl_program_link (program); + +material = cogl_material_new (); +cogl_material_set_user_program (material, program); + +cogl_set_source_color4ub (0xff, 0x00, 0x00, 0xff); +cogl_rectangle (0, 0, 100, 100); +]| + +It is possibly worth keeping in mind that this API is not part of +the long term design for how we want to expose shaders to Cogl +developers (We are planning on deprecating the cogl_program and +cogl_shader APIs in favour of a "snippet" framework) but in the +meantime we hope this will handle most practical GLSL and ARBfp +requirements. + +Also remember you need to check for either the +%COGL_FEATURE_SHADERS_GLSL or %COGL_FEATURE_SHADERS_ARBFP before +using the cogl_program or cogl_shader API. + Use #CoglSnippet api instead instead + + + + + + + a #CoglMaterial object. + + + + A #CoglHandle to a linked CoglProgram + + + + + + Increment the reference count for a #CoglMaterial. + Use cogl_object_ref() instead + + + the @material. + + + + + a #CoglMaterial object. + + + + + + Decrement the reference count for a #CoglMaterial. + Use cogl_object_unref() instead + + + + + + + a #CoglMaterial object. + + + + + + + Alpha testing happens before blending primitives with the framebuffer and +gives an opportunity to discard fragments based on a comparison with the +incoming alpha value and a reference alpha value. The #CoglMaterialAlphaFunc +determines how the comparison is done. + + + Never let the fragment through. + + + Let the fragment through if the incoming + alpha value is less than the reference alpha value + + + Let the fragment through if the incoming + alpha value equals the reference alpha value + + + Let the fragment through if the incoming + alpha value is less than or equal to the reference alpha value + + + Let the fragment through if the incoming + alpha value is greater than the reference alpha value + + + Let the fragment through if the incoming + alpha value does not equal the reference alpha value + + + Let the fragment through if the incoming + alpha value is greater than or equal to the reference alpha value. + + + Always let the fragment through. + + + + Texture filtering is used whenever the current pixel maps either to more +than one texture element (texel) or less than one. These filter enums +correspond to different strategies used to come up with a pixel color, by +possibly referring to multiple neighbouring texels and taking a weighted +average or simply using the nearest texel. + + + Measuring in manhatten distance from the, + current pixel center, use the nearest texture texel + + + Use the weighted average of the 4 texels + nearest the current pixel center + + + Select the mimap level whose + texel size most closely matches the current pixel, and use the + %COGL_MATERIAL_FILTER_NEAREST criterion + + + Select the mimap level whose + texel size most closely matches the current pixel, and use the + %COGL_MATERIAL_FILTER_LINEAR criterion + + + Select the two mimap levels + whose texel size most closely matches the current pixel, use + the %COGL_MATERIAL_FILTER_NEAREST criterion on each one and take + their weighted average + + + Select the two mimap levels + whose texel size most closely matches the current pixel, use + the %COGL_MATERIAL_FILTER_LINEAR criterion on each one and take + their weighted average + + + + + + Queries the currently set downscaling filter for a material later + No replacement + + + the current downscaling filter + + + + + A #CoglMaterialLayer object + + + + + + Queries the currently set downscaling filter for a material layer + No replacement + + + the current downscaling filter + + + + + a #CoglHandle for a material layer + + + + + + Extracts a texture handle for a specific layer. + +<note>In the future Cogl may support purely GLSL based layers; for those +layers this function which will likely return %COGL_INVALID_HANDLE if you +try to get the texture handle from them. Considering this scenario, you +should call cogl_material_layer_get_type() first in order check it is of +type %COGL_MATERIAL_LAYER_TYPE_TEXTURE before calling this function.</note> + No replacement + + + a #CoglHandle for the texture inside the layer + + + + + A #CoglMaterialLayer object + + + + + + Retrieves the type of the layer + +Currently there is only one type of layer defined: +%COGL_MATERIAL_LAYER_TYPE_TEXTURE, but considering we may add purely GLSL +based layers in the future, you should write code that checks the type +first. + No replacement + + + the type of the layer + + + + + A #CoglMaterialLayer object + + + + + + Gets the wrap mode for the 'p' coordinate of texture lookups on +this layer. 'p' is the third coordinate. + Use cogl_pipeline_layer_get_wrap_mode_p() instead + + + the wrap mode value for the p coordinate. + + + + + A #CoglMaterialLayer object + + + + + + Gets the wrap mode for the 's' coordinate of texture lookups on this layer. + Use cogl_pipeline_layer_get_wrap_mode_s() instead + + + the wrap mode value for the s coordinate. + + + + + A #CoglMaterialLayer object + + + + + + Gets the wrap mode for the 't' coordinate of texture lookups on this layer. + Use cogl_pipeline_layer_get_wrap_mode_t() instead + + + the wrap mode value for the t coordinate. + + + + + A #CoglMaterialLayer object + + + + + + + The callback prototype used with cogl_material_foreach_layer() for +iterating all the layers of a @material. + + + + + + + The #CoglMaterial whos layers are being iterated + + + + The current layer index + + + + The private data passed to cogl_material_foreach_layer() + + + + + + Available types of layers for a #CoglMaterial. This enumeration +might be expanded in later versions. + + + The layer represents a + <link linkend="cogl-Textures">texture</link> + + + + The wrap mode specifies what happens when texture coordinates +outside the range 0→1 are used. Note that if the filter mode is +anything but %COGL_MATERIAL_FILTER_NEAREST then texels outside the +range 0→1 might be used even when the coordinate is exactly 0 or 1 +because OpenGL will try to sample neighbouring pixels. For example +if you are trying to render the full texture then you may get +artifacts around the edges when the pixels from the other side are +merged in if the wrap mode is set to repeat. + + + The texture will be repeated. This + is useful for example to draw a tiled background. + + + The coordinates outside the + range 0→1 will sample copies of the edge pixels of the + texture. This is useful to avoid artifacts if only one copy of + the texture is being rendered. + + + Cogl will try to automatically + decide which of the above two to use. For cogl_rectangle(), it + will use repeat mode if any of the texture coordinates are + outside the range 0→1, otherwise it will use clamp to edge. For + cogl_polygon() it will always use repeat mode. For + cogl_vertex_buffer_draw() it will use repeat mode except for + layers that have point sprite coordinate generation enabled. This + is the default value. + + + + A CoglMatrix holds a 4x4 transform matrix. This is a single precision, +column-major matrix which means it is compatible with what OpenGL expects. + +A CoglMatrix can represent transforms such as, rotations, scaling, +translation, sheering, and linear projections. You can combine these +transforms by multiplying multiple matrices in the order you want them +applied. + +The transformation of a vertex (x, y, z, w) by a CoglMatrix is given by: + +|[ + x_new = xx * x + xy * y + xz * z + xw * w + y_new = yx * x + yy * y + yz * z + yw * w + z_new = zx * x + zy * y + zz * z + zw * w + w_new = wx * x + wy * y + wz * z + ww * w +]| + +Where w is normally 1 + +<note>You must consider the members of the CoglMatrix structure read only, +and all matrix modifications must be done via the cogl_matrix API. This +allows Cogl to annotate the matrices internally. Violation of this will give +undefined results. If you need to initialize a matrix with a constant other +than the identity matrix you can use cogl_matrix_init_from_array().</note> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Allocates a new #CoglMatrix on the heap and initializes it with +the same values as @matrix. + + + A newly allocated #CoglMatrix which +should be freed using cogl_matrix_free() + + + + + A 4x4 transformation matrix you want to copy + + + + + + Frees a #CoglMatrix that was previously allocated via a call to +cogl_matrix_copy(). + + + + + + + A 4x4 transformation matrix you want to free + + + + + + Multiplies @matrix by the given frustum perspective matrix. + + + + + + + A 4x4 transformation matrix + + + + X position of the left clipping plane where it + intersects the near clipping plane + + + + X position of the right clipping plane where it + intersects the near clipping plane + + + + Y position of the bottom clipping plane where it + intersects the near clipping plane + + + + Y position of the top clipping plane where it intersects + the near clipping plane + + + + The distance to the near clipping plane (Must be positive) + + + + The distance to the far clipping plane (Must be positive) + + + + + + Casts @matrix to a float array which can be directly passed to OpenGL. + + + a pointer to the float array + + + + + A 4x4 transformation matrix + + + + + + Gets the inverse transform of a given matrix and uses it to initialize +a new #CoglMatrix. + +<note>Although the first parameter is annotated as const to indicate +that the transform it represents isn't modified this function may +technically save a copy of the inverse transform within the given +#CoglMatrix so that subsequent requests for the inverse transform may +avoid costly inversion calculations.</note> + + + %TRUE if the inverse was successfully calculated or %FALSE + for degenerate transformations that can't be inverted (in this case the + @inverse matrix will simply be initialized with the identity matrix) + + + + + A 4x4 transformation matrix + + + + The destination for a 4x4 inverse transformation matrix + + + + + + Initializes @matrix with the contents of @array + + + + + + + A 4x4 transformation matrix + + + + A linear array of 16 floats (column-major order) + + + + + + Initializes @matrix from a #CoglEuler rotation. + + + + + + + A 4x4 transformation matrix + + + + A #CoglEuler + + + + + + Initializes @matrix from a #CoglQuaternion rotation. + + + + + + + A 4x4 transformation matrix + + + + A #CoglQuaternion + + + + + + Resets matrix to the identity matrix: + +|[ + .xx=1; .xy=0; .xz=0; .xw=0; + .yx=0; .yy=1; .yz=0; .yw=0; + .zx=0; .zy=0; .zz=1; .zw=0; + .wx=0; .wy=0; .wz=0; .ww=1; +]| + + + + + + + A 4x4 transformation matrix + + + + + + Resets matrix to the (tx, ty, tz) translation matrix: + +|[ + .xx=1; .xy=0; .xz=0; .xw=tx; + .yx=0; .yy=1; .yz=0; .yw=ty; + .zx=0; .zy=0; .zz=1; .zw=tz; + .wx=0; .wy=0; .wz=0; .ww=1; +]| + + + + + + + A 4x4 transformation matrix + + + + x coordinate of the translation vector + + + + y coordinate of the translation vector + + + + z coordinate of the translation vector + + + + + + Determines if the given matrix is an identity matrix. + + + %TRUE if @matrix is an identity matrix else %FALSE + + + + + A #CoglMatrix + + + + + + Applies a view transform @matrix that positions the camera at +the coordinate (@eye_position_x, @eye_position_y, @eye_position_z) +looking towards an object at the coordinate (@object_x, @object_y, +@object_z). The top of the camera is aligned to the given world up +vector, which is normally simply (0, 1, 0) to map up to the +positive direction of the y axis. + +Because there is a lot of missleading documentation online for +gluLookAt regarding the up vector we want to try and be a bit +clearer here. + +The up vector should simply be relative to your world coordinates +and does not need to change as you move the eye and object +positions. Many online sources may claim that the up vector needs +to be perpendicular to the vector between the eye and object +position (partly because the man page is somewhat missleading) but +that is not necessary for this function. + +<note>You should never look directly along the world-up +vector.</note> + +<note>It is assumed you are using a typical projection matrix where +your origin maps to the center of your viewport.</note> + +<note>Almost always when you use this function it should be the first +transform applied to a new modelview transform</note> + + + + + + + A 4x4 transformation matrix + + + + The X coordinate to look from + + + + The Y coordinate to look from + + + + The Z coordinate to look from + + + + The X coordinate of the object to look at + + + + The Y coordinate of the object to look at + + + + The Z coordinate of the object to look at + + + + The X component of the world's up direction vector + + + + The Y component of the world's up direction vector + + + + The Z component of the world's up direction vector + + + + + + Multiplies the two supplied matrices together and stores +the resulting matrix inside @result. + +<note>It is possible to multiply the @a matrix in-place, so +@result can be equal to @a but can't be equal to @b.</note> + + + + + + + The address of a 4x4 matrix to store the result in + + + + A 4x4 transformation matrix + + + + A 4x4 transformation matrix + + + + + + Multiplies @matrix by a parallel projection matrix. + Use cogl_matrix_orthographic() + + + + + + + A 4x4 transformation matrix + + + + The coordinate for the left clipping plane + + + + The coordinate for the right clipping plane + + + + The coordinate for the bottom clipping plane + + + + The coordinate for the top clipping plane + + + + The <emphasis>distance</emphasis> to the near clipping + plane (will be <emphasis>negative</emphasis> if the plane is + behind the viewer) + + + + The <emphasis>distance</emphasis> to the far clipping + plane (will be <emphasis>negative</emphasis> if the plane is + behind the viewer) + + + + + + Multiplies @matrix by a parallel projection matrix. + + + + + + + A 4x4 transformation matrix + + + + The x coordinate for the first vertical clipping plane + + + + The y coordinate for the first horizontal clipping plane + + + + The x coordinate for the second vertical clipping plane + + + + The y coordinate for the second horizontal clipping plane + + + + The <emphasis>distance</emphasis> to the near clipping + plane (will be <emphasis>negative</emphasis> if the plane is + behind the viewer) + + + + The <emphasis>distance</emphasis> to the far clipping + plane (will be <emphasis>negative</emphasis> if the plane is + behind the viewer) + + + + + + Multiplies @matrix by the described perspective matrix + +<note>You should be careful not to have to great a @z_far / @z_near +ratio since that will reduce the effectiveness of depth testing +since there wont be enough precision to identify the depth of +objects near to each other.</note> + + + + + + + A 4x4 transformation matrix + + + + Vertical field of view angle in degrees. + + + + The (width over height) aspect ratio for display + + + + The distance to the near clipping plane (Must be positive, + and must not be 0) + + + + The distance to the far clipping plane (Must be positive) + + + + + + Projects an array of input points and writes the result to another +array of output points. The input points can either have 2, 3 or 4 +components each. The output points always have 4 components (known +as homogenous coordinates). The output array can simply point to +the input array to do the transform in-place. + +Here's an example with differing input/output strides: +|[ +typedef struct { + float x,y; + uint8_t r,g,b,a; + float s,t,p; +} MyInVertex; +typedef struct { + uint8_t r,g,b,a; + float x,y,z; +} MyOutVertex; +MyInVertex vertices[N_VERTICES]; +MyOutVertex results[N_VERTICES]; +CoglMatrix matrix; + +my_load_vertices (vertices); +my_get_matrix (&matrix); + +cogl_matrix_project_points (&matrix, + 2, + sizeof (MyInVertex), + &vertices[0].x, + sizeof (MyOutVertex), + &results[0].x, + N_VERTICES); +]| + + + + + + + A projection matrix + + + + The number of position components for each input point. + (either 2, 3 or 4) + + + + The stride in bytes between input points. + + + + A pointer to the first component of the first input point. + + + + The stride in bytes between output points. + + + + A pointer to the first component of the first output point. + + + + The number of points to transform. + + + + + + Multiplies @matrix with a rotation matrix that applies a rotation +of @angle degrees around the specified 3D vector. + + + + + + + A 4x4 transformation matrix + + + + The angle you want to rotate in degrees + + + + X component of your rotation vector + + + + Y component of your rotation vector + + + + Z component of your rotation vector + + + + + + Multiplies @matrix with a rotation transformation described by the +given #CoglEuler. + + + + + + + A 4x4 transformation matrix + + + + A euler describing a rotation + + + + + + Multiplies @matrix with a rotation transformation described by the +given #CoglQuaternion. + + + + + + + A 4x4 transformation matrix + + + + A quaternion describing a rotation + + + + + + Multiplies @matrix with a transform matrix that scales along the X, +Y and Z axis. + + + + + + + A 4x4 transformation matrix + + + + The X scale factor + + + + The Y scale factor + + + + The Z scale factor + + + + + + Transforms a point whos position is given and returned as four float +components. + + + + + + + A 4x4 transformation matrix + + + + The X component of your points position + + + + The Y component of your points position + + + + The Z component of your points position + + + + The W component of your points position + + + + + + Transforms an array of input points and writes the result to +another array of output points. The input points can either have 2 +or 3 components each. The output points always have 3 components. +The output array can simply point to the input array to do the +transform in-place. + +If you need to transform 4 component points see +cogl_matrix_project_points(). + +Here's an example with differing input/output strides: +|[ +typedef struct { + float x,y; + uint8_t r,g,b,a; + float s,t,p; +} MyInVertex; +typedef struct { + uint8_t r,g,b,a; + float x,y,z; +} MyOutVertex; +MyInVertex vertices[N_VERTICES]; +MyOutVertex results[N_VERTICES]; +CoglMatrix matrix; + +my_load_vertices (vertices); +my_get_matrix (&matrix); + +cogl_matrix_transform_points (&matrix, + 2, + sizeof (MyInVertex), + &vertices[0].x, + sizeof (MyOutVertex), + &results[0].x, + N_VERTICES); +]| + + + + + + + A transformation matrix + + + + The number of position components for each input point. + (either 2 or 3) + + + + The stride in bytes between input points. + + + + A pointer to the first component of the first input point. + + + + The stride in bytes between output points. + + + + A pointer to the first component of the first output point. + + + + The number of points to transform. + + + + + + Multiplies @matrix with a transform matrix that translates along +the X, Y and Z axis. + + + + + + + A 4x4 transformation matrix + + + + The X translation you want to apply + + + + The Y translation you want to apply + + + + The Z translation you want to apply + + + + + + Replaces @matrix with its transpose. Ie, every element (i,j) in the +new matrix is taken from element (j,i) in the old matrix. + + + + + + + A #CoglMatrix + + + + + + Multiplies @matrix by a view transform that maps the 2D coordinates +(0,0) top left and (@width_2d,@height_2d) bottom right the full viewport +size. Geometry at a depth of 0 will now lie on this 2D plane. + +Note: this doesn't multiply the matrix by any projection matrix, +but it assumes you have a perspective projection as defined by +passing the corresponding arguments to cogl_matrix_frustum(). + +Toolkits such as Clutter that mix 2D and 3D drawing can use this to +create a 2D coordinate system within a 3D perspective projected +view frustum. + + + + + + + A 4x4 transformation matrix + + + + coord of left vertical clipping plane + + + + coord of right vertical clipping plane + + + + coord of bottom horizontal clipping plane + + + + coord of top horizontal clipping plane + + + + The distance to the near clip plane. Never pass 0 and always pass + a positive number. + + + + The distance to the 2D plane. (Should always be positive and + be between @z_near and the z_far value that was passed to + cogl_matrix_frustum()) + + + + The width of the 2D coordinate system + + + + The height of the 2D coordinate system + + + + + + Multiplies @matrix by a view transform that maps the 2D coordinates +(0,0) top left and (@width_2d,@height_2d) bottom right the full viewport +size. Geometry at a depth of 0 will now lie on this 2D plane. + +Note: this doesn't multiply the matrix by any projection matrix, +but it assumes you have a perspective projection as defined by +passing the corresponding arguments to cogl_matrix_perspective(). + +Toolkits such as Clutter that mix 2D and 3D drawing can use this to +create a 2D coordinate system within a 3D perspective projected +view frustum. + + + + + + + + + + A field of view angle for the Y axis + + + + The ratio of width to height determining the field of view angle + for the x axis. + + + + The distance to the near clip plane. Never pass 0 and always pass + a positive number. + + + + The distance to the 2D plane. (Should always be positive and + be between @z_near and the z_far value that was passed to + cogl_matrix_frustum()) + + + + The width of the 2D coordinate system + + + + The height of the 2D coordinate system + + + + + + Compares two matrices to see if they represent the same +transformation. Although internally the matrices may have different +annotations associated with them and may potentially have a cached +inverse matrix these are not considered in the comparison. + + + + + + + A 4x4 transformation matrix + + + + A 4x4 transformation matrix + + + + + + + + Increases the reference count of @object by 1 + + + the @object, with its reference count increased + + + + + a #CoglObject + + + + + + Drecreases the reference count of @object by 1; if the reference +count reaches 0, the resources allocated by @object will be freed + + + + + + + a #CoglObject + + + + + + Finds the user data previously associated with @object using +the given @key. If no user data has been associated with @object +for the given @key this function returns NULL. + + + The user data previously associated + with @object using the given @key; or %NULL if no associated + data is found. + + + + + The object with associated private data to query + + + + The address of a #CoglUserDataKey which provides a unique value + with which to index the private data. + + + + + + Associates some private @user_data with a given #CoglObject. To +later remove the association call cogl_object_set_user_data() with +the same @key but NULL for the @user_data. + + + + + + + The object to associate private data with + + + + The address of a #CoglUserDataKey which provides a unique value + with which to index the private data. + + + + The data to associate with the given object, + or %NULL to remove a previous association. + + + + A #CoglUserDataDestroyCallback to call if the object is + destroyed or if the association is removed by later setting + %NULL data for the same key. + + + + + + + + + This creates an offscreen buffer object using the given @texture as the +primary color buffer. It doesn't just initialize the contents of the +offscreen buffer with the @texture; they are tightly bound so that +drawing to the offscreen buffer effectivly updates the contents of the +given texture. You don't need to destroy the offscreen buffer before +you can use the @texture again. + +<note>This only works with low-level #CoglTexture types such as +#CoglTexture2D, #CoglTexture3D and #CoglTextureRectangle, and not +with meta-texture types such as #CoglTexture2DSliced.</note> + Use cogl_offscreen_new_with_texture instead. + + + a newly instantiated #CoglOffscreen + framebuffer or %NULL if it wasn't possible to create the + buffer. + + + + + A #CoglTexture pointer + + + + + + This creates an offscreen framebuffer object using the given +@texture as the primary color buffer. It doesn't just initialize +the contents of the offscreen buffer with the @texture; they are +tightly bound so that drawing to the offscreen buffer effectively +updates the contents of the given texture. You don't need to +destroy the offscreen buffer before you can use the @texture again. + +<note>This api only works with low-level #CoglTexture types such as +#CoglTexture2D, #CoglTexture3D and #CoglTextureRectangle, and not +with meta-texture types such as #CoglTexture2DSliced.</note> + +The storage for the framebuffer is actually allocated lazily +so this function will never return %NULL to indicate a runtime +error. This means it is still possible to configure the framebuffer +before it is really allocated. + +Simple applications without full error handling can simply rely on +Cogl to lazily allocate the storage of framebuffers but you should +be aware that if Cogl encounters an error (such as running out of +GPU memory) then your application will simply abort with an error +message. If you need to be able to catch such exceptions at runtime +then you can explicitly allocate your framebuffer when you have +finished configuring it by calling cogl_framebuffer_allocate() and +passing in a #CoglError argument to catch any exceptions. + + + a newly instantiated #CoglOffscreen + framebuffer. + + + + + A #CoglTexture pointer + + + + + + Increments the reference count on the @offscreen framebuffer. + cogl_object_ref() should be used in new code. + + + For convenience it returns the + given @offscreen + + + + + A pointer to a #CoglOffscreen framebuffer + + + + + + Decreases the reference count for the @offscreen buffer and frees it when +the count reaches 0. + cogl_object_unref() should be used in new code. + + + + + + + A pointer to a #CoglOffscreen framebuffer + + + + + + + + + + + + + + + + + + + + Instantiates an "unallocated" #CoglOnscreen framebuffer that may be +configured before later being allocated, either implicitly when +it is first used or explicitly via cogl_framebuffer_allocate(). + + + A newly instantiated #CoglOnscreen framebuffer + + + + + A #CoglContext + + + + The desired framebuffer width + + + + The desired framebuffer height + + + + + + + + + + + + + + + + + + + + Installs a @callback function that will be called whenever the +window system has lost the contents of a region of the onscreen +buffer and the application should redraw it to repair the buffer. +For example this may happen in a window system without a compositor +if a window that was previously covering up the onscreen window has +been moved causing a region of the onscreen to be exposed. + +The @callback will be passed a #CoglOnscreenDirtyInfo struct which +decribes a rectangle containing the newly dirtied region. Note that +this may be called multiple times to describe a non-rectangular +region composed of multiple smaller rectangles. + +The dirty events are separate from %COGL_FRAME_EVENT_SYNC events so +the application should also listen for this event before rendering +the dirty region to ensure that the framebuffer is actually ready +for rendering. + + + a #CoglOnscreenDirtyClosure pointer that can be used to + remove the callback and associated @user_data later. + + + + + A #CoglOnscreen framebuffer + + + + A callback function to call for dirty events + + + + A private pointer to be passed to @callback + + + + An optional callback to destroy @user_data when the + @callback is removed or @onscreen is freed. + + + + + + Installs a @callback function that will be called for significant +events relating to the given @onscreen framebuffer. + +The @callback will be used to notify when the system compositor is +ready for this application to render a new frame. In this case +%COGL_FRAME_EVENT_SYNC will be passed as the event argument to the +given @callback in addition to the #CoglFrameInfo corresponding to +the frame beeing acknowledged by the compositor. + +The @callback will also be called to notify when the frame has +ended. In this case %COGL_FRAME_EVENT_COMPLETE will be passed as +the event argument to the given @callback in addition to the +#CoglFrameInfo corresponding to the newly presented frame. The +meaning of "ended" here simply means that no more timing +information will be collected within the corresponding +#CoglFrameInfo and so this is a good opportunity to analyse the +given info. It does not necessarily mean that the GPU has finished +rendering the corresponding frame. + +We highly recommend throttling your application according to +%COGL_FRAME_EVENT_SYNC events so that your application can avoid +wasting resources, drawing more frames than your system compositor +can display. + + + a #CoglFrameClosure pointer that can be used to + remove the callback and associated @user_data later. + + + + + A #CoglOnscreen framebuffer + + + + A callback function to call for frame events + + + + A private pointer to be passed to @callback + + + + An optional callback to destroy @user_data + when the @callback is removed or @onscreen is freed. + + + + + + Registers a @callback with @onscreen that will be called whenever +the @onscreen framebuffer changes size. + +The @callback can be removed using +cogl_onscreen_remove_resize_callback() passing the returned closure +pointer. + +<note>Since Cogl automatically updates the viewport of an @onscreen +framebuffer that is resized, a resize callback can also be used to +track when the viewport has been changed automatically by Cogl in +case your application needs more specialized control over the +viewport.</note> + +<note>A resize callback will only ever be called while dispatching +Cogl events from the system mainloop; so for example during +cogl_poll_renderer_dispatch(). This is so that callbacks shouldn't +occur while an application might have arbitrary locks held for +example.</note> + + + a #CoglOnscreenResizeClosure pointer that can be used to + remove the callback and associated @user_data later. + + + + + A #CoglOnscreen framebuffer + + + + A #CoglOnscreenResizeCallback to call when + the @onscreen changes size. + + + + Private data to be passed to @callback. + + + + An optional callback to destroy @user_data + when the @callback is removed or @onscreen is freed. + + + + + + Installs a @callback function that should be called whenever a swap buffers +request (made using cogl_onscreen_swap_buffers()) for the given +@onscreen completes. + +<note>Applications should check for the %COGL_FEATURE_ID_SWAP_BUFFERS_EVENT +feature before using this API. It's currently undefined when and if +registered callbacks will be called if this feature is not supported.</note> + +We recommend using this mechanism when available to manually throttle your +applications so your application will be able to avoid long blocks in the +driver caused by throttling when you request to swap buffers too quickly. + Use cogl_onscreen_add_frame_callback() instead + + + a unique identifier that can be used to remove to remove + the callback later. + + + + + A #CoglOnscreen framebuffer + + + + A callback function to call when a swap + has completed + + + + A private pointer to be passed to @callback + + + + + + Gets the current age of the buffer contents. + +This function allows applications to query the age of the current +back buffer contents for a #CoglOnscreen as the number of frames +elapsed since the contents were most recently defined. + +These age values exposes enough information to applications about +how Cogl internally manages back buffers to allow applications to +re-use the contents of old frames and minimize how much must be +redrawn for the next frame. + +The back buffer contents can either be reported as invalid (has an +age of 0) or it may be reported to be the same contents as from n +frames prior to the current frame. + +The queried value remains valid until the next buffer swap. + +<note>One caveat is that under X11 the buffer age does not reflect +changes to buffer contents caused by the window systems. X11 +applications must track Expose events to determine what buffer +regions need to additionally be repaired each frame.</note> + +The recommended way to take advantage of this buffer age api is to +build up a circular buffer of length 3 for tracking damage regions +over the last 3 frames and when starting a new frame look at the +age of the buffer and combine the damage regions for the current +frame with the damage regions of previous @age frames so you know +everything that must be redrawn to update the old contents for the +new frame. + +<note>If the system doesn't not support being able to track the age +of back buffers then this function will always return 0 which +implies that the contents are undefined.</note> + +<note>The %COGL_FEATURE_ID_BUFFER_AGE feature can optionally be +explicitly checked to determine if Cogl is currently tracking the +age of #CoglOnscreen back buffer contents. If this feature is +missing then this function will always return 0.</note> + + + The age of the buffer contents or 0 when the buffer + contents are undefined. + + + + + A #CoglOnscreen framebuffer + + + + + + Gets the value of the framebuffers frame counter. This is +a counter that increases by one each time +cogl_onscreen_swap_buffers() or cogl_onscreen_swap_region() +is called. + + + the current frame counter value + + + + + + + + + + Lets you query whether @onscreen has been marked as resizable via +the cogl_onscreen_set_resizable() api. + +By default, if possible, a @onscreen will be created by Cogl +as non resizable, but it is not guaranteed that this is always +possible for all window systems. + +<note>If cogl_onscreen_set_resizable(@onscreen, %TRUE) has been +previously called then this function will return %TRUE, but it's +possible that the current windowing system being used does not +support window resizing (consider fullscreen windows on a phone or +a TV). This function is not aware of whether resizing is truly +meaningful with your window system, only whether the @onscreen has +been marked as resizable.</note> + + + Returns whether @onscreen has been marked as + resizable or not. + + + + + A #CoglOnscreen framebuffer + + + + + + This requests to make @onscreen invisible to the user. + +Actually the precise semantics of this function depend on the +window system currently in use, and if you don't have a +multi-windowining system this function may in-fact do nothing. + +This function does not implicitly allocate the given @onscreen +framebuffer before hiding it. + +<note>Since Cogl doesn't explicitly track the visibility status of +onscreen framebuffers it wont try to avoid redundant window system +requests e.g. to show an already visible window. This also means +that it's acceptable to alternatively use native APIs to show and +hide windows without confusing Cogl.</note> + + + + + + + The onscreen framebuffer to make invisible + + + + + + Removes a callback and associated user data that were previously +registered using cogl_onscreen_add_dirty_callback(). + +If a destroy callback was passed to +cogl_onscreen_add_dirty_callback() to destroy the user data then +this will also get called. + + + + + + + A #CoglOnscreen + + + + A #CoglOnscreenDirtyClosure returned from + cogl_onscreen_add_dirty_callback() + + + + + + Removes a callback and associated user data that were previously +registered using cogl_onscreen_add_frame_callback(). + +If a destroy callback was passed to +cogl_onscreen_add_frame_callback() to destroy the user data then +this will get called. + + + + + + + A #CoglOnscreen + + + + A #CoglFrameClosure returned from + cogl_onscreen_add_frame_callback() + + + + + + Removes a resize @callback and @user_data pair that were previously +associated with @onscreen via cogl_onscreen_add_resize_callback(). + + + + + + + A #CoglOnscreen framebuffer + + + + An identifier returned from cogl_onscreen_add_resize_callback() + + + + + + Removes a callback that was previously registered +using cogl_onscreen_add_swap_buffers_callback(). + Use cogl_onscreen_remove_frame_callback() instead + + + + + + + A #CoglOnscreen framebuffer + + + + An identifier returned from cogl_onscreen_add_swap_buffers_callback() + + + + + + Lets you request Cogl to mark an @onscreen framebuffer as +resizable or not. + +By default, if possible, a @onscreen will be created by Cogl +as non resizable, but it is not guaranteed that this is always +possible for all window systems. + +<note>Cogl does not know whether marking the @onscreen framebuffer +is truly meaningful for your current window system (consider +applications being run fullscreen on a phone or TV) so this +function may not have any useful effect. If you are running on a +multi windowing system such as X11 or Win32 or OSX then Cogl will +request to the window system that users be allowed to resize the +@onscreen, although it's still possible that some other window +management policy will block this possibility.</note> + +<note>Whenever an @onscreen framebuffer is resized the viewport +will be automatically updated to match the new size of the +framebuffer with an origin of (0,0). If your application needs more +specialized control of the viewport it will need to register a +resize handler using cogl_onscreen_add_resize_callback() so that it +can track when the viewport has been changed automatically.</note> + + + + + + + A #CoglOnscreen framebuffer + + + + + + + + + This requests to make @onscreen visible to the user. + +Actually the precise semantics of this function depend on the +window system currently in use, and if you don't have a +multi-windowining system this function may in-fact do nothing. + +This function will implicitly allocate the given @onscreen +framebuffer before showing it if it hasn't already been allocated. + +When using the Wayland winsys calling this will set the surface to +a toplevel type which will make it appear. If the application wants +to set a different type for the surface, it can avoid calling +cogl_onscreen_show() and set its own type directly with the Wayland +client API via cogl_wayland_onscreen_get_surface(). + +<note>Since Cogl doesn't explicitly track the visibility status of +onscreen framebuffers it wont try to avoid redundant window system +requests e.g. to show an already visible window. This also means +that it's acceptable to alternatively use native APIs to show and +hide windows without confusing Cogl.</note> + + + + + + + The onscreen framebuffer to make visible + + + + + + Swaps the current back buffer being rendered too, to the front for display. + +This function also implicitly discards the contents of the color, depth and +stencil buffers as if cogl_framebuffer_discard_buffers() were used. The +significance of the discard is that you should not expect to be able to +start a new frame that incrementally builds on the contents of the previous +frame. + +<note>It is highly recommended that applications use +cogl_onscreen_swap_buffers_with_damage() instead whenever possible +and also use the cogl_onscreen_get_buffer_age() api so they can +perform incremental updates to older buffers instead of having to +render a full buffer for every frame.</note> + + + + + + + A #CoglOnscreen framebuffer + + + + + + Swaps the current back buffer being rendered too, to the front for +display and provides information to any system compositor about +what regions of the buffer have changed (damage) with respect to +the last swapped buffer. + +This function has the same semantics as +cogl_framebuffer_swap_buffers() except that it additionally allows +applications to pass a list of damaged rectangles which may be +passed on to a compositor so that it can minimize how much of the +screen is redrawn in response to this applications newly swapped +front buffer. + +For example if your application is only animating a small object in +the corner of the screen and everything else is remaining static +then it can help the compositor to know that only the bottom right +corner of your newly swapped buffer has really changed with respect +to your previously swapped front buffer. + +If @n_rectangles is 0 then the whole buffer will implicitly be +reported as damaged as if cogl_onscreen_swap_buffers() had been +called. + +This function also implicitly discards the contents of the color, +depth and stencil buffers as if cogl_framebuffer_discard_buffers() +were used. The significance of the discard is that you should not +expect to be able to start a new frame that incrementally builds on +the contents of the previous frame. If you want to perform +incremental updates to older back buffers then please refer to the +cogl_onscreen_get_buffer_age() api. + +Whenever possible it is recommended that applications use this +function instead of cogl_onscreen_swap_buffers() to improve +performance when running under a compositor. + +<note>It is highly recommended to use this API in conjunction with +the cogl_onscreen_get_buffer_age() api so that your application can +perform incremental rendering based on old back buffers.</note> + + + + + + + A #CoglOnscreen framebuffer + + + + An array of integer 4-tuples representing damaged + rectangles as (x, y, width, height) tuples. + + + + The number of 4-tuples to be read from @rectangles + + + + + + Swaps a region of the back buffer being rendered too, to the front for +display. @rectangles represents the region as array of @n_rectangles each +defined by 4 sequential (x, y, width, height) integers. + +This function also implicitly discards the contents of the color, depth and +stencil buffers as if cogl_framebuffer_discard_buffers() were used. The +significance of the discard is that you should not expect to be able to +start a new frame that incrementally builds on the contents of the previous +frame. + + + + + + + A #CoglOnscreen framebuffer + + + + An array of integer 4-tuples representing rectangles as + (x, y, width, height) tuples. + + + + The number of 4-tuples to be read from @rectangles + + + + + + + Is a callback that can be registered via +cogl_onscreen_add_dirty_callback() to be called when the windowing +system determines that a region of the onscreen window has been +lost and the application should redraw it. + + + + + + + The onscreen that the frame is associated with + + + + A #CoglOnscreenDirtyInfo struct containing the details of the + dirty area + + + + The user pointer passed to + cogl_onscreen_add_frame_callback() + + + + + + An opaque type that tracks a #CoglOnscreenDirtyCallback and associated +user data. A #CoglOnscreenDirtyClosure pointer will be returned from +cogl_onscreen_add_dirty_callback() and it allows you to remove a +callback later using cogl_onscreen_remove_dirty_callback(). + + + + A structure passed to callbacks registered using +cogl_onscreen_add_dirty_callback(). The members describe a +rectangle within the onscreen buffer that should be redrawn. + + + Left edge of the dirty rectangle + + + + Top edge of the dirty rectangle, measured from the top of the window + + + + Width of the dirty rectangle + + + + Height of the dirty rectangle + + + + + Is a callback type used with the +cogl_onscreen_add_resize_callback() allowing applications to be +notified whenever an @onscreen framebuffer is resized. + +<note>Cogl automatically updates the viewport of an @onscreen +framebuffer that is resized so this callback is also an indication +that the viewport has been modified too</note> + +<note>A resize callback will only ever be called while dispatching +Cogl events from the system mainloop; so for example during +cogl_poll_renderer_dispatch(). This is so that callbacks shouldn't +occur while an application might have arbitrary locks held for +example.</note> + + + + + + + A #CoglOnscreen framebuffer that was resized + + + + The new width of @onscreen + + + + The new height of @onscreen + + + + The private passed to + cogl_onscreen_add_resize_callback() + + + + + + An opaque type that tracks a #CoglOnscreenResizeCallback and +associated user data. A #CoglOnscreenResizeClosure pointer will be +returned from cogl_onscreen_add_resize_callback() and it allows you +to remove a callback later using +cogl_onscreen_remove_resize_callback(). + + + + + + + + + + + + + + + + + + + + + + + + + + Allocates and initializes a default simple pipeline that will color +a primitive white. + + + a pointer to a new #CoglPipeline + + + + + a #CoglContext + + + + + + Adds a shader snippet that will hook on to the given layer of the +pipeline. The exact part of the pipeline that the snippet wraps +around depends on the hook that is given to +cogl_snippet_new(). Note that some hooks can't be used with a layer +and need to be added with cogl_pipeline_add_snippet() instead. + + + + + + + A #CoglPipeline + + + + The layer to hook the snippet to + + + + A #CoglSnippet + + + + + + Adds a shader snippet to @pipeline. The snippet will wrap around or +replace some part of the pipeline as defined by the hook point in +@snippet. Note that some hook points are specific to a layer and +must be added with cogl_pipeline_add_layer_snippet() instead. + + + + + + + A #CoglPipeline + + + + The #CoglSnippet to add to the vertex processing hook + + + + + + Creates a new pipeline with the configuration copied from the +source pipeline. + +We would strongly advise developers to always aim to use +cogl_pipeline_copy() instead of cogl_pipeline_new() whenever there will +be any similarity between two pipelines. Copying a pipeline helps Cogl +keep track of a pipelines ancestry which we may use to help minimize GPU +state changes. + + + a pointer to the newly allocated #CoglPipeline + + + + + a #CoglPipeline object to copy + + + + + + Iterates all the layer indices of the given @pipeline. + + + + + + + A #CoglPipeline object + + + + A #CoglPipelineLayerCallback to be + called for each layer index + + + + Private data that will be passed to the + callback + + + + + + + + The alpha test function of @pipeline. + + + + + A #CoglPipeline object + + + + + + + + The alpha test reference value of @pipeline. + + + + + A #CoglPipeline object + + + + + + Retrieves the current ambient color for @pipeline + + + + + + + A #CoglPipeline object + + + + The location to store the ambient color + + + + + + Retrieves the current pipeline color. + + + + + + + A #CoglPipeline object + + + + The location to store the color + + + + + + Gets the current #CoglColorMask of which channels would be written to the +current framebuffer. Each bit set in the mask means that the +corresponding color would be written. + + + A #CoglColorMask + + + + + a #CoglPipeline object. + + + + + + + + the cull face mode that was previously set with +cogl_pipeline_set_cull_face_mode(). + +Status: Unstable + + + + + + + + + + Retrieves the current depth state configuration for the given +@pipeline as previously set using cogl_pipeline_set_depth_state(). + + + + + + + A #CoglPipeline object + + + + A destination #CoglDepthState struct + + + + + + Retrieves the current diffuse color for @pipeline + + + + + + + A #CoglPipeline object + + + + The location to store the diffuse color + + + + + + Retrieves the pipelines current emission color. + + + + + + + A #CoglPipeline object + + + + The location to store the emission color + + + + + + The order of the vertices within a primitive specifies whether it +is considered to be front or back facing. This function specifies +which order is considered to be the front +faces. %COGL_WINDING_COUNTER_CLOCKWISE sets the front faces to +primitives with vertices in a counter-clockwise order and +%COGL_WINDING_CLOCKWISE sets them to be clockwise. The default is +%COGL_WINDING_COUNTER_CLOCKWISE. + + + The @pipeline front face winding + +Status: Unstable + + + + + a #CoglPipeline + + + + + + Retrieves the currently set magnification #CoglPipelineFilter set on +the specified layer. The magnification filter determines how the +layer should be sampled when up-scaled. + +The default filter is %COGL_PIPELINE_FILTER_LINEAR but this can be +changed using cogl_pipeline_set_layer_filters(). + + + The magnification #CoglPipelineFilter for the + specified layer. + + + + + A #CoglPipeline object + + + + the layer number to change. + + + + + + Retrieves the currently set minification #CoglPipelineFilter set on +the specified layer. The miniifcation filter determines how the +layer should be sampled when down-scaled. + +The default filter is %COGL_PIPELINE_FILTER_LINEAR but this can be +changed using cogl_pipeline_set_layer_filters(). + + + The minification #CoglPipelineFilter for the + specified layer. + + + + + A #CoglPipeline object + + + + the layer number to change. + + + + + + Gets whether point sprite coordinate generation is enabled for this +texture layer. + + + whether the texture coordinates will be replaced with +point sprite coordinates. + + + + + A #CoglPipeline object + + + + the layer number to check. + + + + + + + + the texture that was set for the + given layer of the pipeline or %NULL if no texture was set. + + + + + A #CoglPipeline object + + + + the index of the layer + + + + + + Returns the wrap mode for the 'p' coordinate of texture lookups on this +layer. + + + the wrap mode for the 'p' coordinate of texture lookups on +this layer. + + + + + A #CoglPipeline object + + + + the layer number to change. + + + + + + Returns the wrap mode for the 's' coordinate of texture lookups on this +layer. + + + the wrap mode for the 's' coordinate of texture lookups on +this layer. + + + + + A #CoglPipeline object + + + + the layer number to change. + + + + + + Returns the wrap mode for the 't' coordinate of texture lookups on this +layer. + + + the wrap mode for the 't' coordinate of texture lookups on +this layer. + + + + + A #CoglPipeline object + + + + the layer number to change. + + + + + + Retrieves the number of layers defined for the given @pipeline + + + the number of layers + + + + + A #CoglPipeline object + + + + + + + + %TRUE if the pipeline has per-vertex point size + enabled or %FALSE otherwise. The per-vertex point size can be + enabled with cogl_pipeline_set_per_vertex_point_size(). + + + + + a #CoglPipeline pointer + + + + + + Get the size of points drawn when %COGL_VERTICES_MODE_POINTS is +used with the vertex buffer API. + + + the point size of the @pipeline. + + + + + a #CoglPipeline pointer + + + + + + Retrieves the pipelines current emission color. + + + The pipelines current shininess value + + + + + A #CoglPipeline object + + + + + + Retrieves the pipelines current specular color. + + + + + + + A #CoglPipeline object + + + + The location to store the specular color + + + + + + This is used to get an integer representing the uniform with the +name @uniform_name. The integer can be passed to functions such as +cogl_pipeline_set_uniform_1f() to set the value of a uniform. + +This function will always return a valid integer. Ie, unlike +OpenGL, it does not return -1 if the uniform is not available in +this pipeline so it can not be used to test whether uniforms are +present. It is not necessary to set the program on the pipeline +before calling this function. + + + A integer representing the location of the given uniform. + + + + + A #CoglPipeline object + + + + The name of a uniform + + + + + + Queries what user program has been associated with the given +@pipeline using cogl_pipeline_set_user_program(). + + + The current user program or %COGL_INVALID_HANDLE. + + + + + a #CoglPipeline object. + + + + + + This function removes a layer from your pipeline + + + + + + + A #CoglPipeline object + + + + Specifies the layer you want to remove + + + + + + Before a primitive is blended with the framebuffer, it goes through an +alpha test stage which lets you discard fragments based on the current +alpha value. This function lets you change the function used to evaluate +the alpha channel, and thus determine which fragments are discarded +and which continue on to the blending stage. + +The default is %COGL_PIPELINE_ALPHA_FUNC_ALWAYS + + + + + + + A #CoglPipeline object + + + + A @CoglPipelineAlphaFunc constant + + + + A reference point that the chosen alpha function uses + to compare incoming fragments to. + + + + + + Sets the pipeline's ambient color, in the standard OpenGL lighting +model. The ambient color affects the overall color of the object. + +Since the diffuse color will be intense when the light hits the surface +directly, the ambient will be most apparent where the light hits at a +slant. + +The default value is (0.2, 0.2, 0.2, 1.0) + + + + + + + A #CoglPipeline object + + + + The components of the desired ambient color + + + + + + Conveniently sets the diffuse and ambient color of @pipeline at the same +time. See cogl_pipeline_set_ambient() and cogl_pipeline_set_diffuse(). + +The default ambient color is (0.2, 0.2, 0.2, 1.0) + +The default diffuse color is (0.8, 0.8, 0.8, 1.0) + + + + + + + A #CoglPipeline object + + + + The components of the desired ambient and diffuse colors + + + + + + If not already familiar; please refer <link linkend="cogl-Blend-Strings">here</link> +for an overview of what blend strings are, and their syntax. + +Blending occurs after the alpha test function, and combines fragments with +the framebuffer. + +Currently the only blend function Cogl exposes is ADD(). So any valid +blend statements will be of the form: + +|[ + &lt;channel-mask&gt;=ADD(SRC_COLOR*(&lt;factor&gt;), DST_COLOR*(&lt;factor&gt;)) +]| + +This is the list of source-names usable as blend factors: +<itemizedlist> + <listitem><para>SRC_COLOR: The color of the in comming fragment</para></listitem> + <listitem><para>DST_COLOR: The color of the framebuffer</para></listitem> + <listitem><para>CONSTANT: The constant set via cogl_pipeline_set_blend_constant()</para></listitem> +</itemizedlist> + +The source names can be used according to the +<link linkend="cogl-Blend-String-syntax">color-source and factor syntax</link>, +so for example "(1-SRC_COLOR[A])" would be a valid factor, as would +"(CONSTANT[RGB])" + +These can also be used as factors: +<itemizedlist> + <listitem>0: (0, 0, 0, 0)</listitem> + <listitem>1: (1, 1, 1, 1)</listitem> + <listitem>SRC_ALPHA_SATURATE_FACTOR: (f,f,f,1) where f = MIN(SRC_COLOR[A],1-DST_COLOR[A])</listitem> +</itemizedlist> + +<note>Remember; all color components are normalized to the range [0, 1] +before computing the result of blending.</note> + +<example id="cogl-Blend-Strings-blend-unpremul"> + <title>Blend Strings/1</title> + <para>Blend a non-premultiplied source over a destination with + premultiplied alpha:</para> + <programlisting> +"RGB = ADD(SRC_COLOR*(SRC_COLOR[A]), DST_COLOR*(1-SRC_COLOR[A]))" +"A = ADD(SRC_COLOR, DST_COLOR*(1-SRC_COLOR[A]))" + </programlisting> +</example> + +<example id="cogl-Blend-Strings-blend-premul"> + <title>Blend Strings/2</title> + <para>Blend a premultiplied source over a destination with + premultiplied alpha</para> + <programlisting> +"RGBA = ADD(SRC_COLOR, DST_COLOR*(1-SRC_COLOR[A]))" + </programlisting> +</example> + +The default blend string is: +|[ + RGBA = ADD (SRC_COLOR, DST_COLOR*(1-SRC_COLOR[A])) +]| + +That gives normal alpha-blending when the calculated color for the pipeline +is in premultiplied form. + + + %TRUE if the blend string was successfully parsed, and the + described blending is supported by the underlying driver/hardware. If + there was an error, %FALSE is returned and @error is set accordingly (if + present). + + + + + A #CoglPipeline object + + + + A <link linkend="cogl-Blend-Strings">Cogl blend string</link> + describing the desired blend function. + + + + + + When blending is setup to reference a CONSTANT blend factor then +blending will depend on the constant set with this function. + + + + + + + A #CoglPipeline object + + + + The constant color you want + + + + + + Sets the basic color of the pipeline, used when no lighting is enabled. + +Note that if you don't add any layers to the pipeline then the color +will be blended unmodified with the destination; the default blend +expects premultiplied colors: for example, use (0.5, 0.0, 0.0, 0.5) for +semi-transparent red. See cogl_color_premultiply(). + +The default value is (1.0, 1.0, 1.0, 1.0) + + + + + + + A #CoglPipeline object + + + + The components of the color + + + + + + Sets the basic color of the pipeline, used when no lighting is enabled. + +The default value is (1.0, 1.0, 1.0, 1.0) + + + + + + + A #CoglPipeline object + + + + The red component + + + + The green component + + + + The blue component + + + + The alpha component + + + + + + Sets the basic color of the pipeline, used when no lighting is enabled. + +The default value is (0xff, 0xff, 0xff, 0xff) + + + + + + + A #CoglPipeline object + + + + The red component + + + + The green component + + + + The blue component + + + + The alpha component + + + + + + Defines a bit mask of which color channels should be written to the +current framebuffer. If a bit is set in @color_mask that means that +color will be written. + + + + + + + a #CoglPipeline object. + + + + A #CoglColorMask of which color channels to write to + the current framebuffer. + + + + + + Sets which faces will be culled when drawing. Face culling can be +used to increase efficiency by avoiding drawing faces that would +get overridden. For example, if a model has gaps so that it is +impossible to see the inside then faces which are facing away from +the screen will never be seen so there is no point in drawing +them. This can be acheived by setting the cull face mode to +%COGL_PIPELINE_CULL_FACE_MODE_BACK. + +Face culling relies on the primitives being drawn with a specific +order to represent which faces are facing inside and outside the +model. This order can be specified by calling +cogl_pipeline_set_front_face_winding(). + +Status: Unstable + + + + + + + A #CoglPipeline + + + + The new mode to set + + + + + + This commits all the depth state configured in @state struct to the +given @pipeline. The configuration values are copied into the +pipeline so there is no requirement to keep the #CoglDepthState +struct around if you don't need it any more. + +Note: Since some platforms do not support the depth range feature +it is possible for this function to fail and report an @error. + + + TRUE if the GPU supports all the given @state else %FALSE + and returns an @error. + + + + + A #CoglPipeline object + + + + A #CoglDepthState struct + + + + + + Sets the pipeline's diffuse color, in the standard OpenGL lighting +model. The diffuse color is most intense where the light hits the +surface directly - perpendicular to the surface. + +The default value is (0.8, 0.8, 0.8, 1.0) + + + + + + + A #CoglPipeline object + + + + The components of the desired diffuse color + + + + + + Sets the pipeline's emissive color, in the standard OpenGL lighting +model. It will look like the surface is a light source emitting this +color. + +The default value is (0.0, 0.0, 0.0, 1.0) + + + + + + + A #CoglPipeline object + + + + The components of the desired emissive color + + + + + + The order of the vertices within a primitive specifies whether it +is considered to be front or back facing. This function specifies +which order is considered to be the front +faces. %COGL_WINDING_COUNTER_CLOCKWISE sets the front faces to +primitives with vertices in a counter-clockwise order and +%COGL_WINDING_CLOCKWISE sets them to be clockwise. The default is +%COGL_WINDING_COUNTER_CLOCKWISE. + +Status: Unstable + + + + + + + a #CoglPipeline + + + + the winding order + + + + + + If not already familiar; you can refer +<link linkend="cogl-Blend-Strings">here</link> for an overview of what blend +strings are and there syntax. + +These are all the functions available for texture combining: +<itemizedlist> + <listitem>REPLACE(arg0) = arg0</listitem> + <listitem>MODULATE(arg0, arg1) = arg0 x arg1</listitem> + <listitem>ADD(arg0, arg1) = arg0 + arg1</listitem> + <listitem>ADD_SIGNED(arg0, arg1) = arg0 + arg1 - 0.5</listitem> + <listitem>INTERPOLATE(arg0, arg1, arg2) = arg0 x arg2 + arg1 x (1 - arg2)</listitem> + <listitem>SUBTRACT(arg0, arg1) = arg0 - arg1</listitem> + <listitem> + <programlisting> + DOT3_RGB(arg0, arg1) = 4 x ((arg0[R] - 0.5)) * (arg1[R] - 0.5) + + (arg0[G] - 0.5)) * (arg1[G] - 0.5) + + (arg0[B] - 0.5)) * (arg1[B] - 0.5)) + </programlisting> + </listitem> + <listitem> + <programlisting> + DOT3_RGBA(arg0, arg1) = 4 x ((arg0[R] - 0.5)) * (arg1[R] - 0.5) + + (arg0[G] - 0.5)) * (arg1[G] - 0.5) + + (arg0[B] - 0.5)) * (arg1[B] - 0.5)) + </programlisting> + </listitem> +</itemizedlist> + +Refer to the +<link linkend="cogl-Blend-String-syntax">color-source syntax</link> for +describing the arguments. The valid source names for texture combining +are: +<variablelist> + <varlistentry> + <term>TEXTURE</term> + <listitem>Use the color from the current texture layer</listitem> + </varlistentry> + <varlistentry> + <term>TEXTURE_0, TEXTURE_1, etc</term> + <listitem>Use the color from the specified texture layer</listitem> + </varlistentry> + <varlistentry> + <term>CONSTANT</term> + <listitem>Use the color from the constant given with + cogl_pipeline_set_layer_combine_constant()</listitem> + </varlistentry> + <varlistentry> + <term>PRIMARY</term> + <listitem>Use the color of the pipeline as set with + cogl_pipeline_set_color()</listitem> + </varlistentry> + <varlistentry> + <term>PREVIOUS</term> + <listitem>Either use the texture color from the previous layer, or + if this is layer 0, use the color of the pipeline as set with + cogl_pipeline_set_color()</listitem> + </varlistentry> +</variablelist> + +<refsect2 id="cogl-Layer-Combine-Examples"> + <title>Layer Combine Examples</title> + <para>This is effectively what the default blending is:</para> + <informalexample><programlisting> + RGBA = MODULATE (PREVIOUS, TEXTURE) + </programlisting></informalexample> + <para>This could be used to cross-fade between two images, using + the alpha component of a constant as the interpolator. The constant + color is given by calling + cogl_pipeline_set_layer_combine_constant().</para> + <informalexample><programlisting> + RGBA = INTERPOLATE (PREVIOUS, TEXTURE, CONSTANT[A]) + </programlisting></informalexample> +</refsect2> + +<note>You can't give a multiplication factor for arguments as you can +with blending.</note> + + + %TRUE if the blend string was successfully parsed, and the + described texture combining is supported by the underlying driver and + or hardware. On failure, %FALSE is returned and @error is set + + + + + A #CoglPipeline object + + + + Specifies the layer you want define a combine function for + + + + A <link linkend="cogl-Blend-Strings">Cogl blend string</link> + describing the desired texture combine function. + + + + + + When you are using the 'CONSTANT' color source in a layer combine +description then you can use this function to define its value. + + + + + + + A #CoglPipeline object + + + + Specifies the layer you want to specify a constant used + for texture combining + + + + The constant color you want + + + + + + Changes the decimation and interpolation filters used when a texture is +drawn at other scales than 100%. + +<note>It is an error to pass anything other than +%COGL_PIPELINE_FILTER_NEAREST or %COGL_PIPELINE_FILTER_LINEAR as +magnification filters since magnification doesn't ever need to +reference values stored in the mipmap chain.</note> + + + + + + + A #CoglPipeline object + + + + the layer number to change. + + + + the filter used when scaling a texture down. + + + + the filter used when magnifying a texture. + + + + + + This function lets you set a matrix that can be used to e.g. translate +and rotate a single layer of a pipeline used to fill your geometry. + + + + + + + A #CoglPipeline object + + + + the index for the layer inside @pipeline + + + + the transformation matrix for the layer + + + + + + Sets the texture for this layer to be the default texture for the +given type. This is equivalent to calling +cogl_pipeline_set_layer_texture() with %NULL for the texture +argument except that you can also specify the type of default +texture to use. The default texture is a 1x1 pixel white texture. + +This function is mostly useful if you want to create a base +pipeline that you want to create multiple copies from using +cogl_pipeline_copy(). In that case this function can be used to +specify the texture type so that any pipeline copies can share the +internal texture type state for efficiency. + + + + + + + A #CoglPipeline + + + + The layer number to modify + + + + The type of the default texture to use + + + + + + When rendering points, if @enable is %TRUE then the texture +coordinates for this layer will be replaced with coordinates that +vary from 0.0 to 1.0 across the primitive. The top left of the +point will have the coordinates 0.0,0.0 and the bottom right will +have 1.0,1.0. If @enable is %FALSE then the coordinates will be +fixed for the entire point. + +This function will only work if %COGL_FEATURE_ID_POINT_SPRITE is +available. If the feature is not available then the function will +return %FALSE and set @error. + + + %TRUE if the function succeeds, %FALSE otherwise. + + + + + A #CoglPipeline object + + + + the layer number to change. + + + + whether to enable point sprite coord generation. + + + + + + + + + + + + + + + + + + + + + + + Sets the wrap mode for all three coordinates of texture lookups on +this layer. This is equivalent to calling +cogl_pipeline_set_layer_wrap_mode_s(), +cogl_pipeline_set_layer_wrap_mode_t() and +cogl_pipeline_set_layer_wrap_mode_p() separately. + + + + + + + A #CoglPipeline object + + + + the layer number to change. + + + + the new wrap mode + + + + + + Sets the wrap mode for the 'p' coordinate of texture lookups on +this layer. 'p' is the third coordinate. + + + + + + + A #CoglPipeline object + + + + the layer number to change. + + + + the new wrap mode + + + + + + Sets the wrap mode for the 's' coordinate of texture lookups on this layer. + + + + + + + A #CoglPipeline object + + + + the layer number to change. + + + + the new wrap mode + + + + + + Sets the wrap mode for the 't' coordinate of texture lookups on this layer. + + + + + + + A #CoglPipeline object + + + + the layer number to change. + + + + the new wrap mode + + + + + + Sets whether to use a per-vertex point size or to use the value set +by cogl_pipeline_set_point_size(). If per-vertex point size is +enabled then the point size can be set for an individual point +either by drawing with a #CoglAttribute with the name +‘cogl_point_size_in’ or by writing to the GLSL builtin +‘cogl_point_size_out’ from a vertex shader snippet. + +If per-vertex point size is enabled and this attribute is not used +and cogl_point_size_out is not written to then the results are +undefined. + +Note that enabling this will only work if the +%COGL_FEATURE_ID_PER_VERTEX_POINT_SIZE feature is available. If +this is not available then the function will return %FALSE and set +a #CoglError. + + + %TRUE if the change suceeded or %FALSE otherwise + + + + + a #CoglPipeline pointer + + + + whether to enable per-vertex point size + + + + + + Changes the size of points drawn when %COGL_VERTICES_MODE_POINTS is +used with the attribute buffer API. Note that typically the GPU +will only support a limited minimum and maximum range of point +sizes. If the chosen point size is outside that range then the +nearest value within that range will be used instead. The size of a +point is in screen space so it will be the same regardless of any +transformations. + +If the point size is set to 0.0 then drawing points with the +pipeline will have undefined results. This is the default value so +if an application wants to draw points it must make sure to use a +pipeline that has an explicit point size set on it. + + + + + + + a #CoglPipeline pointer + + + + the new point size. + + + + + + Sets the shininess of the pipeline, in the standard OpenGL lighting +model, which determines the size of the specular highlights. A +higher @shininess will produce smaller highlights which makes the +object appear more shiny. + +The default value is 0.0 + + + + + + + A #CoglPipeline object + + + + The desired shininess; must be >= 0.0 + + + + + + Sets the pipeline's specular color, in the standard OpenGL lighting +model. The intensity of the specular color depends on the viewport +position, and is brightest along the lines of reflection. + +The default value is (0.0, 0.0, 0.0, 1.0) + + + + + + + A #CoglPipeline object + + + + The components of the desired specular color + + + + + + Sets a new value for the uniform at @uniform_location. If this +pipeline has a user program attached and is later used as a source +for drawing, the given value will be assigned to the uniform which +can be accessed from the shader's source. The value for +@uniform_location should be retrieved from the string name of the +uniform by calling cogl_pipeline_get_uniform_location(). + +This function should be used to set uniforms that are of type +float. It can also be used to set a single member of a float array +uniform. + + + + + + + A #CoglPipeline object + + + + The uniform's location identifier + + + + The new value for the uniform + + + + + + Sets a new value for the uniform at @uniform_location. If this +pipeline has a user program attached and is later used as a source +for drawing, the given value will be assigned to the uniform which +can be accessed from the shader's source. The value for +@uniform_location should be retrieved from the string name of the +uniform by calling cogl_pipeline_get_uniform_location(). + +This function should be used to set uniforms that are of type +int. It can also be used to set a single member of a int array +uniform or a sampler uniform. + + + + + + + A #CoglPipeline object + + + + The uniform's location identifier + + + + The new value for the uniform + + + + + + Sets new values for the uniform at @uniform_location. If this +pipeline has a user program attached and is later used as a source +for drawing, the given values will be assigned to the uniform which +can be accessed from the shader's source. The value for +@uniform_location should be retrieved from the string name of the +uniform by calling cogl_pipeline_get_uniform_location(). + +This function can be used to set any floating point type uniform, +including float arrays and float vectors. For example, to set a +single vec4 uniform you would use 4 for @n_components and 1 for +@count. To set an array of 8 float values, you could use 1 for +@n_components and 8 for @count. + + + + + + + A #CoglPipeline object + + + + The uniform's location identifier + + + + The number of components in the corresponding uniform's type + + + + The number of values to set + + + + Pointer to the new values to set + + + + + + Sets new values for the uniform at @uniform_location. If this +pipeline has a user program attached and is later used as a source +for drawing, the given values will be assigned to the uniform which +can be accessed from the shader's source. The value for +@uniform_location should be retrieved from the string name of the +uniform by calling cogl_pipeline_get_uniform_location(). + +This function can be used to set any integer type uniform, +including int arrays and int vectors. For example, to set a single +ivec4 uniform you would use 4 for @n_components and 1 for +@count. To set an array of 8 int values, you could use 1 for +@n_components and 8 for @count. + + + + + + + A #CoglPipeline object + + + + The uniform's location identifier + + + + The number of components in the corresponding uniform's type + + + + The number of values to set + + + + Pointer to the new values to set + + + + + + Sets new values for the uniform at @uniform_location. If this +pipeline has a user program attached and is later used as a source +for drawing, the given values will be assigned to the uniform which +can be accessed from the shader's source. The value for +@uniform_location should be retrieved from the string name of the +uniform by calling cogl_pipeline_get_uniform_location(). + +This function can be used to set any matrix type uniform, including +matrix arrays. For example, to set a single mat4 uniform you would +use 4 for @dimensions and 1 for @count. To set an array of 8 +mat3 values, you could use 3 for @dimensions and 8 for @count. + +If @transpose is %FALSE then the matrix is expected to be in +column-major order or if it is %TRUE then the matrix is in +row-major order. You can pass a #CoglMatrix by calling by passing +the result of cogl_matrix_get_array() in @value and setting +@transpose to %FALSE. + + + + + + + A #CoglPipeline object + + + + The uniform's location identifier + + + + The size of the matrix + + + + The number of values to set + + + + Whether to transpose the matrix + + + + Pointer to the new values to set + + + + + + Associates a linked CoglProgram with the given pipeline so that the +program can take full control of vertex and/or fragment processing. + +This is an example of how it can be used to associate an ARBfp +program with a #CoglPipeline: +|[ +CoglHandle shader; +CoglHandle program; +CoglPipeline *pipeline; + +shader = cogl_create_shader (COGL_SHADER_TYPE_FRAGMENT); +cogl_shader_source (shader, + "!!ARBfp1.0\n" + "MOV result.color,fragment.color;\n" + "END\n"); +cogl_shader_compile (shader); + +program = cogl_create_program (); +cogl_program_attach_shader (program, shader); +cogl_program_link (program); + +pipeline = cogl_pipeline_new (); +cogl_pipeline_set_user_program (pipeline, program); + +cogl_set_source_color4ub (0xff, 0x00, 0x00, 0xff); +cogl_rectangle (0, 0, 100, 100); +]| + +It is possibly worth keeping in mind that this API is not part of +the long term design for how we want to expose shaders to Cogl +developers (We are planning on deprecating the cogl_program and +cogl_shader APIs in favour of a "snippet" framework) but in the +meantime we hope this will handle most practical GLSL and ARBfp +requirements. + +Also remember you need to check for either the +%COGL_FEATURE_SHADERS_GLSL or %COGL_FEATURE_SHADERS_ARBFP before +using the cogl_program or cogl_shader API. + + + + + + + a #CoglPipeline object. + + + + A #CoglHandle to a linked CoglProgram + + + + + + + Alpha testing happens before blending primitives with the framebuffer and +gives an opportunity to discard fragments based on a comparison with the +incoming alpha value and a reference alpha value. The #CoglPipelineAlphaFunc +determines how the comparison is done. + + + Never let the fragment through. + + + Let the fragment through if the incoming + alpha value is less than the reference alpha value + + + Let the fragment through if the incoming + alpha value equals the reference alpha value + + + Let the fragment through if the incoming + alpha value is less than or equal to the reference alpha value + + + Let the fragment through if the incoming + alpha value is greater than the reference alpha value + + + Let the fragment through if the incoming + alpha value does not equal the reference alpha value + + + Let the fragment through if the incoming + alpha value is greater than or equal to the reference alpha value. + + + Always let the fragment through. + + + + Specifies which faces should be culled. This can be set on a +pipeline using cogl_pipeline_set_cull_face_mode(). + + + Neither face will be + culled. This is the default. + + + Front faces will be culled. + + + Back faces will be culled. + + + All faces will be culled. + + + + Texture filtering is used whenever the current pixel maps either to more +than one texture element (texel) or less than one. These filter enums +correspond to different strategies used to come up with a pixel color, by +possibly referring to multiple neighbouring texels and taking a weighted +average or simply using the nearest texel. + + + Measuring in manhatten distance from the, + current pixel center, use the nearest texture texel + + + Use the weighted average of the 4 texels + nearest the current pixel center + + + Select the mimap level whose + texel size most closely matches the current pixel, and use the + %COGL_PIPELINE_FILTER_NEAREST criterion + + + Select the mimap level whose + texel size most closely matches the current pixel, and use the + %COGL_PIPELINE_FILTER_LINEAR criterion + + + Select the two mimap levels + whose texel size most closely matches the current pixel, use + the %COGL_PIPELINE_FILTER_NEAREST criterion on each one and take + their weighted average + + + Select the two mimap levels + whose texel size most closely matches the current pixel, use + the %COGL_PIPELINE_FILTER_LINEAR criterion on each one and take + their weighted average + + + + The callback prototype used with cogl_pipeline_foreach_layer() for +iterating all the layers of a @pipeline. + + + + + + + The #CoglPipeline whos layers are being iterated + + + + The current layer index + + + + The private data passed to cogl_pipeline_foreach_layer() + + + + + + The wrap mode specifies what happens when texture coordinates +outside the range 0→1 are used. Note that if the filter mode is +anything but %COGL_PIPELINE_FILTER_NEAREST then texels outside the +range 0→1 might be used even when the coordinate is exactly 0 or 1 +because OpenGL will try to sample neighbouring pixels. For example +if you are trying to render the full texture then you may get +artifacts around the edges when the pixels from the other side are +merged in if the wrap mode is set to repeat. + + + The texture will be repeated. This + is useful for example to draw a tiled background. + + + + + The coordinates outside the + range 0→1 will sample copies of the edge pixels of the + texture. This is useful to avoid artifacts if only one copy of + the texture is being rendered. + + + Cogl will try to automatically + decide which of the above two to use. For cogl_rectangle(), it + will use repeat mode if any of the texture coordinates are + outside the range 0→1, otherwise it will use clamp to edge. For + cogl_polygon() it will always use repeat mode. For + cogl_vertex_buffer_draw() it will use repeat mode except for + layers that have point sprite coordinate generation enabled. This + is the default value. + + + + Pixel formats used by Cogl. For the formats with a byte per +component, the order of the components specify the order in +increasing memory addresses. So for example +%COGL_PIXEL_FORMAT_RGB_888 would have the red component in the +lowest address, green in the next address and blue after that +regardless of the endianness of the system. + +For the formats with non byte aligned components the component +order specifies the order within a 16-bit or 32-bit number from +most significant bit to least significant. So for +%COGL_PIXEL_FORMAT_RGB_565, the red component would be in bits +11-15, the green component would be in 6-11 and the blue component +would be in 1-5. Therefore the order in memory depends on the +endianness of the system. + +When uploading a texture %COGL_PIXEL_FORMAT_ANY can be used as the +internal format. Cogl will try to pick the best format to use +internally and convert the texture data if necessary. + + + Any format + + + 8 bits alpha mask + + + RGB, 16 bits + + + RGBA, 16 bits + + + RGBA, 16 bits + + + Not currently supported + + + Single luminance component + + + RG, 16 bits. Note that red-green textures + are only available if %COGL_FEATURE_ID_TEXTURE_RG is advertised. + See cogl_texture_set_components() for details. + + + RGB, 24 bits + + + BGR, 24 bits + + + RGBA, 32 bits + + + BGRA, 32 bits + + + ARGB, 32 bits + + + ABGR, 32 bits + + + RGBA, 32 bits, 10 bpc + + + BGRA, 32 bits, 10 bpc + + + ARGB, 32 bits, 10 bpc + + + ABGR, 32 bits, 10 bpc + + + Premultiplied RGBA, 32 bits + + + Premultiplied BGRA, 32 bits + + + Premultiplied ARGB, 32 bits + + + Premultiplied ABGR, 32 bits + + + Premultiplied RGBA, 16 bits + + + Premultiplied RGBA, 16 bits + + + Premultiplied RGBA, 32 bits, 10 bpc + + + Premultiplied BGRA, 32 bits, 10 bpc + + + Premultiplied ARGB, 32 bits, 10 bpc + + + Premultiplied ABGR, 32 bits, 10 bpc + + + + + + + + + + + + + Flags for cogl_framebuffer_read_pixels_into_bitmap() + + + Read from the color buffer + + + + + + + + + + + + + + + Types of shaders + + + A program for proccessing vertices + + + A program for processing fragments + + + + Represents how draw should affect the two buffers +of a stereo framebuffer. See cogl_framebuffer_set_stereo_mode(). + + + draw to both stereo buffers + + + draw only to the left stereo buffer + + + draw only to the left stereo buffer + + + + + + + + + + + + + + + + + + Error enumeration for Cogl + +The @COGL_SYSTEM_ERROR_UNSUPPORTED error can be thrown for a +variety of reasons. For example: + +<itemizedlist> + <listitem><para>You've tried to use a feature that is not + advertised by cogl_has_feature(). This could happen if you create + a 2d texture with a non-power-of-two size when + %COGL_FEATURE_ID_TEXTURE_NPOT is not advertised.</para></listitem> + <listitem><para>The GPU can not handle the configuration you have + requested. An example might be if you try to use too many texture + layers in a single #CoglPipeline</para></listitem> + <listitem><para>The driver does not support some + configuration.</para></listiem> +</itemizedlist> + +Currently this is only used by Cogl API marked as experimental so +this enum should also be considered experimental. + + + You tried to use a feature or + configuration not currently available. + + + You tried to allocate a resource + such as a texture and there wasn't enough memory. + + + + + + + + + + + + + + + + Creates a #CoglTexture from a #CoglBitmap. + Use specific constructors such as + cogl_texture_2d_new_from_bitmap() + + + A newly created #CoglTexture or + %NULL on failure + + + + + A #CoglBitmap pointer + + + + Optional flags for the texture, or %COGL_TEXTURE_NONE + + + + the #CoglPixelFormat to use for the GPU storage of the +texture + + + + + + Creates a new #CoglTexture based on data residing in memory. + Use specific constructors such as + cogl_texture_2d_new_from_data() + + + A newly created #CoglTexture or + %NULL on failure + + + + + width of texture in pixels + + + + height of texture in pixels + + + + Optional flags for the texture, or %COGL_TEXTURE_NONE + + + + the #CoglPixelFormat the buffer is stored in in RAM + + + + the #CoglPixelFormat that will be used for storing + the buffer on the GPU. If COGL_PIXEL_FORMAT_ANY is given then a + premultiplied format similar to the format of the source data will + be used. The default blending equations of Cogl expect premultiplied + color data; the main use of passing a non-premultiplied format here + is if you have non-premultiplied source data and are going to adjust + the blend mode (see cogl_material_set_blend()) or use the data for + something other than straight blending. + + + + the memory offset in bytes between the starts of + scanlines in @data + + + + pointer the memory region where the source buffer resides + + + + + + Creates a #CoglTexture from an image file. + Use specific constructors such as + cogl_texture_2d_new_from_file() + + + A newly created #CoglTexture or + %NULL on failure + + + + + the file to load + + + + Optional flags for the texture, or %COGL_TEXTURE_NONE + + + + the #CoglPixelFormat to use for the GPU storage of the + texture. If %COGL_PIXEL_FORMAT_ANY is given then a premultiplied + format similar to the format of the source data will be used. The + default blending equations of Cogl expect premultiplied color data; + the main use of passing a non-premultiplied format here is if you + have non-premultiplied source data and are going to adjust the blend + mode (see cogl_material_set_blend()) or use the data for something + other than straight blending. + + + + + + Creates a #CoglTexture based on an existing OpenGL texture; the +width, height and format are passed along since it is not always +possible to query these from OpenGL. + +The waste arguments allow you to create a Cogl texture that maps to +a region smaller than the real OpenGL texture. For instance if your +hardware only supports power-of-two textures you may load a +non-power-of-two image into a larger power-of-two texture and use +the waste arguments to tell Cogl which region should be mapped to +the texture coordinate range [0:1]. + Use specific constructors such as + cogl_texture_2d_new_from_foreign() + + + A newly created #CoglTexture or + %NULL on failure + + + + + opengl handle of foreign texture. + + + + opengl target type of foreign texture + + + + width of foreign texture + + + + height of foreign texture. + + + + horizontal waste on the right hand edge of the texture. + + + + vertical waste on the bottom edge of the texture. + + + + format of the foreign texture. + + + + + + Creates a new #CoglTexture with the specified dimensions and pixel format. + Use specific constructors such as + cogl_texture_2d_new_with_size() + + + A newly created #CoglTexture or %NULL on failure + + + + + width of texture in pixels. + + + + height of texture in pixels. + + + + Optional flags for the texture, or %COGL_TEXTURE_NONE + + + + the #CoglPixelFormat to use for the GPU storage of the + texture. + + + + + + Explicitly allocates the storage for the given @texture which +allows you to be sure that there is enough memory for the +texture and if not then the error can be handled gracefully. + +<note>Normally applications don't need to use this api directly +since the texture will be implicitly allocated when data is set on +the texture, or if the texture is attached to a #CoglOffscreen +framebuffer and rendered too.</note> + + + %TRUE if the texture was successfully allocated, + otherwise %FALSE and @error will be updated if it + wasn't %NULL. + + + + + A #CoglTexture + + + + + + Queries what components the given @texture stores internally as set +via cogl_texture_set_components(). + +For textures created by the ‘_with_size’ constructors the default +is %COGL_TEXTURE_COMPONENTS_RGBA. The other constructors which take +a %CoglBitmap or a data pointer default to the same components as +the pixel format of the data. + + + + + + + a #CoglTexture pointer. + + + + + + Copies the pixel data from a cogl texture to system memory. + +<note>Don't pass the value of cogl_texture_get_rowstride() as the +@rowstride argument, the rowstride should be the rowstride you +want for the destination @data buffer not the rowstride of the +source texture</note> + + + the size of the texture data in bytes + + + + + a #CoglTexture pointer. + + + + the #CoglPixelFormat to store the texture as. + + + + the rowstride of @data in bytes or pass 0 to calculate + from the bytes-per-pixel of @format multiplied by the + @texture width. + + + + memory location to write the @texture's contents, or %NULL +to only query the data size through the return value. + + + + + + Queries the GL handles for a GPU side texture through its #CoglTexture. + +If the texture is spliced the data for the first sub texture will be +queried. + + + %TRUE if the handle was successfully retrieved, %FALSE + if the handle was invalid + + + + + a #CoglTexture pointer. + + + + pointer to return location for the + textures GL handle, or %NULL. + + + + pointer to return location for the + GL target type, or %NULL. + + + + + + Queries the height of a cogl texture. + + + the height of the GPU side texture in pixels + + + + + a #CoglTexture pointer. + + + + + + Queries the maximum wasted (unused) pixels in one dimension of a GPU side +texture. + + + the maximum waste + + + + + a #CoglTexture pointer. + + + + + + Queries the pre-multiplied alpha status for internally stored red, +green and blue components for the given @texture as set by +cogl_texture_set_premultiplied(). + +By default the pre-multipled state is @TRUE. + + + %TRUE if red, green and blue components are + internally stored pre-multiplied by the alpha + value or %FALSE if not. + + + + + a #CoglTexture pointer. + + + + + + Queries the width of a cogl texture. + + + the width of the GPU side texture in pixels + + + + + a #CoglTexture pointer. + + + + + + + + + + + + + + + + + Queries if a texture is sliced (stored as multiple GPU side tecture +objects). + + + %TRUE if the texture is sliced, %FALSE if the texture + is stored as a single GPU texture + + + + + a #CoglTexture pointer. + + + + + + Creates a new texture which represents a subregion of another +texture. The GL resources will be shared so that no new texture +data is actually allocated. + +Sub textures have undefined behaviour texture coordinates outside +of the range [0,1] are used. They also do not work with +CoglVertexBuffers. + +The sub texture will keep a reference to the full texture so you do +not need to keep one separately if you only want to use the sub +texture. + Use cogl_sub_texture_new() + + + A newly created #CoglTexture or + %NULL on failure + + + + + a #CoglTexture pointer + + + + X coordinate of the top-left of the subregion + + + + Y coordinate of the top-left of the subregion + + + + Width in pixels of the subregion + + + + Height in pixels of the subregion + + + + + + Affects the internal storage format for this texture by specifying +what components will be required for sampling later. + +This api affects how data is uploaded to the GPU since unused +components can potentially be discarded from source data. + +For textures created by the ‘_with_size’ constructors the default +is %COGL_TEXTURE_COMPONENTS_RGBA. The other constructors which take +a %CoglBitmap or a data pointer default to the same components as +the pixel format of the data. + +Note that the %COGL_TEXTURE_COMPONENTS_RG format is not available +on all drivers. The availability can be determined by checking for +the %COGL_FEATURE_ID_TEXTURE_RG feature. If this format is used on +a driver where it is not available then %COGL_TEXTURE_ERROR_FORMAT +will be raised when the texture is allocated. Even if the feature +is not available then %COGL_PIXEL_FORMAT_RG_88 can still be used as +an image format as long as %COGL_TEXTURE_COMPONENTS_RG isn't used +as the texture's components. + + + + + + + a #CoglTexture pointer. + + + + + + + + + @texture a #CoglTexture. +Sets all the pixels for a given mipmap @level by copying the pixel +data pointed to by the @data argument into the given @texture. + +@data should point to the first pixel to copy corresponding +to the top left of the mipmap @level being set. + +If @rowstride equals 0 then it will be automatically calculated +from the width of the mipmap level and the bytes-per-pixel for the +given @format. + +A mipmap @level of 0 corresponds to the largest, base image of a +texture and @level 1 is half the width and height of level 0. If +dividing any dimension of the previous level by two results in a +fraction then round the number down (floor()), but clamp to 1 +something like this: + +|[ + next_width = MAX (1, floor (prev_width)); +]| + +You can determine the number of mipmap levels for a given texture +like this: + +|[ + n_levels = 1 + floor (log2 (max_dimension)); +]| + +Where %max_dimension is the larger of cogl_texture_get_width() and +cogl_texture_get_height(). + +It is an error to pass a @level number >= the number of levels that +@texture can have according to the above calculation. + +<note>Since the storage for a #CoglTexture is allocated lazily then +if the given @texture has not previously been allocated then this +api can return %FALSE and throw an exceptional @error if there is +not enough memory to allocate storage for @texture.</note> + + + %TRUE if the data upload was successful, and + %FALSE otherwise + + + + + + + + the #CoglPixelFormat used in the source @data buffer. + + + + rowstride of the source @data buffer (computed from + the texture width and @format if it equals 0) + + + + the source data, pointing to the first top-left pixel to set + + + + The mipmap level to update (Normally 0 for the largest, + base texture) + + + + + + Affects the internal storage format for this texture by specifying +whether red, green and blue color components should be stored as +pre-multiplied alpha values. + +This api affects how data is uploaded to the GPU since Cogl will +convert source data to have premultiplied or unpremultiplied +components according to this state. + +For example if you create a texture via +cogl_texture_2d_new_with_size() and then upload data via +cogl_texture_set_data() passing a source format of +%COGL_PIXEL_FORMAT_RGBA_8888 then Cogl will internally multiply the +red, green and blue components of the source data by the alpha +component, for each pixel so that the internally stored data has +pre-multiplied alpha components. If you instead upload data that +already has pre-multiplied components by passing +%COGL_PIXEL_FORMAT_RGBA_8888_PRE as the source format to +cogl_texture_set_data() then the data can be uploaded without being +converted. + +By default the @premultipled state is @TRUE. + + + + + + + a #CoglTexture pointer. + + + + Whether any internally stored red, green or blue + components are pre-multiplied by an alpha + component. + + + + + + Sets the pixels in a rectangular subregion of @texture from an in-memory +buffer containing pixel data. + +<note>The region set can't be larger than the source @data</note> + + + %TRUE if the subregion upload was successful, and + %FALSE otherwise + + + + + a #CoglTexture. + + + + upper left coordinate to use from source data. + + + + upper left coordinate to use from source data. + + + + upper left destination horizontal coordinate. + + + + upper left destination vertical coordinate. + + + + width of destination region to write. (Must be less + than or equal to @width) + + + + height of destination region to write. (Must be less + than or equal to @height) + + + + width of source data buffer. + + + + height of source data buffer. + + + + the #CoglPixelFormat used in the source buffer. + + + + rowstride of source buffer (computed from width if none +specified) + + + + the actual pixel data. + + + + + + Copies a specified source region from @bitmap to the position +(@src_x, @src_y) of the given destination texture @handle. + +<note>The region updated can't be larger than the source +bitmap</note> + + + %TRUE if the subregion upload was successful, and + %FALSE otherwise + + + + + a #CoglTexture pointer + + + + upper left coordinate to use from the source bitmap. + + + + upper left coordinate to use from the source bitmap + + + + upper left destination horizontal coordinate. + + + + upper left destination vertical coordinate. + + + + width of destination region to write. (Must be less + than or equal to the bitmap width) + + + + height of destination region to write. (Must be less + than or equal to the bitmap height) + + + + The source bitmap to read from + + + + + + + + + Creates a low-level #CoglTexture2D texture based on data residing +in a #CoglBitmap. + +The storage for the texture is not allocated before this function +returns. You can call cogl_texture_allocate() to explicitly +allocate the underlying storage or preferably let Cogl +automatically allocate storage lazily when it may know more about +how the texture is being used and can optimize how it is allocated. + +The texture is still configurable until it has been allocated so +for example you can influence the internal format of the texture +using cogl_texture_set_components() and +cogl_texture_set_premultiplied(). + +<note>Many GPUs only support power of two sizes for #CoglTexture2D +textures. You can check support for non power of two textures by +checking for the %COGL_FEATURE_ID_TEXTURE_NPOT feature via +cogl_has_feature().</note> + + + A newly allocated #CoglTexture2D + + + + + A #CoglBitmap + + + + + + Creates a low-level #CoglTexture2D texture based on data residing +in memory. + +<note>This api will always immediately allocate GPU memory for the +texture and upload the given data so that the @data pointer does +not need to remain valid once this function returns. This means it +is not possible to configure the texture before it is allocated. If +you do need to configure the texture before allocation (to specify +constraints on the internal format for example) then you can +instead create a #CoglBitmap for your data and use +cogl_texture_2d_new_from_bitmap() or use +cogl_texture_2d_new_with_size() and then upload data using +cogl_texture_set_data()</note> + +<note>Many GPUs only support power of two sizes for #CoglTexture2D +textures. You can check support for non power of two textures by +checking for the %COGL_FEATURE_ID_TEXTURE_NPOT feature via +cogl_has_feature().</note> + + + A newly allocated #CoglTexture2D, or if + the size is not supported (because it is too large or a + non-power-of-two size that the hardware doesn't support) + it will return %NULL and set @error. + + + + + A #CoglContext + + + + width of texture in pixels + + + + height of texture in pixels + + + + the #CoglPixelFormat the buffer is stored in in RAM + + + + the memory offset in bytes between the starts of + scanlines in @data. A value of 0 will make Cogl automatically + calculate @rowstride from @width and @format. + + + + pointer the memory region where the source buffer resides + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a low-level #CoglTexture2D texture from an image file. + +The storage for the texture is not allocated before this function +returns. You can call cogl_texture_allocate() to explicitly +allocate the underlying storage or preferably let Cogl +automatically allocate storage lazily when it may know more about +how the texture is being used and can optimize how it is allocated. + +The texture is still configurable until it has been allocated so +for example you can influence the internal format of the texture +using cogl_texture_set_components() and +cogl_texture_set_premultiplied(). + +<note>Many GPUs only support power of two sizes for #CoglTexture2D +textures. You can check support for non power of two textures by +checking for the %COGL_FEATURE_ID_TEXTURE_NPOT feature via +cogl_has_feature().</note> + + + A newly created #CoglTexture2D or %NULL on failure + and @error will be updated. + + + + + A #CoglContext + + + + the file to load + + + + + + Creates a low-level #CoglTexture2D texture with a given @width and +@height that your GPU can texture from directly. + +The storage for the texture is not allocated before this function +returns. You can call cogl_texture_allocate() to explicitly +allocate the underlying storage or preferably let Cogl +automatically allocate storage lazily when it may know more about +how the texture is being used and can optimize how it is allocated. + +The texture is still configurable until it has been allocated so +for example you can influence the internal format of the texture +using cogl_texture_set_components() and +cogl_texture_set_premultiplied(). + +<note>Many GPUs only support power of two sizes for #CoglTexture2D +textures. You can check support for non power of two textures by +checking for the %COGL_FEATURE_ID_TEXTURE_NPOT feature via +cogl_has_feature().</note> + + + A new #CoglTexture2D object with no storage yet allocated. + + + + + A #CoglContext + + + + Width of the texture to allocate + + + + Height of the texture to allocate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a new #CoglTexture2DSliced texture based on data residing +in a bitmap. + +A #CoglTexture2DSliced may internally be comprised of 1 or more +#CoglTexture2D textures depending on GPU limitations. For example +if the GPU only supports power-of-two sized textures then a sliced +texture will turn a non-power-of-two size into a combination of +smaller power-of-two sized textures. If the requested texture size +is larger than is supported by the hardware then the texture will +be sliced into smaller textures that can be accessed by the +hardware. + +@max_waste is used as a threshold for recursively slicing the +right-most or bottom-most slices into smaller sizes until the +wasted padding at the bottom and right of the textures is less than +specified. A negative @max_waste will disable slicing. + +The storage for the texture is not allocated before this function +returns. You can call cogl_texture_allocate() to explicitly +allocate the underlying storage or let Cogl automatically allocate +storage lazily. + +<note>It's possible for the allocation of a sliced texture to fail +later due to impossible slicing constraints if a negative +@max_waste value is given. If the given virtual texture size is +larger than is supported by the hardware but slicing is disabled +the texture size would be too large to handle.</note> + + + A newly created #CoglTexture2DSliced + or %NULL on failure and @error will be updated. + + + + + A #CoglBitmap + + + + The threshold of how wide a strip of wasted texels + are allowed along the right and bottom textures before + they must be sliced to reduce the amount of waste. A + negative can be passed to disable slicing. + + + + + + Creates a new #CoglTexture2DSliced texture based on data residing +in memory. + +A #CoglTexture2DSliced may internally be comprised of 1 or more +#CoglTexture2D textures depending on GPU limitations. For example +if the GPU only supports power-of-two sized textures then a sliced +texture will turn a non-power-of-two size into a combination of +smaller power-of-two sized textures. If the requested texture size +is larger than is supported by the hardware then the texture will +be sliced into smaller textures that can be accessed by the +hardware. + +@max_waste is used as a threshold for recursively slicing the +right-most or bottom-most slices into smaller sizes until the +wasted padding at the bottom and right of the textures is less than +specified. A negative @max_waste will disable slicing. + +<note>This api will always immediately allocate GPU memory for all +the required texture slices and upload the given data so that the +@data pointer does not need to remain valid once this function +returns. This means it is not possible to configure the texture +before it is allocated. If you do need to configure the texture +before allocation (to specify constraints on the internal format +for example) then you can instead create a #CoglBitmap for your +data and use cogl_texture_2d_sliced_new_from_bitmap() or use +cogl_texture_2d_sliced_new_with_size() and then upload data using +cogl_texture_set_data()</note> + +<note>It's possible for the allocation of a sliced texture to fail +due to impossible slicing constraints if a negative @max_waste +value is given. If the given virtual texture size is larger than is +supported by the hardware but slicing is disabled the texture size +would be too large to handle.</note> + + + A newly created #CoglTexture2DSliced + or %NULL on failure and @error will be updated. + + + + + A #CoglContext + + + + width of texture in pixels + + + + height of texture in pixels + + + + The threshold of how wide a strip of wasted texels + are allowed along the right and bottom textures before + they must be sliced to reduce the amount of waste. A + negative can be passed to disable slicing. + + + + the #CoglPixelFormat the buffer is stored in in RAM + + + + the memory offset in bytes between the start of each + row in @data. A value of 0 will make Cogl automatically + calculate @rowstride from @width and @format. + + + + pointer the memory region where the source buffer resides + + + + + + Creates a #CoglTexture2DSliced from an image file. + +A #CoglTexture2DSliced may internally be comprised of 1 or more +#CoglTexture2D textures depending on GPU limitations. For example +if the GPU only supports power-of-two sized textures then a sliced +texture will turn a non-power-of-two size into a combination of +smaller power-of-two sized textures. If the requested texture size +is larger than is supported by the hardware then the texture will +be sliced into smaller textures that can be accessed by the +hardware. + +@max_waste is used as a threshold for recursively slicing the +right-most or bottom-most slices into smaller sizes until the +wasted padding at the bottom and right of the textures is less than +specified. A negative @max_waste will disable slicing. + +The storage for the texture is not allocated before this function +returns. You can call cogl_texture_allocate() to explicitly +allocate the underlying storage or let Cogl automatically allocate +storage lazily. + +<note>It's possible for the allocation of a sliced texture to fail +later due to impossible slicing constraints if a negative +@max_waste value is given. If the given virtual texture size is +larger than is supported by the hardware but slicing is disabled +the texture size would be too large to handle.</note> + + + A newly created #CoglTexture2DSliced + or %NULL on failure and @error will be updated. + + + + + A #CoglContext + + + + the file to load + + + + The threshold of how wide a strip of wasted texels + are allowed along the right and bottom textures before + they must be sliced to reduce the amount of waste. A + negative can be passed to disable slicing. + + + + + + Creates a #CoglTexture2DSliced that may internally be comprised of +1 or more #CoglTexture2D textures depending on GPU limitations. +For example if the GPU only supports power-of-two sized textures +then a sliced texture will turn a non-power-of-two size into a +combination of smaller power-of-two sized textures. If the +requested texture size is larger than is supported by the hardware +then the texture will be sliced into smaller textures that can be +accessed by the hardware. + +@max_waste is used as a threshold for recursively slicing the +right-most or bottom-most slices into smaller sizes until the +wasted padding at the bottom and right of the textures is less than +specified. A negative @max_waste will disable slicing. + +The storage for the texture is not allocated before this function +returns. You can call cogl_texture_allocate() to explicitly +allocate the underlying storage or let Cogl automatically allocate +storage lazily. + +<note>It's possible for the allocation of a sliced texture to fail +later due to impossible slicing constraints if a negative +@max_waste value is given. If the given virtual texture size size +is larger than is supported by the hardware but slicing is disabled +the texture size would be too large to handle.</note> + + + A new #CoglTexture2DSliced object with no storage + allocated yet. + + + + + A #CoglContext + + + + The virtual width of your sliced texture. + + + + The virtual height of your sliced texture. + + + + The threshold of how wide a strip of wasted texels + are allowed along the right and bottom textures before + they must be sliced to reduce the amount of waste. A + negative can be passed to disable slicing. + + + + + + + See cogl_texture_set_components(). + + + Only the alpha component + + + Red and green components. Note that + this can only be used if the %COGL_FEATURE_ID_TEXTURE_RG feature + is advertised. + + + Red, green and blue components + + + Red, green, blue and alpha components + + + Only a depth component + + + + Error codes that can be thrown when allocating textures. + + + Unsupported size + + + Unsupported format + + + + + A primitive texture type that is + unsupported by the driver was used + + + + Flags to pass to the cogl_texture_new_* family of functions. + + + No flags specified + + + Disables the automatic generation of + the mipmap pyramid from the base level image whenever it is + updated. The mipmaps are only generated when the texture is + rendered with a mipmap filter so it should be free to leave out + this flag when using other filtering modes + + + Disables the slicing of the texture + + + Disables the insertion of the texture inside + the texture atlas used by Cogl + + + + Constants representing the underlying hardware texture type of a +#CoglTexture. + + + A #CoglTexture2D + + + A #CoglTexture3D + + + A #CoglTextureRectangle + + + + Used to specify vertex information when calling cogl_polygon() + + + Model x-coordinate + + + + Model y-coordinate + + + + Model z-coordinate + + + + Texture x-coordinate + + + + Texture y-coordinate + + + + The color to use at this vertex. This is ignored if + use_color is %FALSE when calling cogl_polygon() + + + + + A #CoglUserDataKey is used to declare a key for attaching data to a +#CoglObject using cogl_object_set_user_data. The typedef only exists as a +formality to make code self documenting since only the unique address of a +#CoglUserDataKey is used. + +Typically you would declare a static #CoglUserDataKey and set private data +on an object something like this: + +|[ +static CoglUserDataKey path_private_key; + +static void +destroy_path_private_cb (void *data) +{ + g_free (data); +} + +static void +my_path_set_data (CoglPath *path, void *data) +{ + cogl_object_set_user_data (COGL_OBJECT (path), + &private_key, + data, + destroy_path_private_cb); +} +]| + + + ignored. + + + + + Different ways of interpreting vertices when drawing. + + + FIXME, equivalent to +<constant>GL_POINTS</constant> + + + FIXME, equivalent to <constant>GL_LINES</constant> + + + FIXME, equivalent to +<constant>GL_LINE_LOOP</constant> + + + FIXME, equivalent to +<constant>GL_LINE_STRIP</constant> + + + FIXME, equivalent to +<constant>GL_TRIANGLES</constant> + + + FIXME, equivalent to +<constant>GL_TRIANGLE_STRIP</constant> + + + FIXME, equivalent to <constant>GL_TRIANGLE_FAN</constant> + + + + Enum used to represent the two directions of rotation. This can be +used to set the front face for culling by calling +cogl_pipeline_set_front_face_winding(). + + + Vertices are in a clockwise order + + + Vertices are in a counter-clockwise order + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + We do not advise nor reliably support the interleaving of raw GL drawing and +Cogl drawing functions, but if you insist, cogl_begin_gl() and cogl_end_gl() +provide a simple mechanism that may at least give you a fighting chance of +succeeding. + +Note: this doesn't help you modify the behaviour of Cogl drawing functions +through the modification of GL state; that will never be reliably supported, +but if you are trying to do something like: + +|[ +{ + - setup some OpenGL state. + - draw using OpenGL (e.g. glDrawArrays() ) + - reset modified OpenGL state. + - continue using Cogl to draw +} +]| + +You should surround blocks of drawing using raw GL with cogl_begin_gl() +and cogl_end_gl(): + +|[ +{ + cogl_begin_gl (); + - setup some OpenGL state. + - draw using OpenGL (e.g. glDrawArrays() ) + - reset modified OpenGL state. + cogl_end_gl (); + - continue using Cogl to draw +} +]| + +Don't ever try and do: + +|[ +{ + - setup some OpenGL state. + - use Cogl to draw + - reset modified OpenGL state. +} +]| + +When the internals of Cogl evolves, this is very liable to break. + +This function will flush all batched primitives, and subsequently flush +all internal Cogl state to OpenGL as if it were going to draw something +itself. + +The result is that the OpenGL modelview matrix will be setup; the state +corresponding to the current source material will be set up and other world +state such as backface culling, depth and fogging enabledness will be sent +to OpenGL. + +<note>No special material state is flushed, so if you want Cogl to setup a +simplified material state it is your responsibility to set a simple source +material before calling cogl_begin_gl(). E.g. by calling +cogl_set_source_color4ub().</note> + +<note>It is your responsibility to restore any OpenGL state that you modify +to how it was after calling cogl_begin_gl() if you don't do this then the +result of further Cogl calls is undefined.</note> + +<note>You can not nest begin/end blocks.</note> + +Again we would like to stress, we do not advise the use of this API and if +possible we would prefer to improve Cogl than have developers require raw +OpenGL. + Use the #CoglGLES2Context api instead + + + + + + + + + + + + + Check whether @name occurs in list of extensions in @ext. + OpenGL is an implementation detail for Cogl and so it's + not appropriate to expose OpenGL extensions through the Cogl API. This + function can be replaced by the following equivalent code: +|[ + gboolean retval = (strstr (ext, name) != NULL) ? TRUE : FALSE; +]| + + + %TRUE if the extension occurs in the list, %FALSE otherwise. + + + + + extension to check for + + + + list of extensions + + + + + + Clears all the auxiliary buffers identified in the @buffers mask, and if +that includes the color buffer then the specified @color is used. + Use cogl_framebuffer_clear() api instead + + + + + + + Background color to clear to + + + + A mask of #CoglBufferBit<!-- -->'s identifying which auxiliary + buffers to clear + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Compares two #CoglColor<!-- -->s and checks if they are the same. + +This function can be passed to g_hash_table_new() as the @key_equal_func +parameter, when using #CoglColor<!-- -->s as keys in a #GHashTable. + + + %TRUE if the two colors are the same. + + + + + a #CoglColor + + + + a #CoglColor + + + + + + Converts a color expressed in HLS (hue, luminance and saturation) +values into a #CoglColor. + + + + + + + return location for a #CoglColor + + + + hue value, in the 0 .. 360 range + + + + saturation value, in the 0 .. 1 range + + + + luminance value, in the 0 .. 1 range + + + + + + Create a new cogl program object that can be used to replace parts of the GL +rendering pipeline with custom code. + Use #CoglSnippet api + + + a new cogl program. + + + + + Create a new shader handle, use cogl_shader_source() to set the +source code to be used on it. + Use #CoglSnippet api + + + a new shader handle. + + + + + COGL_SHADER_TYPE_VERTEX or COGL_SHADER_TYPE_FRAGMENT. + + + + + + Prints the contents of a #CoglMatrix to stdout. + + + + + + + A #CoglMatrix + + + + + + Invokes @func once for each type of object that Cogl uses and +passes a count of the number of objects for that type. This is +intended to be used solely for debugging purposes to track down +issues with objects leaking. + + + + + + + A callback function for each type + + + + A pointer to pass to @func + + + + + + Prints a list of all the object types that Cogl uses along with the +number of objects of that type that are currently in use. This is +intended to be used solely for debugging purposes to track down +issues with objects leaking. + + + + + + + This function disables fogging, so primitives drawn afterwards will not be +blended with any previously set fog color. + Use #CoglSnippet shader api for fog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This is the counterpart to cogl_begin_gl() used to delimit blocks of drawing +code using raw OpenGL. Please refer to cogl_begin_gl() for full details. + Use the #CoglGLES2Context api instead + + + + + + + Checks whether the given COGL features are available. Multiple +features can be checked for by or-ing them together with the '|' +operator. %TRUE is only returned if all of the requested features +are available. + Use cogl_has_feature() instead + + + %TRUE if the features are available, %FALSE otherwise. + + + + + A bitmask of features to check for + + + + + + This function should only need to be called in exceptional circumstances. + +As an optimization Cogl drawing functions may batch up primitives +internally, so if you are trying to use raw GL outside of Cogl you stand a +better chance of being successful if you ask Cogl to flush any batched +geometry before making your state changes. + +It only ensure that the underlying driver is issued all the commands +necessary to draw the batched primitives. It provides no guarantees about +when the driver will complete the rendering. + +This provides no guarantees about the GL state upon returning and to avoid +confusing Cogl you should aim to restore any changes you make before +resuming use of Cogl. + +If you are making state changes with the intention of affecting Cogl drawing +primitives you are 100% on your own since you stand a good chance of +conflicting with Cogl internals. For example clutter-gst which currently +uses direct GL calls to bind ARBfp programs will very likely break when Cogl +starts to use ARBfb programs itself for the material API. + + + + + + + + + + + + + Replaces the current projection matrix with a perspective matrix +for a given viewing frustum defined by 4 side clip planes that +all cross through the origin and 2 near and far clip planes. + Use cogl_framebuffer_frustum() instead + + + + + + + X position of the left clipping plane where it + intersects the near clipping plane + + + + X position of the right clipping plane where it + intersects the near clipping plane + + + + Y position of the bottom clipping plane where it + intersects the near clipping plane + + + + Y position of the top clipping plane where it intersects + the near clipping plane + + + + The distance to the near clipping plane (Must be positive) + + + + The distance to the far clipping plane (Must be positive) + + + + + + Queries if backface culling has been enabled via +cogl_set_backface_culling_enabled() + Use cogl_pipeline_get_cull_face_mode() instead + + + %TRUE if backface culling is enabled, and %FALSE otherwise + + + + + Gets the number of bitplanes used for each of the color components +in the color buffer. Pass %NULL for any of the arguments if the +value is not required. + Use cogl_framebuffer_get_red/green/blue/alpha_bits() + instead + + + + + + + Return location for the number of red bits or %NULL + + + + Return location for the number of green bits or %NULL + + + + Return location for the number of blue bits or %NULL + + + + Return location for the number of alpha bits or %NULL + + + + + + Queries if depth testing has been enabled via cogl_set_depth_test_enable() + Use cogl_pipeline_set_depth_state() instead + + + %TRUE if depth testing is enabled, and %FALSE otherwise + + + + + Gets the current #CoglFramebuffer as set using +cogl_push_framebuffer() + + + The current #CoglFramebuffer + + + + + Returns all of the features supported by COGL. + Use cogl_foreach_feature() instead + + + A logical OR of all the supported COGL features. + + + + + Stores the current model-view matrix in @matrix. + Use cogl_framebuffer_get_modelview_matrix() + instead + + + + + + + return location for the model-view matrix + + + + + + Retrieves the #GOptionGroup used by Cogl to parse the command +line options. Clutter uses this to handle the Cogl command line +options during its initialization process. + Not replaced + + + a #GOptionGroup + + + + + Gets a pointer to a given GL or GL ES extension function. This acts +as a wrapper around glXGetProcAddress() or whatever is the +appropriate function for the current backend. + +<note>This function should not be used to query core opengl API +symbols since eglGetProcAddress for example doesn't allow this and +and may return a junk pointer if you do.</note> + + + a pointer to the requested function or %NULL if the + function is not available. + + + + + the name of the function. + + + + + + Stores the current projection matrix in @matrix. + Use cogl_framebuffer_get_projection_matrix() + instead + + + + + + + return location for the projection matrix + + + + + + Returns the current source material as previously set using +cogl_set_source(). + +<note>You should typically consider the returned material immutable +and not try to change any of its properties unless you own a +reference to that material. At times you may be able to get a +reference to an internally managed materials and the result of +modifying such materials is undefined.</note> + Latest drawing apis all take an explicit + #CoglPipeline argument so this stack of + #CoglMaterial<!-- -->s shouldn't be used. + + + The current source material. + + + + + Stores the current viewport in @v. @v[0] and @v[1] get the x and y +position of the viewport and @v[2] and @v[3] get the width and +height. + Use cogl_framebuffer_get_viewport4fv() + instead + + + + + + + pointer to a 4 element array + of #float<!-- -->s to receive the viewport dimensions. + + + + + + + + Use cogl_matrix_get_gtype() instead. + + + the GType for the registered "CoglMatrix" boxed type. This +can be used for example to define GObject properties that accept a +#CoglMatrix value. + + + + + + + + + + + Increases the reference count of @handle by 1 + + + the handle, with its reference count increased + + + + + a #CoglHandle + + + + + + Drecreases the reference count of @handle by 1; if the reference +count reaches 0, the resources allocated by @handle will be freed + + + + + + + a #CoglHandle + + + + + + Checks whether @object is a #CoglBitmap + + + %TRUE if the passed @object represents a bitmap, + and %FALSE otherwise + + + + + a #CoglObject pointer + + + + + + Gets whether the given object references a #CoglFramebuffer. + + + %TRUE if the object references a #CoglFramebuffer + and %FALSE otherwise. + + + + + A #CoglObject pointer + + + + + + Gets whether the given handle references an existing material object. + Use cogl_is_pipeline() instead + + + %TRUE if the handle references a #CoglMaterial, + %FALSE otherwise + + + + + A CoglHandle + + + + + + Determines whether the given #CoglObject references an offscreen +framebuffer object. + + + %TRUE if @object is a #CoglOffscreen framebuffer, + %FALSE otherwise + + + + + A pointer to a #CoglObject + + + + + + Gets whether the given object references a #CoglOnscreen. + + + %TRUE if the object references a #CoglOnscreen + and %FALSE otherwise. + + + + + A #CoglObject pointer + + + + + + Gets whether the given @object references an existing pipeline object. + + + %TRUE if the @object references a #CoglPipeline, + %FALSE otherwise + + + + + A #CoglObject + + + + + + Gets whether the given handle references an existing program object. + Use #CoglSnippet api + + + %TRUE if the handle references a program, + %FALSE otherwise + + + + + A CoglHandle + + + + + + Gets whether the given handle references an existing shader object. + Use #CoglSnippet api + + + %TRUE if the handle references a shader, + %FALSE otherwise + + + + + A CoglHandle + + + + + + Gets whether the given object references a texture object. + + + %TRUE if the @object references a texture, and + %FALSE otherwise + + + + + A #CoglObject pointer + + + + + + Gets whether the given object references an existing #CoglTexture2D +object. + + + %TRUE if the object references a #CoglTexture2D, + %FALSE otherwise + + + + + A #CoglObject + + + + + + Gets whether the given object references a #CoglTexture2DSliced. + + + %TRUE if the object references a #CoglTexture2DSliced + and %FALSE otherwise. + + + + + A #CoglObject pointer + + + + + + Checks whether @handle is a Vertex Buffer Object + Use the #CoglPrimitive api instead + + + %TRUE if the handle is a VBO, and %FALSE + otherwise + + + + + a #CoglHandle for a vertex buffer object + + + + + + Checks whether @handle is a handle to the indices for a vertex +buffer object + Use the #CoglPrimitive api instead + + + %TRUE if the handle is indices, and %FALSE + otherwise + + + + + a #CoglHandle + + + + + + Increment the reference count for a #CoglMaterial. + Use cogl_object_ref() instead + + + the @material. + + + + + a #CoglMaterial object. + + + + + + Decrement the reference count for a #CoglMaterial. + Use cogl_object_unref() instead + + + + + + + a #CoglMaterial object. + + + + + + Compares two matrices to see if they represent the same +transformation. Although internally the matrices may have different +annotations associated with them and may potentially have a cached +inverse matrix these are not considered in the comparison. + + + + + + + A 4x4 transformation matrix + + + + A 4x4 transformation matrix + + + + + + Replaces the current projection matrix with an orthographic projection +matrix. See <xref linkend="cogl-ortho-matrix"/> to see how the matrix is +calculated. + +<figure id="cogl-ortho-matrix"> + <title></title> + <graphic fileref="cogl_ortho.png" format="PNG"/> +</figure> + +<note>This function copies the arguments from OpenGL's glOrtho() even +though they are unnecessarily confusing due to the z near and z far +arguments actually being a "distance" from the origin, where +negative values are behind the viewer, instead of coordinates for +the z clipping planes which would have been consistent with the +left, right bottom and top arguments.</note> + Use cogl_framebuffer_orthographic() instead + + + + + + + The coordinate for the left clipping plane + + + + The coordinate for the right clipping plane + + + + The coordinate for the bottom clipping plane + + + + The coordinate for the top clipping plane + + + + The <emphasis>distance</emphasis> to the near clipping + plane (negative if the plane is behind the viewer) + + + + The <emphasis>distance</emphasis> for the far clipping + plane (negative if the plane is behind the viewer) + + + + + + Replaces the current projection matrix with a perspective matrix +based on the provided values. + +<note>You should be careful not to have to great a @z_far / @z_near +ratio since that will reduce the effectiveness of depth testing +since there wont be enough precision to identify the depth of +objects near to each other.</note> + Use cogl_framebuffer_perspective() instead + + + + + + + Vertical field of view angle in degrees. + + + + The (width over height) aspect ratio for display + + + + The distance to the near clipping plane (Must be positive) + + + + The distance to the far clipping plane (Must be positive) + + + + + + Draws a convex polygon using the current source material to fill / texture +with according to the texture coordinates passed. + +If @use_color is %TRUE then the color will be changed for each vertex using +the value specified in the color member of #CoglTextureVertex. This can be +used for example to make the texture fade out by setting the alpha value of +the color. + +All of the texture coordinates must be in the range [0,1] and repeating the +texture is not supported. + +Because of the way this function is implemented it will currently +only work if either the texture is not sliced or the backend is not +OpenGL ES and the minifying and magnifying functions are both set +to COGL_MATERIAL_FILTER_NEAREST. + + + + + + + An array of #CoglTextureVertex structs + + + + The length of the vertices array + + + + %TRUE if the color member of #CoglTextureVertex should be used + + + + + + Restores the current model-view matrix from the matrix stack. + Use cogl_framebuffer_pop_matrix() instead + + + + + + + Removes the material at the top of the source stack. The material +at the top of this stack defines the GPU state used to process +later primitives as defined by cogl_set_source(). + Latest drawing apis all take an explicit + #CoglPipeline argument so this stack of + #CoglMaterial<!-- -->s shouldn't be used. + + + + + + + Attaches a shader to a program object. A program can have multiple +vertex or fragment shaders but only one of them may provide a +main() function. It is allowed to use a program with only a vertex +shader or only a fragment shader. + Use #CoglSnippet api + + + + + + + a #CoglHandle for a shdaer program. + + + + a #CoglHandle for a vertex of fragment shader. + + + + + + Retrieve the location (offset) of a uniform variable in a shader program, +a uniform is a variable that is constant for all vertices/fragments for a +shader object and is possible to modify as an external parameter. + Use #CoglSnippet api instead + + + the offset of a uniform in a specified program. + This uniform can be set using cogl_program_uniform_1f() when the + program is in use. + + + + + a #CoglHandle for a shader program. + + + + the name of a uniform. + + + + + + Links a program making it ready for use. Note that calling this +function is optional. If it is not called the program will +automatically be linked the first time it is used. + Use #CoglSnippet api + + + + + + + a #CoglHandle for a shader program. + + + + + + Add an extra reference to a program. + Please use cogl_object_ref() instead. + + + @handle + + + + + A #CoglHandle to a program. + + + + + + Changes the value of a floating point uniform for the given linked +@program. + Use #CoglSnippet api instead + + + + + + + A #CoglHandle for a linked program + + + + the uniform location retrieved from + cogl_program_get_uniform_location(). + + + + the new value of the uniform. + + + + + + Changes the value of an integer uniform for the given linked +@program. + Use #CoglSnippet api instead + + + + + + + A #CoglHandle for a linked program + + + + the uniform location retrieved from + cogl_program_get_uniform_location(). + + + + the new value of the uniform. + + + + + + Changes the value of a float vector uniform, or uniform array for +the given linked @program. + Use #CoglSnippet api instead + + + + + + + A #CoglHandle for a linked program + + + + the uniform location retrieved from + cogl_program_get_uniform_location(). + + + + The number of components for the uniform. For +example with glsl you'd use 3 for a vec3 or 4 for a vec4. + + + + For uniform arrays this is the array length otherwise just +pass 1 + + + + the new value of the uniform[s]. + + + + + + + + Changes the value of a int vector uniform, or uniform array for +the given linked @program. + Use #CoglSnippet api instead + + + + + + + A #CoglHandle for a linked program + + + + the uniform location retrieved from + cogl_program_get_uniform_location(). + + + + The number of components for the uniform. For +example with glsl you'd use 3 for a vec3 or 4 for a vec4. + + + + For uniform arrays this is the array length otherwise just +pass 1 + + + + the new value of the uniform[s]. + + + + + + + + Changes the value of a matrix uniform, or uniform array in the +given linked @program. + Use #CoglSnippet api instead + + + + + + + A #CoglHandle for a linked program + + + + the uniform location retrieved from + cogl_program_get_uniform_location(). + + + + The dimensions of the matrix. So for for example pass + 2 for a 2x2 matrix or 3 for 3x3. + + + + For uniform arrays this is the array length otherwise just +pass 1 + + + + Whether to transpose the matrix when setting the uniform. + + + + the new value of the uniform. + + + + + + + + Changes the value of a floating point uniform in the currently +used (see cogl_program_use()) shader program. + Use #CoglSnippet api + + + + + + + the uniform to set. + + + + the new value of the uniform. + + + + + + Changes the value of an integer uniform in the currently +used (see cogl_program_use()) shader program. + Use #CoglSnippet api + + + + + + + the uniform to set. + + + + the new value of the uniform. + + + + + + Changes the value of a float vector uniform, or uniform array in the +currently used (see cogl_program_use()) shader program. + Use #CoglSnippet api + + + + + + + the uniform to set. + + + + Size of float vector. + + + + Size of array of uniforms. + + + + the new value of the uniform. + + + + + + + + Changes the value of a int vector uniform, or uniform array in the +currently used (see cogl_program_use()) shader program. + Use #CoglSnippet api + + + + + + + the uniform to set. + + + + Size of int vector. + + + + Size of array of uniforms. + + + + the new value of the uniform. + + + + + + + + Changes the value of a matrix uniform, or uniform array in the +currently used (see cogl_program_use()) shader program. The @size +parameter is used to determine the square size of the matrix. + Use #CoglSnippet api + + + + + + + the uniform to set. + + + + Size of matrix. + + + + Size of array of uniforms. + + + + Whether to transpose the matrix when setting the uniform. + + + + the new value of the uniform. + + + + + + + + Removes a reference to a program. If it was the last reference the +program object will be destroyed. + Please use cogl_object_unref() instead. + + + + + + + A #CoglHandle to a program. + + + + + + Activate a specific shader program replacing that part of the GL +rendering pipeline, if passed in %COGL_INVALID_HANDLE the default +behavior of GL is reinstated. + +This function affects the global state of the current Cogl +context. It is much more efficient to attach the shader to a +specific material used for rendering instead by calling +cogl_material_set_user_program(). + Use #CoglSnippet api + + + + + + + a #CoglHandle for a shader program or %COGL_INVALID_HANDLE. + + + + + + Stores the current model-view matrix on the matrix stack. The matrix +can later be restored with cogl_pop_matrix(). + Use cogl_framebuffer_push_matrix() instead + + + + + + + Pushes the given @material to the top of the source stack. The +material at the top of this stack defines the GPU state used to +process later primitives as defined by cogl_set_source(). + Latest drawing apis all take an explicit + #CoglPipeline argument so this stack of + #CoglMaterial<!-- -->s shouldn't be used. + + + + + + + A #CoglMaterial + + + + + + Fills a rectangle at the given coordinates with the current source material + + + + + + + X coordinate of the top-left corner + + + + Y coordinate of the top-left corner + + + + X coordinate of the bottom-right corner + + + + Y coordinate of the bottom-right corner + + + + + + This function draws a rectangle using the current source material to +texture or fill with. As a material may contain multiple texture layers +this interface lets you supply texture coordinates for each layer of the +material. + +The first pair of coordinates are for the first layer (with the smallest +layer index) and if you supply less texture coordinates than there are +layers in the current source material then default texture coordinates +(0.0, 0.0, 1.0, 1.0) are generated. + + + + + + + x coordinate upper left on screen. + + + + y coordinate upper left on screen. + + + + x coordinate lower right on screen. + + + + y coordinate lower right on screen. + + + + An array containing groups of + 4 float values: [tx1, ty1, tx2, ty2] that are interpreted as two texture + coordinates; one for the upper left texel, and one for the lower right + texel. Each value should be between 0.0 and 1.0, where the coordinate + (0.0, 0.0) represents the top left of the texture, and (1.0, 1.0) the + bottom right. + + + + + + The length of the tex_coords array. (e.g. for one layer + and one group of texture coordinates, this would be 4) + + + + + + Draw a rectangle using the current material and supply texture coordinates +to be used for the first texture layer of the material. To draw the entire +texture pass in @tx1=0.0 @ty1=0.0 @tx2=1.0 @ty2=1.0. + + + + + + + x coordinate upper left on screen. + + + + y coordinate upper left on screen. + + + + x coordinate lower right on screen. + + + + y coordinate lower right on screen. + + + + x part of texture coordinate to use for upper left pixel + + + + y part of texture coordinate to use for upper left pixel + + + + x part of texture coordinate to use for lower right pixel + + + + y part of texture coordinate to use for left pixel + + + + + + Draws a series of rectangles in the same way that +cogl_rectangle() does. In some situations it can give a +significant performance boost to use this function rather than +calling cogl_rectangle() separately for each rectangle. + +@verts should point to an array of #float<!-- -->s with +@n_rects * 4 elements. Each group of 4 values corresponds to the +parameters x1, y1, x2, and y2, and have the same +meaning as in cogl_rectangle(). + + + + + + + an array of vertices + + + + + + number of rectangles to draw + + + + + + Draws a series of rectangles in the same way that +cogl_rectangle_with_texture_coords() does. In some situations it can give a +significant performance boost to use this function rather than +calling cogl_rectangle_with_texture_coords() separately for each rectangle. + +@verts should point to an array of #float<!-- -->s with +@n_rects * 8 elements. Each group of 8 values corresponds to the +parameters x1, y1, x2, y2, tx1, ty1, tx2 and ty2 and have the same +meaning as in cogl_rectangle_with_texture_coords(). + + + + + + + an array of vertices + + + + + + number of rectangles to draw + + + + + + Multiplies the current model-view matrix by one that rotates the +model around the vertex specified by @x, @y and @z. The rotation +follows the right-hand thumb rule so for example rotating by 10 +degrees about the vertex (0, 0, 1) causes a small counter-clockwise +rotation. + Use cogl_framebuffer_rotate() instead + + + + + + + Angle in degrees to rotate. + + + + X-component of vertex to rotate around. + + + + Y-component of vertex to rotate around. + + + + Z-component of vertex to rotate around. + + + + + + Multiplies the current model-view matrix by one that scales the x, +y and z axes by the given values. + Use cogl_framebuffer_pop_matrix() instead + + + + + + + Amount to scale along the x-axis + + + + Amount to scale along the y-axis + + + + Amount to scale along the z-axis + + + + + + Sets whether textures positioned so that their backface is showing +should be hidden. This can be used to efficiently draw two-sided +textures or fully closed cubes without enabling depth testing. This +only affects calls to the cogl_rectangle* family of functions and +cogl_vertex_buffer_draw*. Backface culling is disabled by default. + Use cogl_pipeline_set_cull_face_mode() instead + + + + + + + %TRUE to enable backface culling or %FALSE to disable. + + + + + + Sets whether depth testing is enabled. If it is disabled then the +order that actors are layered on the screen depends solely on the +order specified using clutter_actor_raise() and +clutter_actor_lower(), otherwise it will also take into account the +actor's depth. Depth testing is disabled by default. + Use cogl_pipeline_set_depth_state() instead + + + + + + + %TRUE to enable depth testing or %FALSE to disable. + + + + + + Enables fogging. Fogging causes vertices that are further away from the eye +to be rendered with a different color. The color is determined according to +the chosen fog mode; at it's simplest the color is linearly interpolated so +that vertices at @z_near are drawn fully with their original color and +vertices at @z_far are drawn fully with @fog_color. Fogging will remain +enabled until you call cogl_disable_fog(). + +<note>The fogging functions only work correctly when primitives use +unmultiplied alpha colors. By default Cogl will premultiply textures +and cogl_set_source_color() will premultiply colors, so unless you +explicitly load your textures requesting an unmultiplied internal format +and use cogl_material_set_color() you can only use fogging with fully +opaque primitives. This might improve in the future when we can depend +on fragment shaders.</note> + Use #CoglSnippet shader api for fog + + + + + + + The color of the fog + + + + A #CoglFogMode that determines the equation used to calculate the + fogging blend factor. + + + + Used by %COGL_FOG_MODE_EXPONENTIAL and by + %COGL_FOG_MODE_EXPONENTIAL_SQUARED equations. + + + + Position along Z axis where no fogging should be applied + + + + Position along Z axis where full fogging should be applied + + + + + + Loads @matrix as the new model-view matrix. + Use cogl_framebuffer_set_modelview_matrix() + instead + + + + + + + the new model-view matrix + + + + + + Loads matrix as the new projection matrix. + Use cogl_framebuffer_set_projection_matrix() + instead + + + + + + + the new projection matrix + + + + + + This function changes the material at the top of the source stack. +The material at the top of this stack defines the GPU state used to +process subsequent primitives, such as rectangles drawn with +cogl_rectangle() or vertices drawn using cogl_vertex_buffer_draw(). + Latest drawing apis all take an explicit + #CoglPipeline argument so this stack of + #CoglMaterial<!-- -->s shouldn't be used. + + + + + + + A #CoglMaterial + + + + + + This is a convenience function for creating a solid fill source material +from the given color. This color will be used for any subsequent drawing +operation. + +The color will be premultiplied by Cogl, so the color should be +non-premultiplied. For example: use (1.0, 0.0, 0.0, 0.5) for +semi-transparent red. + +See also cogl_set_source_color4ub() and cogl_set_source_color4f() +if you already have the color components. + Latest drawing apis all take an explicit + #CoglPipeline argument so this stack of + #CoglMaterial<!-- -->s shouldn't be used. + + + + + + + a #CoglColor + + + + + + This is a convenience function for creating a solid fill source material +from the given color using normalized values for each component. This color +will be used for any subsequent drawing operation. + +The value for each component is a fixed point number in the range +between 0 and %1.0. If the values passed in are outside that +range, they will be clamped. + Latest drawing apis all take an explicit + #CoglPipeline argument so this stack of + #CoglMaterial<!-- -->s shouldn't be used. + + + + + + + value of the red channel, between 0 and %1.0 + + + + value of the green channel, between 0 and %1.0 + + + + value of the blue channel, between 0 and %1.0 + + + + value of the alpha channel, between 0 and %1.0 + + + + + + This is a convenience function for creating a solid fill source material +from the given color using unsigned bytes for each component. This +color will be used for any subsequent drawing operation. + +The value for each component is an unsigned byte in the range +between 0 and 255. + Latest drawing apis all take an explicit + #CoglPipeline argument so this stack of + #CoglMaterial<!-- -->s shouldn't be used. + + + + + + + value of the red channel, between 0 and 255 + + + + value of the green channel, between 0 and 255 + + + + value of the blue channel, between 0 and 255 + + + + value of the alpha channel, between 0 and 255 + + + + + + This is a convenience function for creating a material with the first +layer set to @texture and setting that material as the source with +cogl_set_source. + +Note: There is no interaction between calls to cogl_set_source_color +and cogl_set_source_texture. If you need to blend a texture with a color then +you can create a simple material like this: +<programlisting> +material = cogl_material_new (); +cogl_material_set_color4ub (material, 0xff, 0x00, 0x00, 0x80); +cogl_material_set_layer (material, 0, tex_handle); +cogl_set_source (material); +</programlisting> + Latest drawing apis all take an explicit + #CoglPipeline argument so this stack of + #CoglMaterial<!-- -->s shouldn't be used. + + + + + + + The #CoglTexture you want as your source + + + + + + Replaces the current viewport with the given values. + Use cogl_framebuffer_set_viewport() instead + + + + + + + X offset of the viewport + + + + Y offset of the viewport + + + + Width of the viewport + + + + Height of the viewport + + + + + + Compiles the shader, no return value, but the shader is now ready +for linking into a program. Note that calling this function is +optional. If it is not called then the shader will be automatically +compiled when it is linked. + Use #CoglSnippet api + + + + + + + #CoglHandle for a shader. + + + + + + Retrieves the information log for a coglobject, can be used in conjunction +with cogl_shader_get_parameteriv() to retrieve the compiler warnings/error +messages that caused a shader to not compile correctly, mainly useful for +debugging purposes. + Use #CoglSnippet api + + + a newly allocated string containing the info log. Use + g_free() to free it + + + + + #CoglHandle for a shader. + + + + + + Retrieves the type of a shader #CoglHandle + Use #CoglSnippet api + + + %COGL_SHADER_TYPE_VERTEX if the shader is a vertex processor + or %COGL_SHADER_TYPE_FRAGMENT if the shader is a frament processor + + + + + #CoglHandle for a shader. + + + + + + Retrieves whether a shader #CoglHandle has been compiled + Use #CoglSnippet api + + + %TRUE if the shader object has sucessfully be compiled + + + + + #CoglHandle for a shader. + + + + + + Add an extra reference to a shader. + Use #CoglSnippet api + + + @handle + + + + + A #CoglHandle to a shader. + + + + + + Replaces the current source associated with a shader with a new +one. + +Please see <link +linkend="cogl-Shaders-and-Programmable-Pipeline.description">above</link> +for a description of the recommended format for the shader code. + Use #CoglSnippet api + + + + + + + #CoglHandle for a shader. + + + + Shader source. + + + + + + Removes a reference to a shader. If it was the last reference the +shader object will be destroyed. + Use #CoglSnippet api + + + + + + + A #CoglHandle to a shader. + + + + + + + + + + + + Creates a #CoglTexture from a #CoglBitmap. + Use specific constructors such as + cogl_texture_2d_new_from_bitmap() + + + A newly created #CoglTexture or + %NULL on failure + + + + + A #CoglBitmap pointer + + + + Optional flags for the texture, or %COGL_TEXTURE_NONE + + + + the #CoglPixelFormat to use for the GPU storage of the +texture + + + + + + Creates a new #CoglTexture based on data residing in memory. + Use specific constructors such as + cogl_texture_2d_new_from_data() + + + A newly created #CoglTexture or + %NULL on failure + + + + + width of texture in pixels + + + + height of texture in pixels + + + + Optional flags for the texture, or %COGL_TEXTURE_NONE + + + + the #CoglPixelFormat the buffer is stored in in RAM + + + + the #CoglPixelFormat that will be used for storing + the buffer on the GPU. If COGL_PIXEL_FORMAT_ANY is given then a + premultiplied format similar to the format of the source data will + be used. The default blending equations of Cogl expect premultiplied + color data; the main use of passing a non-premultiplied format here + is if you have non-premultiplied source data and are going to adjust + the blend mode (see cogl_material_set_blend()) or use the data for + something other than straight blending. + + + + the memory offset in bytes between the starts of + scanlines in @data + + + + pointer the memory region where the source buffer resides + + + + + + Creates a #CoglTexture from an image file. + Use specific constructors such as + cogl_texture_2d_new_from_file() + + + A newly created #CoglTexture or + %NULL on failure + + + + + the file to load + + + + Optional flags for the texture, or %COGL_TEXTURE_NONE + + + + the #CoglPixelFormat to use for the GPU storage of the + texture. If %COGL_PIXEL_FORMAT_ANY is given then a premultiplied + format similar to the format of the source data will be used. The + default blending equations of Cogl expect premultiplied color data; + the main use of passing a non-premultiplied format here is if you + have non-premultiplied source data and are going to adjust the blend + mode (see cogl_material_set_blend()) or use the data for something + other than straight blending. + + + + + + Creates a #CoglTexture based on an existing OpenGL texture; the +width, height and format are passed along since it is not always +possible to query these from OpenGL. + +The waste arguments allow you to create a Cogl texture that maps to +a region smaller than the real OpenGL texture. For instance if your +hardware only supports power-of-two textures you may load a +non-power-of-two image into a larger power-of-two texture and use +the waste arguments to tell Cogl which region should be mapped to +the texture coordinate range [0:1]. + Use specific constructors such as + cogl_texture_2d_new_from_foreign() + + + A newly created #CoglTexture or + %NULL on failure + + + + + opengl handle of foreign texture. + + + + opengl target type of foreign texture + + + + width of foreign texture + + + + height of foreign texture. + + + + horizontal waste on the right hand edge of the texture. + + + + vertical waste on the bottom edge of the texture. + + + + format of the foreign texture. + + + + + + Creates a new #CoglTexture with the specified dimensions and pixel format. + Use specific constructors such as + cogl_texture_2d_new_with_size() + + + A newly created #CoglTexture or %NULL on failure + + + + + width of texture in pixels. + + + + height of texture in pixels. + + + + Optional flags for the texture, or %COGL_TEXTURE_NONE + + + + the #CoglPixelFormat to use for the GPU storage of the + texture. + + + + + + Multiplies the current model-view matrix by the given matrix. + Use cogl_framebuffer_transform() instead + + + + + + + the matrix to multiply with the current model-view + + + + + + Multiplies the current model-view matrix by one that translates the +model along all three axes according to the given values. + Use cogl_framebuffer_translate() instead + + + + + + + Distance to translate along the x-axis + + + + Distance to translate along the y-axis + + + + Distance to translate along the z-axis + + + + + + Adds an attribute to a buffer, or replaces a previously added +attribute with the same name. + +You either can use one of the built-in names such as "gl_Vertex", or +"gl_MultiTexCoord0" to add standard attributes, like positions, colors +and normals, or you can add custom attributes for use in shaders. + +The number of vertices declared when calling cogl_vertex_buffer_new() +determines how many attribute values will be read from the supplied +@pointer. + +The data for your attribute isn't copied anywhere until you call +cogl_vertex_buffer_submit(), or issue a draw call which automatically +submits pending attribute changes. so the supplied pointer must remain +valid until then. If you are updating an existing attribute (done by +re-adding it) then you still need to re-call cogl_vertex_buffer_submit() +to commit the changes to the GPU. Be carefull to minimize the number +of calls to cogl_vertex_buffer_submit(), though. + +<note>If you are interleving attributes it is assumed that each interleaved +attribute starts no farther than +- stride bytes from the other attributes +it is interleved with. I.e. this is ok: +<programlisting> +|-0-0-0-0-0-0-0-0-0-0| +</programlisting> +This is not ok: +<programlisting> +|- - - - -0-0-0-0-0-0 0 0 0 0| +</programlisting> +(Though you can have multiple groups of interleved attributes)</note> + Use the #CoglPrimitive api instead + + + + + + + A vertex buffer handle + + + + The name of your attribute. It should be a valid GLSL + variable name and standard attribute types must use one of following + built-in names: (Note: they correspond to the built-in names of GLSL) + <itemizedlist> + <listitem>"gl_Color"</listitem> + <listitem>"gl_Normal"</listitem> + <listitem>"gl_MultiTexCoord0, gl_MultiTexCoord1, ..."</listitem> + <listitem>"gl_Vertex"</listitem> + </itemizedlist> + To support adding multiple variations of the same attribute the name + can have a detail component, E.g. "gl_Color::active" or + "gl_Color::inactive" + + + + The number of components per attribute and must be 1, 2, + 3 or 4 + + + + a #CoglAttributeType specifying the data type of each component. + + + + If %TRUE, this specifies that values stored in an integer + format should be mapped into the range [-1.0, 1.0] or [0.0, 1.0] + for unsigned values. If %FALSE they are converted to floats + directly. + + + + This specifies the number of bytes from the start of one attribute + value to the start of the next value (for the same attribute). So, for + example, with a position interleved with color like this: + XYRGBAXYRGBAXYRGBA, then if each letter represents a byte, the + stride for both attributes is 6. The special value 0 means the + values are stored sequentially in memory. + + + + This addresses the first attribute in the vertex array. This + must remain valid until you either call cogl_vertex_buffer_submit() or + issue a draw call. + + + + + + Deletes an attribute from a buffer. You will need to call +cogl_vertex_buffer_submit() or issue a draw call to commit this +change to the GPU. + Use the #CoglPrimitive api instead + + + + + + + A vertex buffer handle + + + + The name of a previously added attribute + + + + + + Disables a previosuly added attribute. + +Since it can be costly to add and remove new attributes to buffers; to make +individual buffers more reuseable it is possible to enable and disable +attributes before using a buffer for drawing. + +You don't need to call cogl_vertex_buffer_submit() after using this +function. + Use the #CoglPrimitive api instead + + + + + + + A vertex buffer handle + + + + The name of the attribute you want to disable + + + + + + Allows you to draw geometry using all or a subset of the +vertices in a vertex buffer. + +Any un-submitted attribute changes are automatically submitted before +drawing. + Use the #CoglPrimitive api instead + + + + + + + A vertex buffer handle + + + + A #CoglVerticesMode specifying how the vertices should be + interpreted. + + + + Specifies the index of the first vertex you want to draw with + + + + Specifies the number of vertices you want to draw. + + + + + + This function lets you use an array of indices to specify the vertices +within your vertex buffer that you want to draw. The indices themselves +are created by calling cogl_vertex_buffer_indices_new () + +Any un-submitted attribute changes are automatically submitted before +drawing. + Use the #CoglPrimitive api instead + + + + + + + A vertex buffer handle + + + + A #CoglVerticesMode specifying how the vertices should be + interpreted. + + + + A CoglHandle for a set of indices allocated via + cogl_vertex_buffer_indices_new () + + + + Specifies the minimum vertex index contained in indices + + + + Specifies the maximum vertex index contained in indices + + + + An offset into named indices. The offset marks the first + index to use for drawing. + + + + Specifies the number of vertices you want to draw. + + + + + + Enables a previosuly disabled attribute. + +Since it can be costly to add and remove new attributes to buffers; to make +individual buffers more reuseable it is possible to enable and disable +attributes before using a buffer for drawing. + +You don't need to call cogl_vertex_buffer_submit() after using this function + Use the #CoglPrimitive api instead + + + + + + + A vertex buffer handle + + + + The name of the attribute you want to enable + + + + + + Retrieves the number of vertices that @handle represents + Use the #CoglPrimitive api instead + + + the number of vertices + + + + + A vertex buffer handle + + + + + + Creates a vertex buffer containing the indices needed to draw pairs +of triangles from a list of vertices grouped as quads. There will +be at least @n_indices entries in the buffer (but there may be +more). + +The indices will follow this pattern: + +0, 1, 2, 0, 2, 3, 4, 5, 6, 4, 6, 7 ... etc + +For example, if you submit vertices for a quad like like that shown +in <xref linkend="quad-indices-order"/> then you can request 6 +indices to render two triangles like those shown in <xref +linkend="quad-indices-triangles"/>. + +<figure id="quad-indices-order"> + <title>Example of vertices submitted to form a quad</title> + <graphic fileref="quad-indices-order.png" format="PNG"/> +</figure> + +<figure id="quad-indices-triangles"> + <title>Illustration of the triangle indices that will be generated</title> + <graphic fileref="quad-indices-triangles.png" format="PNG"/> +</figure> + Use the #CoglPrimitive api instead + + + A %CoglHandle containing the indices. The handled is +owned by Cogl and should not be modified or unref'd. + + + + + the number of indices in the vertex buffer. + + + + + + Queries back the data type used for the given indices + Use the #CoglPrimitive api instead + + + The CoglIndicesType used + + + + + An indices handle + + + + + + Depending on how much geometry you are submitting it can be worthwhile +optimizing the number of redundant vertices you submit. Using an index +array allows you to reference vertices multiple times, for example +during triangle strips. + Use the #CoglPrimitive api instead + + + A CoglHandle for the indices which you can pass to + cogl_vertex_buffer_draw_elements(). + + + + + a #CoglIndicesType specifying the data type used for + the indices. + + + + Specifies the address of + your array of indices + + + + + + The number of indices in indices_array + + + + + + Creates a new vertex buffer that you can use to add attributes. + Use the #CoglPrimitive api instead + + + a new #CoglHandle + + + + + The number of vertices that your attributes will correspond to. + + + + + + Increment the reference count for a vertex buffer + Use cogl_object_ref() instead + + + the @handle. + + + + + a @CoglHandle. + + + + + + Submits all the user added attributes to the GPU; once submitted, the +attributes can be used for drawing. + +You should aim to minimize calls to this function since it implies +validating your data; it potentially incurs a transport cost (especially if +you are using GLX indirect rendering) and potentially a format conversion +cost if the GPU doesn't natively support any of the given attribute formats. + Use the #CoglPrimitive api instead + + + + + + + A vertex buffer handle + + + + + + Decrement the reference count for a vertex buffer + Use cogl_object_unref() instead + + + + + + + a @CoglHandle. + + + + + + Replace the current viewport with the given values. + Use cogl_framebuffer_set_viewport instead + + + + + + + Width of the viewport + + + + Height of the viewport + + + + + + + + + + + + + + + + + Assuming you know the given @onscreen framebuffer is based on an x11 window +this queries the XID of that window. If +cogl_x11_onscreen_set_foreign_window_xid() was previously called then it +will return that same XID otherwise it will be the XID of a window Cogl +created internally. If the window has not been allocated yet and a foreign +xid has not been set then it's undefined what value will be returned. + +It's undefined what this function does if called when not using an x11 based +renderer. + + + + + + + A #CoglOnscreen framebuffer + + + + + + Ideally we would recommend that you let Cogl be responsible for +creating any X window required to back an onscreen framebuffer but +if you really need to target a window created manually this +function can be called before @onscreen has been allocated to set a +foreign XID for your existing X window. + +Since Cogl needs, for example, to track changes to the size of an X +window it requires that certain events be selected for via the core +X protocol. This requirement may also be changed asynchronously so +you must pass in an @update callback to inform you of Cogl's +required event mask. + +For example if you are using Xlib you could use this API roughly +as follows: +[{ +static void +my_update_cogl_x11_event_mask (CoglOnscreen *onscreen, + uint32_t event_mask, + void *user_data) +{ + XSetWindowAttributes attrs; + MyData *data = user_data; + attrs.event_mask = event_mask | data->my_event_mask; + XChangeWindowAttributes (data->xdpy, + data->xwin, + CWEventMask, + &attrs); +} + +{ + *snip* + cogl_x11_onscreen_set_foreign_window_xid (onscreen, + data->xwin, + my_update_cogl_x11_event_mask, + data); + *snip* +} +}] + + + + + + + The unallocated framebuffer to associated with an X + window. + + + + The XID of an existing X window + + + + A callback that notifies of updates to what Cogl + requires to be in the core X protocol event mask. + + + + user data passed to @update + + + + + + Adds a callback function that will receive all native events. The +function can stop further processing of the event by return +%COGL_FILTER_REMOVE. + + + + + + + a #CoglRenderer + + + + the callback function + + + + user data passed to @func when called + + + + + + + + + + + + + + + + + + + the foreign Xlib display that will be used by any Xlib based +winsys backend. The display needs to be set with +cogl_xlib_renderer_set_foreign_display() before this function is called. + + + + + a #CoglRenderer + + + + + + + + + + + + + + + + + This function processes a single event; it can be used to hook into +external event retrieval (for example that done by Clutter or +GDK). + + + #CoglFilterReturn. %COGL_FILTER_REMOVE indicates that +Cogl has internally handled the event and the caller should do no +further processing. %COGL_FILTER_CONTINUE indicates that Cogl is +either not interested in the event, or has used the event to update +internal state without taking any exclusive action. + + + + + a #CoglRenderer + + + + pointer to an XEvent structure + + + + + + Removes a callback that was previously added with +cogl_xlib_renderer_add_filter(). + + + + + + + a #CoglRenderer + + + + the callback function + + + + user data given when the callback was installed + + + + + + Sets whether Cogl should make use of the +NV_robustness_video_memory_purge extension, if exposed by the +driver, by initializing the GLX context appropriately. + +The extension is only useful when running on certain versions of +the NVIDIA driver. Quoting from the spec: + +"The NVIDIA OpenGL driver architecture on Linux has a limitation: + resources located in video memory are not persistent across certain + events. VT switches, suspend/resume events, and mode switching + events may erase the contents of video memory. Any resource that + is located exclusively in video memory, such as framebuffer objects + (FBOs), will be lost." + +"This extension provides a way for applications to discover when video + memory content has been lost, so that the application can re-populate + the video memory content as necessary." + +"Any driver that exposes this extension is a driver that considers + video memory to be volatile. Once the driver stack has been + improved, the extension will no longer be exposed." + +cogl_get_graphics_reset_status() needs to be called at least once +every frame to find out if video memory was purged. + +Note that this doesn't cause Cogl to enable robust buffer access +but other context reset errors may still happen and be reported via +cogl_get_graphics_reset_status() if external factors cause the +driver to trigger them. + +This defaults to %FALSE and is effective only if called before +cogl_display_setup() . + + + + + + + a #CoglRenderer + + + + The new value + + + + + + Sets whether Cogl should automatically retrieve events from the X +display. This defaults to %TRUE unless +cogl_xlib_renderer_set_foreign_display() is called. It can be set +to %FALSE if the application wants to handle its own event +retrieval. Note that Cogl still needs to see all of the X events to +function properly so the application should call +cogl_xlib_renderer_handle_event() for each event if it disables +automatic event retrieval. + + + + + + + a #CoglRenderer + + + + The new value + + + + + + Sets a foreign Xlib display that Cogl will use for and Xlib based winsys +backend. + +Note that calling this function will automatically call +cogl_xlib_renderer_set_event_retrieval_enabled() to disable Cogl's +event retrieval. Cogl still needs to see all of the X events so the +application should also use cogl_xlib_renderer_handle_event() if it +uses this function. + + + + + + + a #CoglRenderer + + + + + + + + + Sets whether Cogl is allowed to use a separate threaded to wait for the +completion of glXSwapBuffers() and call the frame callback for the +corresponding #CoglOnscreen. This is a way of emulating the +INTEL_swap_event extension, and will only ever be used if +INTEL_swap_event is not present; it will also only be used for +specific white-listed drivers that are known to work correctly with +multiple contexts sharing state between threads. + +The advantage of enabling this is that it will allow your main loop +to do other work while waiting for the system to be ready to draw +the next frame, instead of blocking in glXSwapBuffers(). A disadvantage +is that the driver will be prevented from buffering up multiple frames +even if it thinks that it would be advantageous. In general, this +will work best for something like a system compositor that is doing +simple drawing but handling lots of other complex tasks. + +If you enable this, you must call XInitThreads() before any other +X11 calls in your program. (See the documentation for XInitThreads()) + + + + + + + a #CoglRenderer + + + + The new value + + + + + + diff --git a/lib/docs/scrapers/gnome/girs/mutter-4/CoglPango-4.gir b/lib/docs/scrapers/gnome/girs/mutter-4/CoglPango-4.gir new file mode 100644 index 0000000000..6996067224 --- /dev/null +++ b/lib/docs/scrapers/gnome/girs/mutter-4/CoglPango-4.gir @@ -0,0 +1,444 @@ + + + + + + + + + + + + + + + + + + + + + + + This updates any internal glyph cache textures as necessary to be +able to render the given @layout. + +This api should be used to avoid mid-scene modifications of +glyph-cache textures which can lead to undefined rendering results. + + + + + + + A #PangoLayout + + + + + + Clears the glyph cache for @font_map. + + + + + + + a #CoglPangoFontMap + + + + + + Create a #PangoContext for the given @font_map. + + + the newly created context: free with g_object_unref(). + + + + + a #CoglPangoFontMap + + + + + + Retrieves the #CoglPangoRenderer for the passed @font_map. + + + a #PangoRenderer + + + + + a #CoglPangoFontMap + + + + + + Retrieves whether the #CoglPangoRenderer used by @font_map will use +mipmapping when rendering the glyphs. + + + %TRUE if mipmapping is used, %FALSE otherwise. + + + + + a #CoglPangoFontMap + + + + + + Creates a new font map. + + + the newly created #PangoFontMap + + + + + Sets the resolution for the @font_map. This is a scale factor +between points specified in a #PangoFontDescription and Cogl units. +The default value is %96, meaning that a 10 point font will be 13 +units high. (10 * 96. / 72. = 13.3). + + + + + + + a #CoglPangoFontMap + + + + The resolution in "dots per inch". (Physical inches aren't + actually involved; the terminology is conventional.) + + + + + + Sets whether the renderer for the passed font map should use +mipmapping when rendering a #PangoLayout. + + + + + + + a #CoglPangoFontMap + + + + %TRUE to enable the use of mipmapping + + + + + + Draws a solidly coloured @layout on the given @framebuffer at (@x, +@y) within the @framebuffer<!-- -->'s current model-view coordinate +space. + Use cogl_pango_show_layout() instead + + + + + + + a #PangoLayout + + + + X coordinate to render the layout at + + + + Y coordinate to render the layout at + + + + color to use when rendering the layout + + + + + + + + + Renders @line at the given coordinates using the given color. + Use cogl_pango_show_layout() instead + + + + + + + a #PangoLayoutLine + + + + X coordinate to render the line at + + + + Y coordinate to render the line at + + + + color to use when rendering the line + + + + + + Draws a solidly coloured @layout on the given @framebuffer at (@x, +@y) within the @framebuffer<!-- -->'s current model-view coordinate +space. + Use cogl_pango_show_layout() instead + + + + + + + a #PangoLayout + + + + X coordinate (in Pango units) to render the layout at + + + + Y coordinate (in Pango units) to render the layout at + + + + color to use when rendering the layout + + + + + + + + + Draws a solidly coloured @layout on the given @framebuffer at (@x, +@y) within the @framebuffer<!-- -->'s current model-view coordinate +space. + + + + + + + A #CoglFramebuffer to draw too. + + + + a #PangoLayout + + + + X coordinate to render the layout at + + + + Y coordinate to render the layout at + + + + color to use when rendering the layout + + + + + + Draws a solidly coloured @line on the given @framebuffer at (@x, +@y) within the @framebuffer<!-- -->'s current model-view coordinate +space. + + + + + + + A #CoglFramebuffer to draw too. + + + + a #PangoLayoutLine + + + + X coordinate to render the line at + + + + Y coordinate to render the line at + + + + color to use when rendering the line + + + + + + diff --git a/lib/docs/scrapers/gnome/girs/mutter-4/Meta-4.gir b/lib/docs/scrapers/gnome/girs/mutter-4/Meta-4.gir new file mode 100644 index 0000000000..40b3d02ba3 --- /dev/null +++ b/lib/docs/scrapers/gnome/girs/mutter-4/Meta-4.gir @@ -0,0 +1,13992 @@ + + + + + + + + + + + + + + + + + + Gets the global #MetaDnd that's managed by this backend. + + + the #MetaDnd + + + + + A #MetaDnd + + + + + + + + The #MetaRemoteAccessController + + + + + A #MetaBackend + + + + + + + + + + + + + + + + + Gets the global #ClutterStage that's managed by this backend. + + + the #ClutterStage + + + + + A #MetaBackend + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This class handles tracking and painting the root window background. +By integrating with #MetaWindowGroup we can avoid painting parts of +the background that are obscured by other windows. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This class handles tracking and painting the root window background. +By integrating with #MetaWindowGroup we can avoid painting parts of +the background that are obscured by other windows. + + + + + + + Creates a new actor to draw the background for the given monitor. + + + the newly created background actor + + + + + + + + Index of the monitor for which to draw the background + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #MetaBackgroundImage is an object that represents a loaded or loading background image. + + + This function is a convenience function for checking for success, +without having to call meta_background_image_get_texture() and +handle the return of a Cogl type. + + + %TRUE if loading completed successfully, otherwise %FALSE + + + + + a #MetaBackgroundImage + + + + + + + + a #CoglTexture if loading succeeded; if + loading failed or has not yet finished, %NULL. + + + + + a #MetaBackgroundImage + + + + + + + + %TRUE if loading has already completed, %FALSE otherwise + + + + + a #MetaBackgroundImage + + + + + + + + + + + + #MetaBackgroundImageCache caches loading of textures for backgrounds; there's actually +nothing background specific about it, other than it is tuned to work well for +large images as typically are used for backgrounds. + + + + + the global singleton background cache + + + + + Loads an image to use as a background, or returns a reference to an +image that is already in the process of loading or loaded. In either +case, what is returned is a #MetaBackgroundImage which can be derefenced +to get a #CoglTexture. If meta_background_image_is_loaded() returns %TRUE, +the background is loaded, otherwise the MetaBackgroundImage::loaded +signal will be emitted exactly once. The 'loaded' state means that the +loading process finished, whether it succeeded or failed. + + + a #MetaBackgroundImage to dereference to get the loaded texture + + + + + a #MetaBackgroundImageCache + + + + #GFile to load + + + + + + Remove an entry from the cache; this would be used if monitoring +showed that the file changed. + + + + + + + a #MetaBackgroundImageCache + + + + file to remove from the cache + + + + + + + + + + + + + + + + + + + The <structname>MetaBarrier</structname> structure contains +only private data and should be accessed using the provided API + + + + + + + + + + + + + + + + + + + + + + + + + In XI2.3, pointer barriers provide a feature where they can +be temporarily released so that the pointer goes through +them. Pass a #MetaBarrierEvent to release the barrier for +this event sequence. + + + + + + + The barrier to release + + + + The event to release the pointer for + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + When a pointer barrier is hit, this will trigger. This +requires an XI2-enabled server. + + + + + + A #MetaBarrierEvent that has the details of how +the barrier was hit. + + + + + + When a pointer barrier hitbox was left, this will trigger. +This requires an XI2-enabled server. + + + + + + A #MetaBarrierEvent that has the details of how +the barrier was left. + + + + + + + The <structname>MetaBarrierClass</structname> structure contains only +private data. + + + + + + + + Positive direction in the X axis + + + Positive direction in the Y axis + + + Negative direction in the X axis + + + Negative direction in the Y axis + + + + + + + + + A unique integer ID identifying a +consecutive series of motions at or along the barrier + + + + Server time, in milliseconds, since the last event +sent for this barrier + + + + Server time, in milliseconds + + + + The cursor X position in screen coordinates + + + + The cursor Y position in screen coordinates. + + + + If the cursor hadn't been constrained, the delta +of X movement past the barrier, in screen coordinates + + + + If the cursor hadn't been constrained, the delta +of X movement past the barrier, in screen coordinates + + + + A boolean flag, %TRUE if this event generated +by the pointer leaving the barrier as a result of a client +calling meta_barrier_release() (will be set only for +MetaBarrier::leave signals) + + + + A boolean flag, %TRUE if the pointer was grabbed +at the time this event was sent + + + + + + + + Function a window button can have. Note, you can't add stuff here +without extending the theme format to draw a new function and +breaking all existing themes. + + Menu + + + Minimize + + + Maximize + + + Close + + + Marks the end of the #MetaButtonFunction enumeration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Call whenever @dialog should receive keyboard focus, +usually when the window would. + + + + + + + a #MetaCloseDialog + + + + + + Hides the close dialog. + + + + + + + a #MetaCloseDialog + + + + + + Shows the close dialog. + + + + + + + a #MetaCloseDialog + + + + + + Call whenever @dialog should receive keyboard focus, +usually when the window would. + + + + + + + a #MetaCloseDialog + + + + + + Hides the close dialog. + + + + + + + a #MetaCloseDialog + + + + + + Returns whether @dialog is currently visible. + + + #TRUE if @dialog is visible. + + + + + a #MetaCloseDialog + + + + + + Responds and closes the dialog. To be called by #MetaCloseDialog +implementations. + + + + + + + a #MetaCloseDialog + + + + a #MetaCloseDialogResponse + + + + + + Shows the close dialog. + + + + + + + a #MetaCloseDialog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a #MetaCloseDialog + + + + + + + + + + + + + + a #MetaCloseDialog + + + + + + + + + + + + + + a #MetaCloseDialog + + + + + + + + + + + + + + Indicates the appropriate effect to show the user for +meta_compositor_show_window() and meta_compositor_hide_window() + + The window is newly created + (also used for a window that was previously on a different + workspace and is changed to become visible on the active + workspace.) + + + The window should be shown + as unminimizing from its icon geometry. + + + The window is being destroyed + + + The window should be shown + as minimizing to its icon geometry. + + + No effect, the window should be + shown or hidden immediately. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default cursor + + + Resize northern edge cursor + + + Resize southern edge cursor + + + Resize western edge cursor + + + Resize eastern edge cursor + + + Resize south-eastern corner cursor + + + Resize south-western corner cursor + + + Resize north-eastern corner cursor + + + Resize north-western corner cursor + + + Move or resize cursor + + + Busy cursor + + + DND in drag cursor + + + DND move cursor + + + DND copy cursor + + + DND unsupported target + + + pointing hand + + + crosshair (action forbidden) + + + I-beam (text input) + + + + + + + + Retrieves the cursor tracker object for @display. + + + + + + + the #MetaDisplay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + verbose logging + + + focus + + + workarea + + + stack + + + themes + + + session management + + + events + + + window state + + + window operations + + + geometry + + + window placement + + + ping + + + Xinerama + + + keybindings + + + sync + + + errors + + + startup + + + preferences + + + groups + + + resizing + + + shapes + + + compositor + + + edge resistance + + + + + + + Left + + + Right + + + Top + + + Bottom + + + Up + + + Down + + + Horizontal + + + Vertical + + + + + + Save the specified serial and ignore crossing events with that +serial for the purpose of focus-follows-mouse. This can be used +for certain changes to the window hierarchy that we don't want +to change the focus window, even if they cause the pointer to +end up in a new window. + + + + + + + a #MetaDisplay + + + + the serial to ignore + + + + + + Add a keybinding at runtime. The key @name in @schema needs to be of +type %G_VARIANT_TYPE_STRING_ARRAY, with each string describing a +keybinding in the form of "&lt;Control&gt;a" or "&lt;Shift&gt;&lt;Alt&gt;F1". The parser +is fairly liberal and allows lower or upper case, and also abbreviations +such as "&lt;Ctl&gt;" and "&lt;Ctrl&gt;". If the key is set to the empty list or a +list with a single element of either "" or "disabled", the keybinding is +disabled. + +Use meta_display_remove_keybinding() to remove the binding. + + + the corresponding keybinding action if the keybinding was + added successfully, otherwise %META_KEYBINDING_ACTION_NONE + + + + + a #MetaDisplay + + + + the binding's name + + + + the #GSettings object where @name is stored + + + + flags to specify binding details + + + + function to run when the keybinding is invoked + + + + the data to pass to @handler + + + + function to free @user_data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sets the mouse-mode flag to %FALSE, which means that motion events are +no longer ignored in mouse or sloppy focus. +This is an internal function. It should be used only for reimplementing +keybindings, and only in a manner compatible with core code. + + + + + + + a #MetaDisplay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a #MetaDisplay + + + + + + Gets the index of the monitor that currently has the mouse pointer. + + + a monitor index + + + + + a #MetaDisplay + + + + + + + + + + + + + + + + + + + + + + + + + + + + Get our best guess as to the "currently" focused window (that is, +the window that we expect will be focused at the point when the X +server processes our next request). + + + The current focus window + + + + + a #MetaDisplay + + + + + + Gets the current grab operation, if any. + + + the current grab operation, or %META_GRAB_OP_NONE if +Mutter doesn't currently have a grab. %META_GRAB_OP_COMPOSITOR will +be returned if a compositor-plugin modal operation is in effect +(See mutter_begin_modal_for_plugin()) + + + + + The #MetaDisplay that the window is on + + + + + + Get the keybinding action bound to @keycode. Builtin keybindings +have a fixed associated #MetaKeyBindingAction, for bindings added +dynamically the function will return the keybinding action +meta_display_add_keybinding() returns on registration. + + + The action that should be taken for the given key, or +%META_KEYBINDING_ACTION_NONE. + + + + + A #MetaDisplay + + + + Raw keycode + + + + Event mask + + + + + + + + Timestamp of the last user interaction event with a window + + + + + a #MetaDisplay + + + + + + Stores the location and size of the indicated @monitor in @geometry. + + + + + + + a #MetaDisplay + + + + the monitor number + + + + location to store the monitor geometry + + + + + + Determines whether there is a fullscreen window obscuring the specified +monitor. If there is a fullscreen window, the desktop environment will +typically hide any controls that might obscure the fullscreen window. + +You can get notification when this changes by connecting to +MetaDisplay::in-fullscreen-changed. + + + %TRUE if there is a fullscreen window covering the specified monitor. + + + + + a #MetaDisplay + + + + the monitor number + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets the monitor scaling value for the given @monitor. + + + the monitor scaling value + + + + + a #MetaDisplay + + + + the monitor number + + + + + + Gets the number of monitors that are joined together to form @display. + + + the number of monitors + + + + + a #MetaDisplay + + + + + + + + + + + + + + + + + + + + + + + + + + Gets the index of the primary monitor on this @display. + + + a monitor index + + + + + a #MetaDisplay + + + + + + Retrieve the size of the display. + + + + + + + A #MetaDisplay + + + + The width of the screen + + + + The height of the screen + + + + + + + + The sound player of the display + + + + + a #MetaDisplay + + + + + + + + + + + + + + + + + Determine the active window that should be displayed for Alt-TAB. + + + Current window + + + + + a #MetaDisplay + + + + type of tab list + + + + origin workspace + + + + + + Determine the list of windows that should be displayed for Alt-TAB +functionality. The windows are returned in most recently used order. +If @workspace is not %NULL, the list only conains windows that are on +@workspace or have the demands-attention hint set; otherwise it contains +all windows. + + + List of windows + + + + + + + a #MetaDisplay + + + + type of tab list + + + + origin workspace + + + + + + Determine the next window that should be displayed for Alt-TAB +functionality. + + + Next window + + + + + a #MetaDisplay + + + + type of tab list + + + + origin workspace + + + + starting window + + + + If %TRUE, look for the previous window. + + + + + + + + The workspace manager of the display + + + + + a #MetaDisplay + + + + + + + + + + + + a #MetaDisplay + + + + + + + + + + + + + + + + + + + + + + + Tells whether the event sequence is the used for pointer emulation +and single-touch interaction. + + + #TRUE if the sequence emulates pointer behavior + + + + + the display + + + + a #ClutterEventSequence + + + + + + Remove keybinding @name; the function will fail if @name is not a known +keybinding or has not been added with meta_display_add_keybinding(). + + + %TRUE if the binding has been removed sucessfully, + otherwise %FALSE + + + + + the #MetaDisplay + + + + name of the keybinding to remove + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sorts a set of windows according to their current stacking order. If windows +from multiple screens are present in the set of input windows, then all the +windows on screen 0 are sorted below all the windows on screen 1, and so forth. +Since the stacking order of override-redirect windows isn't controlled by +Metacity, if override-redirect windows are in the input, the result may not +correspond to the actual stacking order in the X server. + +An example of using this would be to sort the list of transient dialogs for a +window into their current stacking order. + + + Input windows sorted by stacking order, from lowest to highest + + + + + + + a #MetaDisplay + + + + Set of windows + + + + + + + + + + whether pointer barriers can be supported. + +When running as an X compositor the X server needs XInput 2 +version 2.3. When running as a display server it is supported +when running on the native backend. + +Clients should use this method to determine whether their +interfaces should depend on new barrier features. + + + + + a #MetaDisplay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Xserver time can wraparound, thus comparing two timestamps needs to take +this into account. If no wraparound has occurred, this is equivalent to + time1 < time2 +Otherwise, we need to account for the fact that wraparound can occur +and the fact that a timestamp of 0 must be special-cased since it +means "older than anything else". + +Note that this is NOT an equivalent for time1 <= time2; if that's what +you need then you'll need to swap the order of the arguments and negate +the result. + + + + + + + a #MetaDisplay + + + + An event timestamp + + + + An event timestamp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The ::modifiers-accelerator-activated signal will be emitted when +a special modifiers-only keybinding is activated. + + %TRUE means that the keyboard device should remain + frozen and %FALSE for the default behavior of unfreezing the + keyboard. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The ::restart signal is emitted to indicate that compositor +should reexec the process. This is +emitted when meta_restart() is called, either by Mutter +internally or by the embedding compositor. See also +::show-restart-message. + + %FALSE to indicate that the compositor could not + be restarted. When the compositor is restarted, the signal + should not return. + + + + + + + + + + + + + + + + + + + + + Requests the pad button mapping OSD to be shown. + + The OSD actor + + + + + the pad device + + + + the pad device settings + + + + path to the layout image + + + + Whether the OSD should be shown in edition mode + + + + Monitor to show the OSD on + + + + + + + + + + + + + + + + + + + + + + + + + The ::show-restart-message signal will be emitted to indicate +that the compositor should show a message during restart. This is +emitted when meta_restart() is called, either by Mutter +internally or by the embedding compositor. The message should be +immediately added to the Clutter stage in its final form - +::restart will be emitted to exit the application and leave the +stage contents frozen as soon as the the stage is painted again. + +On case of failure to restart, this signal will be emitted again +with %NULL for @message. + + %TRUE means the message was added to the stage; %FALSE + indicates that the compositor did not show the message. + + + + + The message to display, or %NULL + to clear a previous restart message. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + top-left corner + + + top-right corner + + + bottom-left corner + + + bottom-right corner + + + + + up + + + down + + + left + + + right + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #MetaRectangle with the bounds of the edge + + + + Side + + + + To what belongs the edge + + + + + + Whether the edge belongs to a window + + + Whether the edge belongs to a monitor + + + Whether the edge belongs to a screen + + + + + Success + + + Error + + + + + + + + + inner visible portion of frame border + + + + outer invisible portion of frame border + + + + sum of the two borders above + + + + + + + + + + + + + + + + + frame allows delete + + + frame allows menu + + + frame allows minimize + + + frame allows maximize + + + frame allows vertical resize + + + frame allows horizontal resize + + + frame has focus + + + frame is shaded + + + frame is stuck + + + frame is maximized + + + frame allows shade + + + frame allows move + + + frame allows fullscreen + + + frame is above + + + frame is tiled to the left + + + frame is tiled to the right + + + + + Normal frame + + + Dialog frame + + + Modal dialog frame + + + Utility frame + + + Menu frame + + + Border frame + + + Attached frame + + + Marks the end of the #MetaFrameType enumeration + + + Converts a frame type enum value to the name string that would +appear in the theme definition file. + + + the string value + + + + + a #MetaFrameType + + + + + + + + None + + + + + Compositor asked for grab + + + + + + + Moving with pointer + + + Resizing NW with pointer + + + Resizing N with pointer + + + Resizing NE with pointer + + + Resizing E with pointer + + + Resizing SW with pointer + + + Resizing S with pointer + + + Resizing SE with pointer + + + Resizing W with pointer + + + Moving with keyboard + + + Resizing with keyboard + + + Resizing NS with keyboard + + + Resizing N with keyboard + + + Resizing NE with keyboard + + + Resizing E with keyboard + + + Resizing SW with keyboard + + + Resizing S with keyboard + + + Resizing SE with keyboard + + + Resizing W with keyboard + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + List of windows + + + + + + + A #MetaGroup + + + + + + + + + + + + a #MetaGroup + + + + a X event + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + the #MetaIdleMonitor that tracks the server-global +idletime for all devices. To track device-specific idletime, +use meta_idle_monitor_get_for_device(). + + + + + + + a new #MetaIdleMonitor that tracks the +device-specific idletime for @device. To track server-global idletime +for all devices, use meta_idle_monitor_get_core(). + + + + + the device to get the idle time for. + + + + + + + + a watch id + +Adds a watch for a specific idle time. The callback will be called +when the user has accumulated @interval_msec milliseconds of idle time. +This function will return an ID that can either be passed to +meta_idle_monitor_remove_watch(), or can be used to tell idle time +watches apart if you have more than one. + +Also note that this function will only care about positive transitions +(user's idle time exceeding a certain time). If you want to know about +when the user has become active, use +meta_idle_monitor_add_user_active_watch(). + + + + + A #MetaIdleMonitor + + + + The idletime interval, in milliseconds + + + + The callback to call when the user has + accumulated @interval_msec milliseconds of idle time. + + + + The user data to pass to the callback + + + + A #GDestroyNotify + + + + + + + + a watch id + +Add a one-time watch to know when the user is active again. +Note that this watch is one-time and will de-activate after the +function is called, for efficiency purposes. It's most convenient +to call this when an idle watch, as added by +meta_idle_monitor_add_idle_watch(), has triggered. + + + + + A #MetaIdleMonitor + + + + The callback to call when the user is + active again. + + + + The user data to pass to the callback + + + + A #GDestroyNotify + + + + + + + + The current idle time, in milliseconds, or -1 for not supported + + + + + A #MetaIdleMonitor + + + + + + Removes an idle time watcher, previously added by +meta_idle_monitor_add_idle_watch() or +meta_idle_monitor_add_user_active_watch(). + + + + + + + A #MetaIdleMonitor + + + + A watch ID + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Hides the inhibit shortcuts dialog. + + + + + + + a #MetaInhibitShortcutsDialog + + + + + + Shows the inhibit shortcuts dialog. + + + + + + + a #MetaInhibitShortcutsDialog + + + + + + Hides the inhibit shortcuts dialog. + + + + + + + a #MetaInhibitShortcutsDialog + + + + + + Responds and closes the dialog. To be called by #MetaInhibitShortcutsDialog +implementations. + + + + + + + a #MetaInhibitShortcutsDialog + + + + a #MetaInhibitShortcutsDialogResponse + + + + + + Shows the inhibit shortcuts dialog. + + + + + + + a #MetaInhibitShortcutsDialog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a #MetaInhibitShortcutsDialog + + + + + + + + + + + + + + a #MetaInhibitShortcutsDialog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + FILLME + + + + + FILLME + + + + + + + FILLME + + + + + none + + + per-window + + + built-in + + + is reversed + + + always active + + + + + + + + + + + + a #MetaDisplay + + + + a #MetaWindow + + + + a #ClutterKeyEvent + + + + a #MetaKeyBinding + + + + data passed to the function + + + + + + + call in a resize processing phase that is done + before GTK+ repainting (including window borders) is done. + + + used by Mutter to compute which windows should be mapped + + + used by Mutter to see if there's a fullscreen window + + + used by Mutter to send it's idea of the stacking order to the server + + + call before the stage is redrawn + + + call at a very low priority (can be blocked + by running animations or redrawing applications) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Horizontal + + + Vertical + + + Both + + + + Options that can be provided when calling meta_plugin_begin_modal(). + + if set the pointer is already + grabbed by the plugin and should not be grabbed again. + + + if set the keyboard is already + grabbed by the plugin and should not be grabbed again. + + + + + + Accessor for the singleton MetaMonitorManager. + + + The only #MetaMonitorManager there is. + + + + + + + + + + + + + + + + + + + + + + Returns whether the built-in display (i.e. a laptop panel) is turned on. + + + + + + + A #MetaMonitorManager object + + + + + + + + The monitor index or -1 if @id isn't valid or the connector +isn't associated with a logical monitor. + + + + + A #MetaMonitorManager + + + + A valid connector name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Upwards motion + + + Downwards motion + + + Motion to the left + + + Motion to the right + + + Motion up and to the left + + + Motion up and to the right + + + Motion down and to the left + + + Motion down and to the right + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Virtual function called to create a "force quit" dialog +on non-responsive clients. + + + + + + + a #MetaPlugin + + + + a #MetaWindow + + + + + + Virtual function called to create a "inhibit shortcuts" dialog +when a client requests compositor shortcuts to be inhibited. + + + + + + + a #MetaPlugin + + + + a #MetaWindow + + + + + + Virtual function called when the window represented by @actor is destroyed. + + + + + + + + + + a #MetaWindowActor + + + + + + + + + + + + + + + + + Virtual function called when handling each keybinding. + + + %TRUE if the plugin handled the keybinding. + + + + + + + + a #MetaKeyBinding + + + + + + Virtual function called when the workspace-switching effect needs to be +killed prematurely. + + + + + + + + + + + + Virtual function called when the effects on @actor need to be killed +prematurely; the plugin must call the completed() callback as if the effect +terminated naturally. + + + + + + + + + + a #MetaWindowActor + + + + + + Virtual function called when the window represented by @actor is mapped. + + + + + + + + + + a #MetaWindowActor + + + + + + Virtual function called when the window represented by @actor is minimized. + + + + + + + + + + a #MetaWindowActor + + + + + + Virtual function that returns information about the #MetaPlugin. + + + a #MetaPluginInfo. + + + + + a #MetaPlugin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Virtual function called when the compositor starts managing a screen + + + + + + + + + + + + Virtual function called when the window represented by @actor is destroyed. + + + + + + + + + + origin workspace + + + + destination workspace + + + + a #MetaMotionDirection + + + + + + Virtual function called when the window represented by @actor is unminimized. + + + + + + + + + + a #MetaWindowActor + + + + + + Virtual function called when handling each event. + + + %TRUE if the plugin handled the event type (i.e., if the return +value is %FALSE, there will be no subsequent call to the manager +completed() callback, and the compositor must ensure that any appropriate +post-effect cleanup is carried out. + + + + + + + + + + + + + This function is used to grab the keyboard and mouse for the exclusive +use of the plugin. Correct operation requires that both the keyboard +and mouse are grabbed, or thing will break. (In particular, other +passive X grabs in Meta can trigger but not be handled by the normal +keybinding handling code.) However, the plugin can establish the keyboard +and/or mouse grabs ahead of time and pass in the +%META_MODAL_POINTER_ALREADY_GRABBED and/or %META_MODAL_KEYBOARD_ALREADY_GRABBED +options. This facility is provided for two reasons: first to allow using +this function to establish modality after a passive grab, and second to +allow using obscure features of XGrabPointer() and XGrabKeyboard() without +having to add them to this API. + + + whether we successfully grabbed the keyboard and + mouse and made the plugin modal. + + + + + a #MetaPlugin + + + + flags that modify the behavior of the modal grab + + + + the timestamp used for establishing grabs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ends the modal operation begun with meta_plugin_begin_modal(). This +ungrabs both the mouse and keyboard even when +%META_MODAL_POINTER_ALREADY_GRABBED or +%META_MODAL_KEYBOARD_ALREADY_GRABBED were provided as options +when beginnning the modal operation. + + + + + + + a #MetaPlugin + + + + the time used for releasing grabs + + + + + + Gets the #MetaDisplay corresponding to a plugin. + + + the #MetaDisplay for the plugin + + + + + a #MetaPlugin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a #MetaWindowActor + + + + + + + + + + + + + + + + + a #MetaWindowActor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a #MetaWindowActor + + + + + + + + + + + + + + + + + a #MetaWindowActor + + + + + + + + + + + + + + + + + origin workspace + + + + destination workspace + + + + a #MetaMotionDirection + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a #MetaWindowActor + + + + + + + + + + + + + + + + + + + + + + + %TRUE if the plugin handled the event type (i.e., if the return +value is %FALSE, there will be no subsequent call to the manager +completed() callback, and the compositor must ensure that any appropriate +post-effect cleanup is carried out. + + + + + + + + + + + + + + + + + %TRUE if the plugin handled the keybinding. + + + + + + + + a #MetaKeyBinding + + + + + + + + + + + + + + + + + + + + + + + a #MetaPluginInfo. + + + + + a #MetaPlugin + + + + + + + + + + + + + + a #MetaPlugin + + + + a #MetaWindow + + + + + + + + + + + + + + a #MetaPlugin + + + + a #MetaWindow + + + + + + + + + + name of the plugin + + + + version of the plugin + + + + author of the plugin + + + + license of the plugin + + + + description of the plugin + + + + + + + major component of the version number of Meta with which the plugin was compiled + + + + minor component of the version number of Meta with which the plugin was compiled + + + + micro component of the version number of Meta with which the plugin was compiled + + + + version of the plugin API + + + + + + mouse button modifiers + + + focus mode + + + focus new windows + + + attach modal dialogs + + + raise on click + + + action double click titlebar + + + action middle click titlebar + + + action right click titlebar + + + auto-raise + + + auto-raise delay + + + focus change on pointer rest + + + title-bar font + + + number of workspaces + + + dynamic workspaces + + + keybindings + + + disable workarounds + + + button layout + + + workspace names + + + visual bell + + + audible bell + + + visual bell type + + + GNOME accessibility + + + GNOME animations + + + cursor theme + + + cursor size + + + resize with right button + + + edge tiling + + + force fullscreen + + + workspaces only on primary + + + draggable border width + + + auto-maximize + + + center new windows + + + drag threshold + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + X coordinate of the top-left corner + + + + Y coordinate of the top-left corner + + + + Width of the rectangle + + + + Height of the rectangle + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TRUE is some intersection exists and is not degenerate, FALSE + otherwise. + + + + + a #MetaRectangle + + + + another #MetaRectangle + + + + an empty #MetaRectangle, to be filled + with the coordinates of the intersection. + + + + + + + + + + + + + + + + + + + + + + + + + + a #MetaRectangle + + + + another #MetaRectangle + + + + an empty #MetaRectangle, to be filled + with the coordinates of the bounding box. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Stop the associated remote access session. + + + + + + + A #MetaRemoteAccessHandle + + + + + + Stop the associated remote access session. + + + + + + + A #MetaRemoteAccessHandle + + + + + + + + + + + + + + + + + + + + + + + + + + + A #MetaRemoteAccessHandle + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #MetaShadow holds a shadow texture along with information about how to +apply that texture to draw a window texture. (E.g., it knows how big the +unscaled borders are on each side of the shadow texture.) + + + Computes the bounds of the pixels that will be affected by +meta_shadow_paint() + + + + + + + a #MetaShadow + + + + x position of the region to paint a shadow for + + + + y position of the region to paint a shadow for + + + + actual width of the region to paint a shadow for + + + + actual height of the region to paint a shadow for + + + + + + + + + Paints the shadow at the given position, for the specified actual +size of the region. (Since a #MetaShadow can be shared between +different sizes with the same extracted #MetaWindowShape the +size needs to be passed in here.) + + + + + + + + + + + + + x position of the region to paint a shadow for + + + + y position of the region to paint a shadow for + + + + actual width of the region to paint a shadow for + + + + actual height of the region to paint a shadow for + + + + + + + if non-%NULL specifies the visible portion + of the shadow. + + + + if %TRUE, drawing will be clipped strictly + to @clip, otherwise, it will be only used to optimize + drawing. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #MetaShadowFactory is used to create window shadows. It caches shadows internally +so that multiple shadows created for the same shape with the same radius will +share the same MetaShadow. + + + + + + + + + + + the global singleton shadow factory + + + + + Gets the shadow parameters for a particular class of shadows +for either the focused or unfocused state. If the class name +does not name an existing class, default values will be returned +without printing an error. + + + + + + + a #MetaShadowFactory + + + + name of the class of shadow to get the params for + + + + whether the shadow is for a focused window + + + + location to store the current parameter values + + + + + + Gets the appropriate shadow object for drawing shadows for the +specified window shape. The region that we are shadowing is specified +as a combination of a size-invariant extracted shape and the size. +In some cases, the same shadow object can be shared between sizes; +in other cases a different shadow object is used for each size. + + + a newly referenced #MetaShadow; unref with + meta_shadow_unref() + + + + + a #MetaShadowFactory + + + + the size-invariant shape of the window's region + + + + the actual width of the window's region + + + + the actual height of the window's region + + + + name of the class of window shadows + + + + whether the shadow is for a focused window + + + + + + Updates the shadow parameters for a particular class of shadows +for either the focused or unfocused state. If the class name +does not name an existing class, a new class will be created +(the other focus state for that class will have default values +assigned to it.) + + + + + + + a #MetaShadowFactory + + + + name of the class of shadow to set the params for. + the default shadow classes are the names of the different + theme frame types (normal, dialog, modal_dialog, utility, + border, menu, attached) and in addition, popup-menu + and dropdown-menu. + + + + whether the shadow is for a focused window + + + + new parameter values + + + + + + + + + + + + + + + + + + + + + + + + + + The #MetaShadowParams structure holds information about how to draw +a particular style of shadow. + + + the radius (gaussian standard deviation) of the shadow + + + + if >= 0, the shadow doesn't extend above the top + of the shape, and fades out over the given number of pixels + + + + horizontal offset of the shadow with respect to the + shape being shadowed, in pixels + + + + vertical offset of the shadow with respect to the + shape being shadowed, in pixels + + + + opacity of the shadow, from 0 to 255 + + + + + + + + + + + Flattens the two layers of the shaped texture into one ARGB32 +image by alpha blending the two images, and returns the flattened +image. + + + a new cairo surface to be freed with +cairo_surface_destroy(). + + + + + A #MetaShapedTexture + + + + A clipping rectangle, to help prevent extra processing. +In the case that the clipping rectangle is partially or fully +outside the bounds of the texture, the rectangle will be clipped. + + + + + + + + the unshaped texture + + + + + The #MetaShapedTexture + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + As most windows have a large portion that does not require blending, +we can easily turn off blending if we know the areas that do not +require blending. This sets the region where we will not blend for +optimization purposes. + + + + + + + a #MetaShapedTexture + + + + the region of the texture that + can have blending turned off. + + + + + + Repairs the damaged area indicated by @x, @y, @width and @height +and potentially queues a redraw. + + + Whether a redraw have been queued or not + + + + + #MetaShapedTexture + + + + the x coordinate of the damaged area + + + + the y coordinate of the damaged area + + + + the width of the damaged area + + + + the height of the damaged area + + + + + + + + + + + + + + + + + + + Left side + + + Right side + + + Top side + + + Bottom side + + + + + + + + + + + + + + + + Plays a sound from a file. + + + + + + + a #MetaSoundPlayer + + + + file to play + + + + description of the played sound + + + + cancellable for the request + + + + + + Plays a sound from the sound theme. + + + + + + + a #MetaSoundPlayer + + + + sound theme name of the event + + + + description of the event + + + + cancellable for the request + + + + + + + + + + + + + Layers a window can be in. +These MUST be in the order of stacking. + + Desktop layer + + + Bottom layer + + + Normal layer + + + Top layer + + + Dock layer + + + Override-redirect layer + + + Marks the end of the #MetaStackLayer enumeration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates an app launch context. + + + a launch context. + + + + + a #MetaStartupNotification + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #MetaRectangle the #MetaStrut is on + + + + #MetaSide the #MetaStrut is on + + + + + + Normal windows + + + Dock windows + + + Groups + + + All windows + + + + + Show icon (Alt-Tab mode) + + + Show instantly (Alt-Esc mode) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Shift mask + + + Control mask + + + Alt mask + + + Meta mask + + + Super mask + + + Hyper mask + + + Mod2 mask + + + Mod3 mask + + + Mod4 mask + + + Mod5 mask + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Determines if the window should be drawn with a focused appearance. This is +true for focused windows but also true for windows with a focused modal +dialog attached. + + + %TRUE if the window should be drawn with a focused frame + + + + + a #MetaWindow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Converts a desired bounds of the client window into the corresponding bounds +of the window frame (excluding invisible borders and client side shadows.) + + + + + + + a #MetaWindow + + + + client rectangle in root coordinates + + + + location to store the computed corresponding frame bounds. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Follow the chain of parents of @window, skipping transient windows, +and return the "root" window which has no non-transient parent. + + + The root ancestor window + + + + + a #MetaWindow + + + + + + + + + + + + + + + + + + + + If @window is transient, call @func with the window for which it's transient, +repeatedly until either we find a non-transient window, or @func returns %FALSE. + + + + + + + a #MetaWindow + + + + Called for each window which is a transient parent of @window + + + + User data + + + + + + Call @func for every window which is either transient for @window, or is +a transient of a window which is in turn transient for @window. +The order of window enumeration is not defined. + +Iteration will stop if @func at any point returns %FALSE. + + + + + + + a #MetaWindow + + + + Called for each window which is a transient of @window (transitively) + + + + User data + + + + + + Converts a desired frame bounds for a window into the bounds of the client +window. + + + + + + + a #MetaWindow + + + + desired frame bounds for the window + + + + location to store the computed corresponding client rectangle. + + + + + + Gets the rectangle that the pixmap or buffer of @window occupies. + +For X11 windows, this is the server-side geometry of the toplevel +window. + +For Wayland windows, this is the bounding rectangle of the attached +buffer. + + + + + + + a #MetaWindow + + + + pointer to an allocated #MetaRectangle + + + + + + Returns name of the client machine from which this windows was created, +if known (obtained from the WM_CLIENT_MACHINE property). + + + the machine name, or NULL; the string is +owned by the window manager and should not be freed or modified by the +caller. + + + + + a #MetaWindow + + + + + + Returns the #MetaWindowClientType of the window. + + + The root ancestor window + + + + + a #MetaWindow + + + + + + Gets the compositor's wrapper object for @window. + + + the wrapper object. + + + + + a #MetaWindow + + + + + + + + + + + + + + + + + + + The display for @window + + + + + A #MetaWindow + + + + + + + + + + + + a #MetaWindow + + + + + + Gets a region representing the outer bounds of the window's frame. + + + a #cairo_region_t + holding the outer bounds of the window, or %NULL if the window + doesn't have a frame. + + + + + a #MetaWindow + + + + + + Gets the rectangle that bounds @window that is what the user thinks of +as the edge of the window. This doesn't include any extra reactive +area that we or the client adds to the window, or any area that the +client adds to draw a client-side shadow. + + + + + + + a #MetaWindow + + + + pointer to an allocated #MetaRectangle + + + + + + Gets the type of window decorations that should be used for this window. + + + the frame type + + + + + a #MetaWindow + + + + + + + + + + + + a #MetaWindow + + + + + + + + the object path + + + + + a #MetaWindow + + + + + + + + the application ID + + + + + a #MetaWindow + + + + + + + + the object path + + + + + a #MetaWindow + + + + + + + + the object path + + + + + a #MetaWindow + + + + + + + + the theme variant or %NULL + + + + + a #MetaWindow + + + + + + + + the unique name + + + + + a #MetaWindow + + + + + + + + the object path + + + + + a #MetaWindow + + + + + + Gets the location of the icon corresponding to the window. The location +will be provided set by the task bar or other user interface element +displaying the icon, and is relative to the root window. + + + %TRUE if the icon geometry was succesfully retrieved. + + + + + a #MetaWindow + + + + rectangle into which to store the returned geometry. + + + + + + Returns the window id associated with window. + + + The window id + + + + + a #MetaWindow + + + + + + + + + + + + + + + + + Gets the current maximization state of the window, as combination +of the %META_MAXIMIZE_HORIZONTAL and %META_MAXIMIZE_VERTICAL flags; + + + current maximization state + + + + + a #MetaWindow + + + + + + Gets index of the monitor that this window is on. + + + The index of the monitor in the screens monitor list, or -1 +if the window has been recently unmanaged and does not have a monitor. + + + + + a #MetaWindow + + + + + + Gets the current value of the _MUTTER_HINTS property. + +The purpose of the hints is to allow fine-tuning of the Window Manager and +Compositor behaviour on per-window basis, and is intended primarily for +hints that are plugin-specific. + +The property is a list of colon-separated key=value pairs. The key names for +any plugin-specific hints must be suitably namespaced to allow for shared +use; 'mutter-' key prefix is reserved for internal use, and must not be used +by plugins. + + + the _MUTTER_HINTS string, or %NULL if no hints +are set. + + + + + a #MetaWindow + + + + + + Returns pid of the process that created this window, if known (obtained from +the _NET_WM_PID property). + + + the pid, or -1 if not known. + + + + + a #MetaWindow + + + + + + + + + + + + + + + + + Gets an unique id for a sandboxed app (currently flatpaks and snaps are +supported). + + + the sandboxed application ID or %NULL + + + + + a #MetaWindow + + + + + + The stable sequence number is a monotonicially increasing +unique integer assigned to each #MetaWindow upon creation. + +This number can be useful for sorting windows in a stable +fashion. + + + Internal sequence number for this window + + + + + A #MetaWindow + + + + + + + + + + + + + + + + + Returns the matching tiled window on the same monitor as @window. This is +the topmost tiled window in a complementary tile mode that is: + + - on the same monitor; + - on the same workspace; + - spanning the remaining monitor width; + - there is no 3rd window stacked between both tiled windows that's + partially visible in the common edge. + + + the matching tiled window or +%NULL if it doesn't exist. + + + + + a #MetaWindow + + + + + + + + the current title of the window. + + + + + a #MetaWindow + + + + + + Returns the #MetaWindow for the window that is pointed to by the +WM_TRANSIENT_FOR hint on this window (see XGetTransientForHint() +or XSetTransientForHint()). Metacity keeps transient windows above their +parents. A typical usage of this hint is for a dialog that wants to stay +above its associated window. + + + the window this window is transient for, or +%NULL if the WM_TRANSIENT_FOR hint is unset or does not point to a toplevel +window that Metacity knows about. + + + + + a #MetaWindow + + + + + + The user time represents a timestamp for the last time the user +interacted with this window. Note this property is only available +for non-override-redirect windows. + +The property is set by Mutter initially upon window creation, +and updated thereafter on input events (key and button presses) seen by Mutter, +client updates to the _NET_WM_USER_TIME property (if later than the current time) +and when focusing the window. + + + The last time the user interacted with this window. + + + + + a #MetaWindow + + + + + + + + + + + + + + + + + Return the current value of the name part of WM_CLASS X property. + + + + + + + a #MetaWindow + + + + + + Return the current value of the instance part of WM_CLASS X property. + + + + + + + a #MetaWindow + + + + + + Get the work area for all monitors for @window. + + + + + + + a #MetaWindow + + + + a location to store the work area + + + + + + Get the work area for the monitor @window is currently on. + + + + + + + a #MetaWindow + + + + a location to store the work area + + + + + + Get the work area for @window, given the monitor index +@which_monitor. + + + + + + + a #MetaWindow + + + + a moniotr to get the work area for + + + + a location to store the work area + + + + + + Gets the #MetaWorkspace that the window is currently displayed on. +If the window is on all workspaces, returns the currently active +workspace. + + + the #MetaWorkspace for the window + + + + + a #MetaWindow + + + + + + + + + + + + a #MetaWindow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The function determines whether @window is an ancestor of @transient; it does +so by traversing the @transient's ancestors until it either locates @window +or reaches an ancestor that is not transient. + + + %TRUE if window is an ancestor of transient. + + + + + a #MetaWindow + + + + a #MetaWindow + + + + + + Tests if @window is should be attached to its parent window. +(If the "attach_modal_dialogs" option is not enabled, this will +always return %FALSE.) + + + whether @window should be attached to its parent + + + + + a #MetaWindow + + + + + + Check if if the window has decorations drawn by the client. +(window->decorated refers only to whether we should add decorations) + + + + + + + + + + + + + + %TRUE if the window is currently fullscreen + + + + + a #MetaWindow + + + + + + + + + + + + + + + + + + + %TRUE if the window is occupies an entire monitor or + the whole screen. + + + + + a #MetaWindow + + + + + + + + + + + + + + + + + + + %TRUE if the window is on the primary monitor + + + + + a #MetaWindow + + + + + + + + %TRUE if this window isn't managed by mutter; it will +control its own positioning and mutter won't draw decorations +among other things. In X terminology this is "override redirect". + + + + + A #MetaWindow + + + + + + + + %TRUE if this window originates from a host +different from the one running mutter. + + + + + a #MetaWindow + + + + + + + + %TRUE if the window is occupies the + the whole screen (all monitors). + + + + + A #MetaWindow + + + + + + + + + + + + + + + + + Gets whether this window should be ignored by task lists. + + + %TRUE if the skip bar hint is set. + + + + + A #MetaWindow + + + + + + + + + + + + + + + + + + + whether @window is displayed on @workspace, or whether it +will be displayed on all workspaces. + + + + + a #MetaWindow + + + + a #MetaWorkspace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Moves the window to the desired location on window's assigned +workspace, using the northwest edge of the frame as the reference, +instead of the actual window's origin, but only if a frame is present. +Otherwise, acts identically to meta_window_move(). + + + + + + + a #MetaWindow + + + + bool to indicate whether or not this is a user operation + + + + desired x pos + + + + desired y pos + + + + + + Resizes the window so that its outer bounds (including frame) +fit within the given rect + + + + + + + a #MetaWindow + + + + bool to indicate whether or not this is a user operation + + + + new x + + + + new y + + + + desired width + + + + desired height + + + + + + Moves the window to the monitor with index @monitor, keeping +the relative position of the window's top left corner. + + + + + + + a #MetaWindow + + + + desired monitor index + + + + + + + + + + + + + + + + + + + %TRUE if the window requested to bypass the compositor + + + + + a #MetaWindow + + + + + + + + %TRUE if the window requested to opt out of unredirecting + + + + + a #MetaWindow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sets or unsets the location of the icon corresponding to the window. If +set, the location should correspond to a dock, task bar or other user +interface element displaying the icon, and is relative to the root window. + + + + + + + a #MetaWindow + + + + rectangle with the desired geometry or %NULL. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + %TRUE if window would be visible, if its workspace was current + + + + + A #MetaWindow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This is emitted when the position of a window might +have changed. Specifically, this is emitted when the +position of the toplevel window has changed, or when +the position of the client window has changed. + + + + + + + + + + + This is emitted after a window has been shown. + + + + + + This is emitted when the position of a window might +have changed. Specifically, this is emitted when the +size of the toplevel window has changed, or when the +size of the client window has changed. + + + + + + + + + + + + + + + + + + + + + + + Gets the #MetaWindow object that the the #MetaWindowActor is displaying + + + the displayed #MetaWindow + + + + + a #MetaWindowActor + + + + + + Gets the ClutterActor that is used to display the contents of the window, +or NULL if no texture is shown yet, because the window is not mapped. + + + the #ClutterActor for the contents + + + + + a #MetaWindowActor + + + + + + Gets whether the X window that the actor was displaying has been destroyed + + + %TRUE when the window is destroyed, otherwise %FALSE + + + + + a #MetaWindowActor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The ::effects-completed signal will be emitted once all pending compositor +effects are completed. + + + + + + The ::first-frame signal will be emitted the first time a frame +of window contents has been drawn by the application and Mutter +has had the chance to drawn that frame to the screen. If the +window starts off initially hidden, obscured, or on on a +different workspace, the ::first-frame signal will be emitted +even though the user doesn't see the contents. + +MetaDisplay::window-created is a good place to connect to this +signal - at that point, the MetaWindowActor for the window +exists, but the window has reliably not yet been drawn. +Connecting to an existing window that has already been drawn to +the screen is not useful. + + + + + + + + + + + + + + A Wayland based window + + + An X11 based window + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Menu the compositor should display for a given window + + the window manager menu + + + the (fallback) app menu + + + + #MetaWindowShape represents a 9-sliced region with borders on all sides that +are unscaled, and a constant central region that is scaled. For example, +the regions representing two windows that are rounded rectangles, +with the same corner radius but different sizes, have the +same MetaWindowShape. +#MetaWindowShape is designed to be used as part of a hash table key, so has +efficient hash and equal functions. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Converts the shape to to a cairo_region_t using the given width +and height for the central scaled region. + + + a newly created region + + + + + a #MetaWindowShape + + + + size of the central region horizontally + + + + size of the central region vertically + + + + + + + + + + + + + + + + + + + Normal + + + Desktop + + + Dock + + + Dialog + + + Modal dialog + + + Toolbar + + + Menu + + + Utility + + + Splashcreen + + + Dropdown menu + + + Popup menu + + + Tooltip + + + Notification + + + Combobox + + + Drag and drop + + + Other override-redirect window type + + + + + + + + + + + + + + + + + + + + Switches to @workspace and possibly activates the window @focus_this. + +The window @focus_this is activated by calling meta_window_activate() +which will unminimize it and transient parents, raise it and give it +the focus. + +If a window is currently being moved by the user, it will be +moved to @workspace. + +The advantage of calling this function instead of meta_workspace_activate() +followed by meta_window_activate() is that it happens as a unit, so +no other window gets focused first before @focus_this. + + + + + + + a #MetaWorkspace + + + + the #MetaWindow to be focused, or %NULL + + + + timestamp for @focus_this + + + + + + Gets the #MetaDisplay that the workspace is part of. + + + the #MetaDisplay for the workspace + + + + + a #MetaWorkspace + + + + + + Calculate and retrive the workspace that is next to @workspace, +according to @direction and the current workspace layout, as set +by meta_screen_override_workspace_layout(). + + + the workspace next to @workspace, or + @workspace itself if the neighbor would be outside the layout + + + + + a #MetaWorkspace + + + + a #MetaMotionDirection, relative to @workspace + + + + + + Stores the work area in @area. + + + + + + + a #MetaWorkspace + + + + location to store the work area + + + + + + Stores the work area for @which_monitor on @workspace +in @area. + + + + + + + a #MetaWorkspace + + + + a monitor index + + + + location to store the work area + + + + + + + + + + + + + + + + + Gets windows contained on the workspace, including workspace->windows +and also sticky windows. Override-redirect windows are not included. + + + the list of windows. + + + + + + + a #MetaWorkspace + + + + + + Sets a list of struts that will be used in addition to the struts +of the windows in the workspace when computing the work area of +the workspace. + + + + + + + a #MetaWorkspace + + + + list of #MetaStrut + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Append a new workspace to the workspace manager and (optionally) switch to that +display. + + + the newly appended workspace. + + + + + a #MetaWorkspaceManager + + + + %TRUE if the workspace should be switched to after creation + + + + if switching to a new workspace, timestamp to be used when + focusing a window on the new workspace. (Doesn't hurt to pass a valid + timestamp when available even if not switching workspaces.) + + + + + + + + The current workspace + + + + + A #MetaWorkspaceManager + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets the workspace object for one of a workspace manager's workspaces given the workspace +index. It's valid to call this function with an out-of-range index and it +will robustly return %NULL. + + + the workspace object with specified index, or %NULL + if the index is out of range. + + + + + a #MetaWorkspaceManager + + + + index of one of the display's workspaces + + + + + + + + The workspaces for @display + + + + + + + a #MetaWorkspaceManager + + + + + + Explicitly set the layout of workspaces. Once this has been called, the contents of the +_NET_DESKTOP_LAYOUT property on the root window are completely ignored. + + + + + + + a #MetaWorkspaceManager + + + + the corner at which the first workspace is found + + + + if %TRUE the workspaces are laid out in columns rather than rows + + + + number of rows of workspaces, or -1 to determine the number of rows from + @n_columns and the total number of workspaces + + + + number of columns of workspaces, or -1 to determine the number of columns from + @n_rows and the total number of workspaces + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a #MetaX11Display + + + + + + + + + + + + a #MetaX11Display + + + + + + + + + + + + A #MetaX11Display + + + + + + + + + + + + + + + + + + + + + + + a #MetaX11Display + + + + a X window + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + %TRUE iff window is one of mutter's internal "no focus" windows +which will have the focus when there is no actual client window focused. + + + + + A #MetaX11Display + + + + An X11 window + + + + + + + + + + + + + Tells mutter to activate the session. When mutter is a +display server, this tells logind to switch over to +the new session. + + + + + + + Ensure log messages for the given topic @topic +will be printed. + + + + + + + Topic for which logging will be started + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Disables unredirection, can be usefull in situations where having +unredirected windows is undesireable like when recording a video. + + + + + + + a #MetaDisplay + + + + + + + + + + + + + + + + + Enables unredirection which reduces the overhead for apps like games. + + + + + + + a #MetaDisplay + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Converts a frame type enum value to the name string that would +appear in the theme definition file. + + + the string value + + + + + a #MetaFrameType + + + + + + + + + + + + list to deep free + + + + + + + + + + + + + + + + + + + + + + Accessor for the singleton MetaBackend. + + + The only #MetaBackend there is. + + + + + + + The feedback group corresponding to @display + + + + + a #MetaDisplay + + + + + + + + + + + + Returns a #GOptionContext initialized with mutter-related options. +Parse the command-line args with this before calling meta_init(). + + + the #GOptionContext + + + + + + + + + + + a #MetaDisplay + + + + + + + + + + + + + + The #ClutterStage for the display + + + + + a #MetaDisplay + + + + + + + + The top window group corresponding to @display + + + + + a #MetaDisplay + + + + + + + + The set of #MetaWindowActor on @display + + + + + + + a #MetaDisplay + + + + + + + + The window group corresponding to @display + + + + + a #MetaDisplay + + + + + + + + + + + + + + + + + Initialize mutter. Call this after meta_get_option_context() and +meta_plugin_manager_set_plugin_type(), and before meta_run(). + + + + + + + + + + + + + Returns %TRUE if this instance of Mutter comes from Mutter +restarting itself (for example to enable/disable stereo.) +See meta_restart(). If this is the case, any startup visuals +or animations should be suppressed. + + + + + + + Returns whether X synchronisation is currently enabled. + +FIXME: This is *only* called by meta_display_open(), but by that time +we have already turned syncing on or off on startup, and we don't +have any way to do so while Mutter is running, so it's rather +pointless. + + + %TRUE if we must wait for events whenever we send X requests; +%FALSE otherwise. + + + + + + + + + + + + + + + + + Allows users to register a custom handler for a +builtin key binding. + + + %TRUE if the binding known as @name was found, +%FALSE otherwise. + + + + + The name of the keybinding to set + + + + The new handler function + + + + User data to pass to the callback + + + + Will be called when this handler is overridden. + + + + + + Sets up a callback to be called at some later time. @when determines the +particular later occasion at which it is called. This is much like g_idle_add(), +except that the functions interact properly with clutter event handling. +If a "later" function is added from a clutter event handler, and is supposed +to be run before the stage is redrawn, it will be run before that redraw +of the stage, not the next one. + + + an integer ID (guaranteed to be non-zero) that can be used + to cancel the callback and prevent it from being run. + + + + + enumeration value determining the phase at which to run the callback + + + + callback to run later + + + + data to pass to the callback + + + + function to call to destroy @data when it is no longer in use, or %NULL + + + + + + Removes a callback added with meta_later_add() + + + + + + + the integer ID returned from meta_later_add() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a #MetaPrefsChangedFunc + + + + data passed to the function + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a #MetaPrefsChangedFunc + + + + data passed to the function + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Stops Mutter. This tells the event loop to stop processing; it is +rather dangerous to use this because this will leave the user with +no window manager. We generally do this only if, for example, the +session manager asks us to; we assume the session manager knows +what it's talking about. + + + + + + + The success or failure code to return to the calling process. + + + + + + + + + + + + + + + + + + + + + + + + + + Registers mutter with the session manager. Call this after completing your own +initialization. + +This should be called when the session manager can safely continue to the +next phase of startup and potentially display windows. + + + + + + + Stop printing log messages for the given topic @topic. Note +that this method does not stack with meta_add_verbose_topic(); +i.e. if two calls to meta_add_verbose_topic() for the same +topic are made, one call to meta_remove_verbose_topic() will +remove it. + + + + + + + Topic for which logging will be stopped + + + + + + Starts the process of restarting the compositor. Note that Mutter's +involvement here is to make the restart visually smooth for the +user - it cannot itself safely reexec a program that embeds libmuttter. +So in order for this to work, the compositor must handle two +signals - MetaDisplay::show-restart-message, to display the +message passed here on the Clutter stage, and ::restart to actually +reexec the compositor. + + + + + + + message to display to the user, or %NULL + + + + + + Runs mutter. Call this after completing initialization that doesn't require +an event loop. + + + mutter's exit status + + + + + Set the value to use for the _GNOME_WM_KEYBINDINGS property. To take +effect, it is necessary to call this function before meta_init(). + + + + + + + value for _GNOME_WM_KEYBINDINGS + + + + + + + + + + + + + + + + + + + + Set the value to use for the _NET_WM_NAME property. To take effect, +it is necessary to call this function before meta_init(). + + + + + + + value for _NET_WM_NAME + + + + + + + + + + + + type of dialog + + + + message + + + + timeout + + + + display + + + + text for Ok button + + + + text for Cancel button + + + + icon name + + + + window XID of parent + + + + columns + + + + + + entries + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 4cdb923fac77c894692688fdfc2f04f4bf21c953 Mon Sep 17 00:00:00 2001 From: Philip Chimento Date: Mon, 23 Dec 2019 22:41:14 -0500 Subject: [PATCH 12/12] Add maintainers in DOAP file See: Infrastructure/Websites#280 --- devdocsgjs.doap | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 devdocsgjs.doap diff --git a/devdocsgjs.doap b/devdocsgjs.doap new file mode 100644 index 0000000000..7ecbf618f8 --- /dev/null +++ b/devdocsgjs.doap @@ -0,0 +1,46 @@ + + + + devdocsgjs + devdocsgjs + + + GNOME DevDocs + + GNOME DevDocs + + + + + + Ruby + + + + Andy Holmes + + andyholmes + + + + + + Meg Ford + + megford + + + + + + Philip Chimento + + ptomato + pchimento + + +