From: Felix Kuehling Date: Mon, 11 Apr 2005 21:41:40 +0000 (+0000) Subject: Manage option translations in separate .po files to make translations X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=55ba0dccc92797a0411ce315328100e28f6343b7;p=mesa.git Manage option translations in separate .po files to make translations easier for non-programmers familiar with GNU gettext. For now there is only a German translation but more translations are encouraged. Translatable strings are extracted from t_options.h containing option definitions with English descriptions. A corresponding header options.h with all available translations of option descriptions is generated by gen_xmlpool.py and included by xmlpool.h. Many option descriptions were rephrased to make them unambiguous for translation without context. They are hopefully more helpful to users at the same time. --- diff --git a/src/mesa/drivers/dri/common/xmlpool.h b/src/mesa/drivers/dri/common/xmlpool.h index 46096d8c92b..7fbc6e800d0 100644 --- a/src/mesa/drivers/dri/common/xmlpool.h +++ b/src/mesa/drivers/dri/common/xmlpool.h @@ -1,14 +1,3 @@ -/* -*- mode:C; coding: mult-utf-8-unix -*- - * - * !!! Important: This file is encoded in UTF-8 !!! - * - * Note (Emacs): You need Mule. In Debian the package is called - * mule-ucs. - * - * Note (Emacs): You may have to enable multibyte characters in the - * Mule customization group or by setting - * default-enable-multibyte-characters to t in your .emacs: - */ /* * XML DRI client-side driver configuration * Copyright (C) 2003 Felix Kuehling @@ -37,8 +26,11 @@ * \brief Pool of common options * \author Felix Kuehling * - * This file defines macros that can be used to construct driConfigOptions - * in the drivers. + * This file defines macros that can be used to construct + * driConfigOptions in the drivers. Common options are defined in + * xmlpool/t_options.h from which xmlpool/options.h is generated with + * translations. This file defines generic helper macros and includes + * xmlpool/options.h. */ #ifndef __XMLPOOL_H @@ -92,255 +84,11 @@ #define DRI_CONF_ENUM(value,text) \ "\n" + /* - * predefined option sections and options with multi-lingual descriptions + * Predefined option sections and options with multi-lingual descriptions + * are now automatically generated. */ - -/** \brief Debugging options */ -#define DRI_CONF_SECTION_DEBUG \ -DRI_CONF_SECTION_BEGIN \ - DRI_CONF_DESC(en,"Debugging") \ - DRI_CONF_DESC(de,"Fehlersuche") - -#define DRI_CONF_NO_RAST(def) \ -DRI_CONF_OPT_BEGIN(no_rast,bool,def) \ - DRI_CONF_DESC(en,"Disable 3D acceleration") \ - DRI_CONF_DESC(de,"3D-Beschleunigung abschalten") \ -DRI_CONF_OPT_END - -#define DRI_CONF_PERFORMANCE_BOXES(def) \ -DRI_CONF_OPT_BEGIN(performance_boxes,bool,def) \ - DRI_CONF_DESC(en,"Show performance boxes") \ - DRI_CONF_DESC(de,"Zeige Performanceboxen") \ -DRI_CONF_OPT_END - -#define DRI_CONF_DEBUG_DMA(def) \ -DRI_CONF_OPT_BEGIN(debug_dma,bool,def) \ - DRI_CONF_DESC(en,"Debug DMA buffers") \ - DRI_CONF_DESC(de,"DMA Puffer debuggen") \ -DRI_CONF_OPT_END - - -/** \brief Texture-related options */ -#define DRI_CONF_SECTION_QUALITY \ -DRI_CONF_SECTION_BEGIN \ - DRI_CONF_DESC(en,"Image Quality") \ - DRI_CONF_DESC(de,"Bildqualität") - -#define DRI_CONF_TEXTURE_DEPTH_FB 0 -#define DRI_CONF_TEXTURE_DEPTH_32 1 -#define DRI_CONF_TEXTURE_DEPTH_16 2 -#define DRI_CONF_TEXTURE_DEPTH_FORCE_16 3 -#define DRI_CONF_TEXTURE_DEPTH(def) \ -DRI_CONF_OPT_BEGIN_V(texture_depth,enum,def,"0:3") \ - DRI_CONF_DESC_BEGIN(en,"Texture color depth") \ - DRI_CONF_ENUM(0,"Prefer frame buffer color depth") \ - DRI_CONF_ENUM(1,"Prefer 32 bits") \ - DRI_CONF_ENUM(2,"Prefer 16 bits") \ - DRI_CONF_ENUM(3,"Force 16 bits") \ - DRI_CONF_DESC_END \ - DRI_CONF_DESC_BEGIN(de,"Texturfarbtiefe") \ - DRI_CONF_ENUM(0,"Bevorzugt so wie Framebuffer") \ - DRI_CONF_ENUM(1,"Bevorzugt 32 Bits") \ - DRI_CONF_ENUM(2,"Bevorzugt 16 Bits") \ - DRI_CONF_ENUM(3,"Höchstens 16 Bits") \ - DRI_CONF_DESC_END \ -DRI_CONF_OPT_END - -#define DRI_CONF_DEF_MAX_ANISOTROPY(def,range) \ -DRI_CONF_OPT_BEGIN_V(def_max_anisotropy,float,def,range) \ - DRI_CONF_DESC(en,"Default maximum value for anisotropic texture filtering") \ - DRI_CONF_DESC(de,"Standard Maximalwert für anisotropische Texturfilterung") \ -DRI_CONF_OPT_END - -#define DRI_CONF_NO_NEG_LOD_BIAS(def) \ -DRI_CONF_OPT_BEGIN(no_neg_lod_bias,bool,def) \ - DRI_CONF_DESC(en,"Forbid negative texture LOD bias") \ - DRI_CONF_DESC(de,"Verbiete negativen Textur-LOD-Bias") \ -DRI_CONF_OPT_END - -#define DRI_CONF_FORCE_S3TC_ENABLE(def) \ -DRI_CONF_OPT_BEGIN(force_s3tc_enable,bool,def) \ - DRI_CONF_DESC(en,"enable s3tc even if software support is not available") \ - DRI_CONF_DESC(de,"Benutze s3tc auch ohne Softwareunterstuetzung") \ -DRI_CONF_OPT_END - -#define DRI_CONF_COLOR_REDUCTION_ROUND 0 -#define DRI_CONF_COLOR_REDUCTION_DITHER 1 -#define DRI_CONF_COLOR_REDUCTION(def) \ -DRI_CONF_OPT_BEGIN_V(color_reduction,enum,def,"0:1") \ - DRI_CONF_DESC_BEGIN(en,"Default color reduction method") \ - DRI_CONF_ENUM(0,"Round or truncate") \ - DRI_CONF_ENUM(1,"Dither") \ - DRI_CONF_DESC_END \ - DRI_CONF_DESC_BEGIN(de,"Standardmethode zur Farbreduktion") \ - DRI_CONF_ENUM(0,"Runden oder Abschneiden") \ - DRI_CONF_ENUM(1,"Rastern") \ - DRI_CONF_DESC_END \ -DRI_CONF_OPT_END - -#define DRI_CONF_ROUND_TRUNC 0 -#define DRI_CONF_ROUND_ROUND 1 -#define DRI_CONF_ROUND_MODE(def) \ -DRI_CONF_OPT_BEGIN_V(round_mode,enum,def,"0:1") \ - DRI_CONF_DESC_BEGIN(en,"Round or truncate colors") \ - DRI_CONF_ENUM(0,"Truncate") \ - DRI_CONF_ENUM(1,"Round") \ - DRI_CONF_DESC_END \ - DRI_CONF_DESC_BEGIN(de,"Farben runden oder abschneiden") \ - DRI_CONF_ENUM(0,"Abschneiden") \ - DRI_CONF_ENUM(1,"Runden") \ - DRI_CONF_DESC_END \ -DRI_CONF_OPT_END - -#define DRI_CONF_DITHER_XERRORDIFF 0 -#define DRI_CONF_DITHER_XERRORDIFFRESET 1 -#define DRI_CONF_DITHER_ORDERED 2 -#define DRI_CONF_DITHER_MODE(def) \ -DRI_CONF_OPT_BEGIN_V(dither_mode,enum,def,"0:2") \ - DRI_CONF_DESC_BEGIN(en,"Color dithering") \ - DRI_CONF_ENUM(0,"Horizontal error diffusion") \ - DRI_CONF_ENUM(1,"Horizontal error diffusion, reset error at line start") \ - DRI_CONF_ENUM(2,"Ordered 2D dithering") \ - DRI_CONF_DESC_END \ - DRI_CONF_DESC_BEGIN(de,"Farben rastern") \ - DRI_CONF_ENUM(0,"Horizontale Fehlerstreuung") \ - DRI_CONF_ENUM(1,"Horizontale Fehlerstreuung, Fehler am Zeilenanfang zurücksetzen") \ - DRI_CONF_ENUM(2,"Geordnete 2D Farbrasterung") \ - DRI_CONF_DESC_END \ -DRI_CONF_OPT_END - -#define DRI_CONF_FLOAT_DEPTH(def) \ -DRI_CONF_OPT_BEGIN(float_depth,bool,def) \ - DRI_CONF_DESC(en,"Floating point depth buffer") \ - DRI_CONF_DESC(de,"Fließkomma z-Puffer") \ -DRI_CONF_OPT_END - -/** \brief Performance-related options */ -#define DRI_CONF_SECTION_PERFORMANCE \ -DRI_CONF_SECTION_BEGIN \ - DRI_CONF_DESC(en,"Performance") \ - DRI_CONF_DESC(de,"Leistung") - -#define DRI_CONF_TCL_SW 0 -#define DRI_CONF_TCL_PIPELINED 1 -#define DRI_CONF_TCL_VTXFMT 2 -#define DRI_CONF_TCL_CODEGEN 3 -#define DRI_CONF_TCL_MODE(def) \ -DRI_CONF_OPT_BEGIN_V(tcl_mode,enum,def,"0:3") \ - DRI_CONF_DESC_BEGIN(en,"TCL mode (Transformation, Clipping, Lighting)") \ - DRI_CONF_ENUM(0,"Software") \ - DRI_CONF_ENUM(1,"TCL stage in MESA pipeline") \ - DRI_CONF_ENUM(2,"Bypass MESA's pipeline") \ - DRI_CONF_ENUM(3,"Bypass MESA's pipeline with state-based code generation") \ - DRI_CONF_DESC_END \ - DRI_CONF_DESC_BEGIN(de,"TCL Modus (Transformation, Clipping, Licht)") \ - DRI_CONF_ENUM(0,"Software") \ - DRI_CONF_ENUM(1,"TCL Stufe in MESA Pipeline") \ - DRI_CONF_ENUM(2,"Umgehe MESAs Pipeline") \ - DRI_CONF_ENUM(3,"Umgehe MESAs Pipeline mit zustandsbasierter Codegenerierung") \ - DRI_CONF_DESC_END \ -DRI_CONF_OPT_END - -#define DRI_CONF_FTHROTTLE_BUSY 0 -#define DRI_CONF_FTHROTTLE_USLEEPS 1 -#define DRI_CONF_FTHROTTLE_IRQS 2 -#define DRI_CONF_FTHROTTLE_MODE(def) \ -DRI_CONF_OPT_BEGIN_V(fthrottle_mode,enum,def,"0:2") \ - DRI_CONF_DESC_BEGIN(en,"Frame throttling") \ - DRI_CONF_ENUM(0,"Busy waiting") \ - DRI_CONF_ENUM(1,"Usleeps") \ - DRI_CONF_ENUM(2,"Software interrupts") \ - DRI_CONF_DESC_END \ - DRI_CONF_DESC_BEGIN(de,"Framethrottling") \ - DRI_CONF_ENUM(0,"Aktives Warten") \ - DRI_CONF_ENUM(1,"Usleeps") \ - DRI_CONF_ENUM(2,"Software Interrutps") \ - DRI_CONF_DESC_END \ -DRI_CONF_OPT_END - -#define DRI_CONF_VBLANK_NEVER 0 -#define DRI_CONF_VBLANK_DEF_INTERVAL_0 1 -#define DRI_CONF_VBLANK_DEF_INTERVAL_1 2 -#define DRI_CONF_VBLANK_ALWAYS_SYNC 3 -#define DRI_CONF_VBLANK_MODE(def) \ -DRI_CONF_OPT_BEGIN_V(vblank_mode,enum,def,"0:3") \ - DRI_CONF_DESC_BEGIN(en,"Synchronization with vertical refresh (swap intervals)") \ - DRI_CONF_ENUM(0,"Never, FPS rulez!") \ - DRI_CONF_ENUM(1,"Application preference, default interval 0") \ - DRI_CONF_ENUM(2,"Application preference, default interval 1") \ - DRI_CONF_ENUM(3,"Application preference, always synchronize with refresh") \ - DRI_CONF_DESC_END \ - DRI_CONF_DESC_BEGIN(de,"Synchronisation mit dem vertikalen Bildaufbau (swap intervals)") \ - DRI_CONF_ENUM(0,"Niemals, immer die maximale Framerate") \ - DRI_CONF_ENUM(1,"Anwendung entscheidet, Standardinterval 0") \ - DRI_CONF_ENUM(2,"Anwendung entscheidet, Standardinterval 1") \ - DRI_CONF_ENUM(3,"Anwendung entscheidet, immer mit Bildaufbau synchronisieren") \ - DRI_CONF_DESC_END \ -DRI_CONF_OPT_END - -#define DRI_CONF_HYPERZ_DISABLED 0 -#define DRI_CONF_HYPERZ_ENABLED 1 -#define DRI_CONF_HYPERZ(def) \ -DRI_CONF_OPT_BEGIN(hyperz,bool,def) \ - DRI_CONF_DESC(en,"Use hyperz") \ - DRI_CONF_DESC(de,"Hyperz benutzen") \ -DRI_CONF_OPT_END - -#define DRI_CONF_MAX_TEXTURE_UNITS(def,min,max) \ -DRI_CONF_OPT_BEGIN_V(texture_units,int,def, # min ":" # max ) \ - DRI_CONF_DESC(en,"Number of texture units") \ - DRI_CONF_DESC(de,"Anzahl der Textureinheiten") \ -DRI_CONF_OPT_END - -#define DRI_CONF_TEXTURE_LEVEL_HACK(def) \ -DRI_CONF_OPT_BEGIN(texture_level_hack,bool,def) \ - DRI_CONF_DESC(en,"Enable texture level hack for radeon/r200 for playing games with compressed textures") \ -DRI_CONF_OPT_END - -#define DRI_CONF_TEXTURE_BLEND_QUALITY(def,range) \ -DRI_CONF_OPT_BEGIN_V(texture_blend_quality,float,def,range) \ - DRI_CONF_DESC(en, "texture blend quality, aka brilinear texture filtering") \ - DRI_CONF_DESC(de, "Texturfilterqualität, auch bekannt als brilineare Texturfilterung") \ -DRI_CONF_OPT_END - -#define DRI_CONF_TEXTURE_HEAPS_ALL 0 -#define DRI_CONF_TEXTURE_HEAPS_CARD 1 -#define DRI_CONF_TEXTURE_HEAPS_GART 2 -#define DRI_CONF_TEXTURE_HEAPS(def) \ -DRI_CONF_OPT_BEGIN_V(texture_heaps,enum,def,"0:2") \ - DRI_CONF_DESC_BEGIN(en,"Used types of texture memory") \ - DRI_CONF_ENUM(0,"All available") \ - DRI_CONF_ENUM(1,"Only card memory (if available)") \ - DRI_CONF_ENUM(2,"Only GART (AGP/PCIE) memory (if available)") \ - DRI_CONF_DESC_END \ - DRI_CONF_DESC_BEGIN(de,"Verwendete Texturspeicherarten") \ - DRI_CONF_ENUM(0,"Alle verfügbaren") \ - DRI_CONF_ENUM(1,"Nur Grafikspeicher (falls vorhanden)") \ - DRI_CONF_ENUM(2,"Nur GART (AGP/PCIE) Speicher (falls vorhanden)") \ - DRI_CONF_DESC_END \ -DRI_CONF_OPT_END - -/* Options for features that are not done in hardware by the driver (like GL_ARB_vertex_program - On cards where there is no documentation (r200) or on rasterization-only hardware). */ -#define DRI_CONF_SECTION_SOFTWARE \ -DRI_CONF_SECTION_BEGIN \ - DRI_CONF_DESC(de,"Funktionalität, die nicht durch die Hardware beschleunigt wird") \ - DRI_CONF_DESC(en,"Features that are not hardware-accelerated") - -#define DRI_CONF_ARB_VERTEX_PROGRAM(def) \ -DRI_CONF_OPT_BEGIN(arb_vertex_program,bool,def) \ - DRI_CONF_DESC(de,"GL_ARB_vertex_program aktivieren") \ - DRI_CONF_DESC(en,"Enable GL_ARB_vertex_program") \ - DRI_CONF_DESC(fr,"Activer GL_ARB_vertex_program") \ -DRI_CONF_OPT_END - -#define DRI_CONF_NV_VERTEX_PROGRAM(def) \ -DRI_CONF_OPT_BEGIN(nv_vertex_program,bool,def) \ - DRI_CONF_DESC(de,"GL_NV_vertex_program aktivieren") \ - DRI_CONF_DESC(en,"Enable GL_NV_vertex_program") \ - DRI_CONF_DESC(fr,"Activer GL_NV_vertex_program") \ -DRI_CONF_OPT_END - +#include "xmlpool/options.h" #endif diff --git a/src/mesa/drivers/dri/common/xmlpool/Makefile b/src/mesa/drivers/dri/common/xmlpool/Makefile new file mode 100644 index 00000000000..15450d912ae --- /dev/null +++ b/src/mesa/drivers/dri/common/xmlpool/Makefile @@ -0,0 +1,96 @@ +# Convenient makefile for managing translations. + +# Prerequisites: +# - GNU gettext +# - Python + +# Adding new translations +# ----------------------- + +# To start working on a new translation edit the POS=... line +# below. If you want to add for example a french translation, add +# fr.po. + +# Then run "make po" to generate a fresh .po file from translatable +# strings in t_options.h. Now you can edit the new .po file (fr.po in +# the example above) to translate the strings. Please make sure that +# your editor encodes the file in UTF-8. + +# Updating existing translations +# ------------------------------ + +# Run "make po" to update .po files with new translatable strings from +# t_options.h. Now you can edit the .po files you're interested +# in. Please make sure that your editor encodes the file in UTF-8. + +# Updating options.h +# ------------------ + +# Finally run "make" to generate options.h from t_options.h with all +# translations. Now you can rebuild the drivers. Any common options +# used by the drivers will have option descriptions with the latest +# translations. + +# Publishing translations +# ----------------------- + +# To get your translation(s) into Mesa CVS, please send me your +# .po file. + +# More information: +# - info gettext + +# The set of supported languages. Add languages as needed. +POS=de.po + +# +# Don't change anything below, unless you know what you're doing. +# +LANGS=$(POS:%.po=%) +MOS=$(POS:%.po=%/LC_MESSAGES/options.mo) +POT=xmlpool.pot + +.PHONY: all clean pot po mo + +all: options.h + +# Only intermediate files are cleaned up. options.h is not deleted because +# it's in CVS. +clean: + rm -f $(POT) *~ + rm -rf $(LANGS) + +# Default target options.h +options.h: t_options.h mo + python gen_xmlpool.py $(LANGS) > options.h + +# Update .mo files from the corresponding .po files. +mo: + @for mo in $(MOS); do \ + lang=$${mo%%/*}; \ + echo "Updating $$mo from $$lang.po."; \ + mkdir -p $${mo%/*}; \ + msgfmt -o $$mo $$lang.po; \ + done + +# Use this target to create or update .po files with new messages in +# driconf.py. +po: $(POS) + +pot: $(POT) + +# Extract message catalog from driconf.py. +$(POT): t_options.h + xgettext -L C --from-code utf-8 -o $(POT) t_options.h + +# Create or update a .po file for a specific language. +%.po: $(POT) + @if [ -f $@ ]; then \ + echo "Merging new strings from $(POT) into $@."; \ + mv $@ $@~; \ + msgmerge -o $@ $@~ $(POT); \ + else \ + echo "Initializing $@ from $(POT)."; \ + msginit -i $(POT) -o $@~ --locale=$*; \ + sed -e 's/charset=.*\\n/charset=UTF-8\\n/' $@~ > $@; \ + fi diff --git a/src/mesa/drivers/dri/common/xmlpool/de.po b/src/mesa/drivers/dri/common/xmlpool/de.po new file mode 100644 index 00000000000..e287d0fe79b --- /dev/null +++ b/src/mesa/drivers/dri/common/xmlpool/de.po @@ -0,0 +1,231 @@ +# German translations for DRI driver options. +# Copyright (C) 2005 Felix Kuehling +# This file is distributed under the same license as the Mesa package. +# Felix Kuehling , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: Mesa 6.3\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-04-11 23:19+0200\n" +"PO-Revision-Date: 2005-04-11 01:34+0200\n" +"Last-Translator: Felix Kuehling \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: t_options.h:53 +msgid "Debugging" +msgstr "Fehlersuche" + +#: t_options.h:57 +msgid "Disable 3D acceleration" +msgstr "3D-Beschleunigung abschalten" + +#: t_options.h:62 +msgid "Show performance boxes" +msgstr "Zeige Performanceboxen" + +#: t_options.h:69 +msgid "Image Quality" +msgstr "Bildqualität" + +#: t_options.h:77 +msgid "Texture color depth" +msgstr "Texturfarbtiefe" + +#: t_options.h:78 +msgid "Prefer frame buffer color depth" +msgstr "Bevorzuge Farbtiefe des Framebuffers" + +#: t_options.h:79 +msgid "Prefer 32 bits per texel" +msgstr "Bevorzuge 32 bits pro Texel" + +#: t_options.h:80 +msgid "Prefer 16 bits per texel" +msgstr "Bevorzuge 16 bits pro Texel" + +#: t_options.h:81 +msgid "Force 16 bits per texel" +msgstr "Erzwinge 16 bits pro Texel" + +#: t_options.h:87 +msgid "Initial maximum value for anisotropic texture filtering" +msgstr "Initialer Maximalwert für anisotropische Texturfilterung" + +#: t_options.h:92 +msgid "Forbid negative texture LOD bias" +msgstr "Verbiete negative Textur-Detailgradverschiebung" + +#: t_options.h:97 +msgid "" +"Enable S3TC texture compression even if software support is not available" +msgstr "" +"Aktiviere S3TC Texturkomprimierung auch wenn die nötige " +"Softwareunterstützung fehlt" + +#: t_options.h:104 +msgid "Initial color reduction method" +msgstr "Initiale Farbreduktionsmethode" + +#: t_options.h:105 +msgid "Round colors" +msgstr "Farben runden" + +#: t_options.h:106 +msgid "Dither colors" +msgstr "Farben rastern" + +#: t_options.h:114 +msgid "Color rounding method" +msgstr "Farbrundungsmethode" + +#: t_options.h:115 +msgid "Round color components downward" +msgstr "Farbkomponenten abrunden" + +#: t_options.h:116 +msgid "Round to nearest color" +msgstr "Zur ähnlichsten Farbe runden" + +#: t_options.h:125 +msgid "Color dithering method" +msgstr "Farbrasterungsmethode" + +#: t_options.h:126 +msgid "Horizontal error diffusion" +msgstr "Horizontale Fehlerstreuung" + +#: t_options.h:127 +msgid "Horizontal error diffusion, reset error at line start" +msgstr "Horizontale Fehlerstreuung, Fehler am Zeilenanfang zurücksetzen" + +#: t_options.h:128 +msgid "Ordered 2D color dithering" +msgstr "Geordnete 2D Farbrasterung" + +#: t_options.h:134 +msgid "Floating point depth buffer" +msgstr "Fließkomma z-Puffer" + +#: t_options.h:140 +msgid "Performance" +msgstr "Leistung" + +#: t_options.h:148 +msgid "TCL mode (Transformation, Clipping, Lighting)" +msgstr "TCL-Modus (Transformation, Clipping, Licht)" + +#: t_options.h:149 +msgid "Use software TCL pipeline" +msgstr "Benutze die Software-TCL-Pipeline" + +#: t_options.h:150 +msgid "Use hardware TCL as first TCL pipeline stage" +msgstr "Benutze Hardware TCL als erste Stufe der TCL-Pipeline" + +#: t_options.h:151 +msgid "Bypass the TCL pipeline" +msgstr "Umgehe die TCL-Pipeline" + +#: t_options.h:152 +msgid "" +"Bypass the TCL pipeline with state-based machine code generated on-the-fly" +msgstr "" +"Umgehe die TCL-Pipeline mit zur Laufzeit erzeugtem, zustandsbasiertem " +"Maschinencode" + +#: t_options.h:161 +msgid "Method to limit rendering latency" +msgstr "Methode zur Begrenzung der Bildverzögerung" + +#: t_options.h:162 +msgid "Busy waiting for the graphics hardware" +msgstr "Aktives Warten auf die Grafikhardware" + +#: t_options.h:163 +msgid "Sleep for brief intervals while waiting for the graphics hardware" +msgstr "Kurze Schlafintervalle beim Warten auf die Grafikhardware" + +#: t_options.h:164 +msgid "Let the graphics hardware emit a software interrupt and sleep" +msgstr "" +"Die Grafikhardware eine Softwareunterbrechnung erzeugen lassen und schlafen" + +#: t_options.h:174 +msgid "Synchronization with vertical refresh (swap intervals)" +msgstr "Synchronisation mit der vertikalen Bildwiederholung" + +#: t_options.h:175 +msgid "Never synchronize with vertical refresh, ignore application's choice" +msgstr "" +"Niemals mit der Bildwiederholung synchronisieren, Anweisungen der Anwendung " +"ignorieren" + +#: t_options.h:176 +msgid "Initial swap interval 0, obey application's choice" +msgstr "Initiales Bildinterval 0, Anweisungen der Anwendung gehorchen" + +#: t_options.h:177 +msgid "Initial swap interval 1, obey application's choice" +msgstr "Initiales Bildinterval 1, Anweisungen der Anwendung gehorchen" + +#: t_options.h:178 +msgid "" +"Always synchronize with vertical refresh, application chooses the minimum " +"swap interval" +msgstr "" +"Immer mit der Bildwiederholung synchronisieren, Anwendung wählt das minmale " +"Bildinterval" + +#: t_options.h:186 +msgid "Use HyperZ to boost performance" +msgstr "HyperZ zur Leistungssteigerung verwenden" + +#: t_options.h:191 +msgid "Number of texture units used" +msgstr "Anzahl der benutzten Textureinheiten" + +#: t_options.h:196 +msgid "" +"Enable hack to allow larger textures with texture compression on radeon/r200" +msgstr "" +"Hack aktivieren, der mit Texturkompression auf radeon/r200 größere Texturen " +"erlaubt" + +#: t_options.h:201 +msgid "Texture filtering quality vs. speed, AKA “brilinear” texture filtering" +msgstr "" +"Texturfilterqualität versus -geschwindigkeit, auch bekannt als „brilineare“ " +"Texturfilterung" + +#: t_options.h:209 +msgid "Used types of texture memory" +msgstr "Benutzte Arten von Texturspeicher" + +#: t_options.h:210 +msgid "All available memory" +msgstr "Aller verfügbarer Speicher" + +#: t_options.h:211 +msgid "Only card memory (if available)" +msgstr "Nur Grafikspeicher (falls verfügbar)" + +#: t_options.h:212 +msgid "Only GART (AGP/PCIE) memory (if available)" +msgstr "Nur GART-Speicher (AGP/PCIE) (falls verfügbar)" + +#: t_options.h:220 +msgid "Features that are not hardware-accelerated" +msgstr "Funktionalität, die nicht hardwarebeschleunigt ist" + +#: t_options.h:224 +msgid "Enable extension GL_ARB_vertex_program" +msgstr "Erweiterung GL_ARB_vertex_program aktivieren" + +#: t_options.h:229 +msgid "Enable extension GL_NV_vertex_program" +msgstr "Erweiterung GL_NV_vertex_program aktivieren" diff --git a/src/mesa/drivers/dri/common/xmlpool/gen_xmlpool.py b/src/mesa/drivers/dri/common/xmlpool/gen_xmlpool.py new file mode 100644 index 00000000000..11e24b1332e --- /dev/null +++ b/src/mesa/drivers/dri/common/xmlpool/gen_xmlpool.py @@ -0,0 +1,187 @@ +#!/usr/bin/python + +import sys +import gettext +import re + +# List of supported languages +languages = sys.argv[1:] + +# Escape special characters in C strings +def escapeCString (s): + escapeSeqs = {'\a' : '\\a', '\b' : '\\b', '\f' : '\\f', '\n' : '\\n', + '\r' : '\\r', '\t' : '\\t', '\v' : '\\v', + '"' : "''", '\\' : '\\\\'} + # " -> '' is a hack. Quotes (") aren't possible in XML attributes. + # Better use Unicode characters for typographic quotes in option + # descriptions and translations. + i = 0 + r = '' + while i < len(s): + if escapeSeqs.has_key(s[i]): + if s[i] == '"': + sys.stderr.write ( + "Warning: Double quotes don't work in XML attributes. " + "Escaping with ''.\n" + "Consider using typographic quotes (\\u201c-\\u201f) " + "instead.\n%s\n" % repr(s)) + r = r + escapeSeqs[s[i]] + else: + r = r + s[i] + i = i + 1 + return r + +# Expand escape sequences in C strings (needed for gettext lookup) +def expandCString (s): + escapeSeqs = {'a' : '\a', 'b' : '\b', 'f' : '\f', 'n' : '\n', + 'r' : '\r', 't' : '\t', 'v' : '\v', + '"' : '"', '\\' : '\\'} + i = 0 + escape = False + hexa = False + octa = False + num = 0 + digits = 0 + r = '' + while i < len(s): + if not escape: + if s[i] == '\\': + escape = True + else: + r = r + s[i] + elif hexa: + if (s[i] >= '0' and s[i] <= '9') or \ + (s[i] >= 'a' and s[i] <= 'f') or \ + (s[i] >= 'A' and s[i] <= 'F'): + num = num * 16 + int(s[i],16) + digits = digits + 1 + else: + digits = 2 + if digits >= 2: + hexa = False + escape = False + r = r + chr(num) + elif octa: + if s[i] >= '0' and s[i] <= '7': + num = num * 8 + int(s[i],8) + digits = digits + 1 + else: + digits = 3 + if digits >= 3: + octa = False + escape = False + r = r + chr(num) + else: + if escapeSeqs.has_key(s[i]): + r = r + escapeSeqs[s[i]] + escape = False + elif s[i] >= '0' and s[i] <= '7': + octa = True + num = int(s[i],8) + if num <= 3: + digits = 1 + else: + digits = 2 + elif s[i] == 'x' or s[i] == 'X': + hexa = True + num = 0 + digits = 0 + else: + r = r + s[i] + escape = False + i = i + 1 + return r + +# Expand matches. The first match is always a DESC or DESC_BEGIN match. +# Subsequent matches are ENUM matches. +# +# DESC, DESC_BEGIN format: \1 \2= \3 \4=gettext(" \5= \6=") \7 +# ENUM format: \1 \2=gettext(" \3= \4=") \5 +def expandMatches (matches, translations, end=None): + assert len(matches) > 0 + nTranslations = len(translations) + i = 0 + # Expand the description+enums for all translations + for lang,trans in translations: + i = i + 1 + # Make sure that all but the last line of a simple description + # are extended with a backslash. + suffix = '' + if len(matches) == 1 and i < len(translations) and \ + not matches[0].expand (r'\7').endswith('\\'): + suffix = ' \\' + # Expand the description line. Need to use ugettext in order to allow + # non-ascii unicode chars in the original English descriptions. + text = escapeCString (trans.ugettext (unicode (expandCString ( + matches[0].expand (r'\5')), "utf-8"))).encode("utf-8") + print matches[0].expand (r'\1' + lang + r'\3"' + text + r'"\7') + suffix + # Expand any subsequent enum lines + for match in matches[1:]: + text = escapeCString (trans.ugettext (unicode (expandCString ( + match.expand (r'\3')), "utf-8"))).encode("utf-8") + print match.expand (r'\1"' + text + r'"\5') + + # Expand description end + if end: + print end, + +# Compile a list of translation classes to all supported languages. +# The first translation is always a NullTranslations. +translations = [("en", gettext.NullTranslations())] +for lang in languages: + try: + trans = gettext.translation ("options", ".", [lang]) + except IOError: + sys.stderr.write ("Warning: language '%s' not found.\n" % lang) + continue + translations.append ((lang, trans)) + +# Regular expressions: +reLibintl_h = re.compile (r'#\s*include\s*') +reDESC = re.compile (r'(\s*DRI_CONF_DESC\s*\(\s*)([a-z]+)(\s*,\s*)(gettext\s*\(\s*")(.*)("\s*\))(\s*\)[ \t]*\\?)$') +reDESC_BEGIN = re.compile (r'(\s*DRI_CONF_DESC_BEGIN\s*\(\s*)([a-z]+)(\s*,\s*)(gettext\s*\(\s*")(.*)("\s*\))(\s*\)[ \t]*\\?)$') +reENUM = re.compile (r'(\s*DRI_CONF_ENUM\s*\([^,]+,\s*)(gettext\s*\(\s*")(.*)("\s*\))(\s*\)[ \t]*\\?)$') +reDESC_END = re.compile (r'\s*DRI_CONF_DESC_END') + +# Print a header +print \ +"/***********************************************************************\n" \ +" *** THIS FILE IS GENERATED AUTOMATICALLY. DON'T EDIT! ***\n" \ +" ***********************************************************************/" + +# Process the options template and generate options.h with all +# translations. +template = file ("t_options.h", "r") +descMatches = [] +for line in template: + if len(descMatches) > 0: + matchENUM = reENUM .match (line) + matchDESC_END = reDESC_END.match (line) + if matchENUM: + descMatches.append (matchENUM) + elif matchDESC_END: + expandMatches (descMatches, translations, line) + descMatches = [] + else: + sys.stderr.write ( + "Warning: unexpected line inside description dropped:\n%s\n" \ + % line) + continue + if reLibintl_h.search (line): + # Ignore (comment out) #include + print "/* %s * commented out by gen_xmlpool.py */" % line + continue + matchDESC = reDESC .match (line) + matchDESC_BEGIN = reDESC_BEGIN.match (line) + if matchDESC: + assert len(descMatches) == 0 + expandMatches ([matchDESC], translations) + elif matchDESC_BEGIN: + assert len(descMatches) == 0 + descMatches = [matchDESC_BEGIN] + else: + print line, + +if len(descMatches) > 0: + sys.stderr.write ("Warning: unterminated description at end of file.\n") + expandMatches (descMatches, translations) diff --git a/src/mesa/drivers/dri/common/xmlpool/options.h b/src/mesa/drivers/dri/common/xmlpool/options.h new file mode 100644 index 00000000000..c3aad22f9f0 --- /dev/null +++ b/src/mesa/drivers/dri/common/xmlpool/options.h @@ -0,0 +1,291 @@ +/*********************************************************************** + *** THIS FILE IS GENERATED AUTOMATICALLY. DON'T EDIT! *** + ***********************************************************************/ +/* + * XML DRI client-side driver configuration + * Copyright (C) 2003 Felix Kuehling + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * FELIX KUEHLING, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + */ +/** + * \file t_options.h + * \brief Templates of common options + * \author Felix Kuehling + * + * This file defines macros for common options that can be used to + * construct driConfigOptions in the drivers. This file is only a + * template containing English descriptions for options wrapped in + * gettext(). xgettext can be used to extract translatable + * strings. These strings can then be translated by anyone familiar + * with GNU gettext. gen_xmlpool.py takes this template and fills in + * all the translations. The result (options.h) is included by + * xmlpool.h which in turn can be included by drivers. + * + * The macros used to describe otions in this file are defined in + * ../xmlpool.h. + */ + +/* This is needed for xgettext to extract translatable strings. + * gen_xmlpool.py will discard this line. */ +/* #include + * commented out by gen_xmlpool.py */ + +/* + * predefined option sections and options with multi-lingual descriptions + */ + +/** \brief Debugging options */ +#define DRI_CONF_SECTION_DEBUG \ +DRI_CONF_SECTION_BEGIN \ + DRI_CONF_DESC(en,"Debugging") \ + DRI_CONF_DESC(de,"Fehlersuche") + +#define DRI_CONF_NO_RAST(def) \ +DRI_CONF_OPT_BEGIN(no_rast,bool,def) \ + DRI_CONF_DESC(en,"Disable 3D acceleration") \ + DRI_CONF_DESC(de,"3D-Beschleunigung abschalten") \ +DRI_CONF_OPT_END + +#define DRI_CONF_PERFORMANCE_BOXES(def) \ +DRI_CONF_OPT_BEGIN(performance_boxes,bool,def) \ + DRI_CONF_DESC(en,"Show performance boxes") \ + DRI_CONF_DESC(de,"Zeige Performanceboxen") \ +DRI_CONF_OPT_END + + +/** \brief Texture-related options */ +#define DRI_CONF_SECTION_QUALITY \ +DRI_CONF_SECTION_BEGIN \ + DRI_CONF_DESC(en,"Image Quality") \ + DRI_CONF_DESC(de,"Bildqualität") + +#define DRI_CONF_TEXTURE_DEPTH_FB 0 +#define DRI_CONF_TEXTURE_DEPTH_32 1 +#define DRI_CONF_TEXTURE_DEPTH_16 2 +#define DRI_CONF_TEXTURE_DEPTH_FORCE_16 3 +#define DRI_CONF_TEXTURE_DEPTH(def) \ +DRI_CONF_OPT_BEGIN_V(texture_depth,enum,def,"0:3") \ + DRI_CONF_DESC_BEGIN(en,"Texture color depth") \ + DRI_CONF_ENUM(0,"Prefer frame buffer color depth") \ + DRI_CONF_ENUM(1,"Prefer 32 bits per texel") \ + DRI_CONF_ENUM(2,"Prefer 16 bits per texel") \ + DRI_CONF_ENUM(3,"Force 16 bits per texel") \ + DRI_CONF_DESC_END \ + DRI_CONF_DESC_BEGIN(de,"Texturfarbtiefe") \ + DRI_CONF_ENUM(0,"Bevorzuge Farbtiefe des Framebuffers") \ + DRI_CONF_ENUM(1,"Bevorzuge 32 bits pro Texel") \ + DRI_CONF_ENUM(2,"Bevorzuge 16 bits pro Texel") \ + DRI_CONF_ENUM(3,"Erzwinge 16 bits pro Texel") \ + DRI_CONF_DESC_END \ +DRI_CONF_OPT_END + +#define DRI_CONF_DEF_MAX_ANISOTROPY(def,range) \ +DRI_CONF_OPT_BEGIN_V(def_max_anisotropy,float,def,range) \ + DRI_CONF_DESC(en,"Initial maximum value for anisotropic texture filtering") \ + DRI_CONF_DESC(de,"Initialer Maximalwert für anisotropische Texturfilterung") \ +DRI_CONF_OPT_END + +#define DRI_CONF_NO_NEG_LOD_BIAS(def) \ +DRI_CONF_OPT_BEGIN(no_neg_lod_bias,bool,def) \ + DRI_CONF_DESC(en,"Forbid negative texture LOD bias") \ + DRI_CONF_DESC(de,"Verbiete negative Textur-Detailgradverschiebung") \ +DRI_CONF_OPT_END + +#define DRI_CONF_FORCE_S3TC_ENABLE(def) \ +DRI_CONF_OPT_BEGIN(force_s3tc_enable,bool,def) \ + DRI_CONF_DESC(en,"Enable S3TC texture compression even if software support is not available") \ + DRI_CONF_DESC(de,"Aktiviere S3TC Texturkomprimierung auch wenn die nötige Softwareunterstützung fehlt") \ +DRI_CONF_OPT_END + +#define DRI_CONF_COLOR_REDUCTION_ROUND 0 +#define DRI_CONF_COLOR_REDUCTION_DITHER 1 +#define DRI_CONF_COLOR_REDUCTION(def) \ +DRI_CONF_OPT_BEGIN_V(color_reduction,enum,def,"0:1") \ + DRI_CONF_DESC_BEGIN(en,"Initial color reduction method") \ + DRI_CONF_ENUM(0,"Round colors") \ + DRI_CONF_ENUM(1,"Dither colors") \ + DRI_CONF_DESC_END \ + DRI_CONF_DESC_BEGIN(de,"Initiale Farbreduktionsmethode") \ + DRI_CONF_ENUM(0,"Farben runden") \ + DRI_CONF_ENUM(1,"Farben rastern") \ + DRI_CONF_DESC_END \ +DRI_CONF_OPT_END + +#define DRI_CONF_ROUND_TRUNC 0 +#define DRI_CONF_ROUND_ROUND 1 +#define DRI_CONF_ROUND_MODE(def) \ +DRI_CONF_OPT_BEGIN_V(round_mode,enum,def,"0:1") \ + DRI_CONF_DESC_BEGIN(en,"Color rounding method") \ + DRI_CONF_ENUM(0,"Round color components downward") \ + DRI_CONF_ENUM(1,"Round to nearest color") \ + DRI_CONF_DESC_END \ + DRI_CONF_DESC_BEGIN(de,"Farbrundungsmethode") \ + DRI_CONF_ENUM(0,"Farbkomponenten abrunden") \ + DRI_CONF_ENUM(1,"Zur ähnlichsten Farbe runden") \ + DRI_CONF_DESC_END \ +DRI_CONF_OPT_END + +#define DRI_CONF_DITHER_XERRORDIFF 0 +#define DRI_CONF_DITHER_XERRORDIFFRESET 1 +#define DRI_CONF_DITHER_ORDERED 2 +#define DRI_CONF_DITHER_MODE(def) \ +DRI_CONF_OPT_BEGIN_V(dither_mode,enum,def,"0:2") \ + DRI_CONF_DESC_BEGIN(en,"Color dithering method") \ + DRI_CONF_ENUM(0,"Horizontal error diffusion") \ + DRI_CONF_ENUM(1,"Horizontal error diffusion, reset error at line start") \ + DRI_CONF_ENUM(2,"Ordered 2D color dithering") \ + DRI_CONF_DESC_END \ + DRI_CONF_DESC_BEGIN(de,"Farbrasterungsmethode") \ + DRI_CONF_ENUM(0,"Horizontale Fehlerstreuung") \ + DRI_CONF_ENUM(1,"Horizontale Fehlerstreuung, Fehler am Zeilenanfang zurücksetzen") \ + DRI_CONF_ENUM(2,"Geordnete 2D Farbrasterung") \ + DRI_CONF_DESC_END \ +DRI_CONF_OPT_END + +#define DRI_CONF_FLOAT_DEPTH(def) \ +DRI_CONF_OPT_BEGIN(float_depth,bool,def) \ + DRI_CONF_DESC(en,"Floating point depth buffer") \ + DRI_CONF_DESC(de,"Fließkomma z-Puffer") \ +DRI_CONF_OPT_END + +/** \brief Performance-related options */ +#define DRI_CONF_SECTION_PERFORMANCE \ +DRI_CONF_SECTION_BEGIN \ + DRI_CONF_DESC(en,"Performance") \ + DRI_CONF_DESC(de,"Leistung") + +#define DRI_CONF_TCL_SW 0 +#define DRI_CONF_TCL_PIPELINED 1 +#define DRI_CONF_TCL_VTXFMT 2 +#define DRI_CONF_TCL_CODEGEN 3 +#define DRI_CONF_TCL_MODE(def) \ +DRI_CONF_OPT_BEGIN_V(tcl_mode,enum,def,"0:3") \ + DRI_CONF_DESC_BEGIN(en,"TCL mode (Transformation, Clipping, Lighting)") \ + DRI_CONF_ENUM(0,"Use software TCL pipeline") \ + DRI_CONF_ENUM(1,"Use hardware TCL as first TCL pipeline stage") \ + DRI_CONF_ENUM(2,"Bypass the TCL pipeline") \ + DRI_CONF_ENUM(3,"Bypass the TCL pipeline with state-based machine code generated on-the-fly") \ + DRI_CONF_DESC_END \ + DRI_CONF_DESC_BEGIN(de,"TCL-Modus (Transformation, Clipping, Licht)") \ + DRI_CONF_ENUM(0,"Benutze die Software-TCL-Pipeline") \ + DRI_CONF_ENUM(1,"Benutze Hardware TCL als erste Stufe der TCL-Pipeline") \ + DRI_CONF_ENUM(2,"Umgehe die TCL-Pipeline") \ + DRI_CONF_ENUM(3,"Umgehe die TCL-Pipeline mit zur Laufzeit erzeugtem, zustandsbasiertem Maschinencode") \ + DRI_CONF_DESC_END \ +DRI_CONF_OPT_END + +#define DRI_CONF_FTHROTTLE_BUSY 0 +#define DRI_CONF_FTHROTTLE_USLEEPS 1 +#define DRI_CONF_FTHROTTLE_IRQS 2 +#define DRI_CONF_FTHROTTLE_MODE(def) \ +DRI_CONF_OPT_BEGIN_V(fthrottle_mode,enum,def,"0:2") \ + DRI_CONF_DESC_BEGIN(en,"Method to limit rendering latency") \ + DRI_CONF_ENUM(0,"Busy waiting for the graphics hardware") \ + DRI_CONF_ENUM(1,"Sleep for brief intervals while waiting for the graphics hardware") \ + DRI_CONF_ENUM(2,"Let the graphics hardware emit a software interrupt and sleep") \ + DRI_CONF_DESC_END \ + DRI_CONF_DESC_BEGIN(de,"Methode zur Begrenzung der Bildverzögerung") \ + DRI_CONF_ENUM(0,"Aktives Warten auf die Grafikhardware") \ + DRI_CONF_ENUM(1,"Kurze Schlafintervalle beim Warten auf die Grafikhardware") \ + DRI_CONF_ENUM(2,"Die Grafikhardware eine Softwareunterbrechnung erzeugen lassen und schlafen") \ + DRI_CONF_DESC_END \ +DRI_CONF_OPT_END + +#define DRI_CONF_VBLANK_NEVER 0 +#define DRI_CONF_VBLANK_DEF_INTERVAL_0 1 +#define DRI_CONF_VBLANK_DEF_INTERVAL_1 2 +#define DRI_CONF_VBLANK_ALWAYS_SYNC 3 +#define DRI_CONF_VBLANK_MODE(def) \ +DRI_CONF_OPT_BEGIN_V(vblank_mode,enum,def,"0:3") \ + DRI_CONF_DESC_BEGIN(en,"Synchronization with vertical refresh (swap intervals)") \ + DRI_CONF_ENUM(0,"Never synchronize with vertical refresh, ignore application's choice") \ + DRI_CONF_ENUM(1,"Initial swap interval 0, obey application's choice") \ + DRI_CONF_ENUM(2,"Initial swap interval 1, obey application's choice") \ + DRI_CONF_ENUM(3,"Always synchronize with vertical refresh, application chooses the minimum swap interval") \ + DRI_CONF_DESC_END \ + DRI_CONF_DESC_BEGIN(de,"Synchronisation mit der vertikalen Bildwiederholung") \ + DRI_CONF_ENUM(0,"Niemals mit der Bildwiederholung synchronisieren, Anweisungen der Anwendung ignorieren") \ + DRI_CONF_ENUM(1,"Initiales Bildinterval 0, Anweisungen der Anwendung gehorchen") \ + DRI_CONF_ENUM(2,"Initiales Bildinterval 1, Anweisungen der Anwendung gehorchen") \ + DRI_CONF_ENUM(3,"Immer mit der Bildwiederholung synchronisieren, Anwendung wählt das minmale Bildinterval") \ + DRI_CONF_DESC_END \ +DRI_CONF_OPT_END + +#define DRI_CONF_HYPERZ_DISABLED 0 +#define DRI_CONF_HYPERZ_ENABLED 1 +#define DRI_CONF_HYPERZ(def) \ +DRI_CONF_OPT_BEGIN(hyperz,bool,def) \ + DRI_CONF_DESC(en,"Use HyperZ to boost performance") \ + DRI_CONF_DESC(de,"HyperZ zur Leistungssteigerung verwenden") \ +DRI_CONF_OPT_END + +#define DRI_CONF_MAX_TEXTURE_UNITS(def,min,max) \ +DRI_CONF_OPT_BEGIN_V(texture_units,int,def, # min ":" # max ) \ + DRI_CONF_DESC(en,"Number of texture units used") \ + DRI_CONF_DESC(de,"Anzahl der benutzten Textureinheiten") \ +DRI_CONF_OPT_END + +#define DRI_CONF_TEXTURE_LEVEL_HACK(def) \ +DRI_CONF_OPT_BEGIN(texture_level_hack,bool,def) \ + DRI_CONF_DESC(en,"Enable hack to allow larger textures with texture compression on radeon/r200") \ + DRI_CONF_DESC(de,"Hack aktivieren, der mit Texturkompression auf radeon/r200 größere Texturen erlaubt") \ +DRI_CONF_OPT_END + +#define DRI_CONF_TEXTURE_BLEND_QUALITY(def,range) \ +DRI_CONF_OPT_BEGIN_V(texture_blend_quality,float,def,range) \ + DRI_CONF_DESC(en,"Texture filtering quality vs. speed, AKA “brilinear” texture filtering") \ + DRI_CONF_DESC(de,"Texturfilterqualität versus -geschwindigkeit, auch bekannt als „brilineare“ Texturfilterung") \ +DRI_CONF_OPT_END + +#define DRI_CONF_TEXTURE_HEAPS_ALL 0 +#define DRI_CONF_TEXTURE_HEAPS_CARD 1 +#define DRI_CONF_TEXTURE_HEAPS_GART 2 +#define DRI_CONF_TEXTURE_HEAPS(def) \ +DRI_CONF_OPT_BEGIN_V(texture_heaps,enum,def,"0:2") \ + DRI_CONF_DESC_BEGIN(en,"Used types of texture memory") \ + DRI_CONF_ENUM(0,"All available memory") \ + DRI_CONF_ENUM(1,"Only card memory (if available)") \ + DRI_CONF_ENUM(2,"Only GART (AGP/PCIE) memory (if available)") \ + DRI_CONF_DESC_END \ + DRI_CONF_DESC_BEGIN(de,"Benutzte Arten von Texturspeicher") \ + DRI_CONF_ENUM(0,"Aller verfügbarer Speicher") \ + DRI_CONF_ENUM(1,"Nur Grafikspeicher (falls verfügbar)") \ + DRI_CONF_ENUM(2,"Nur GART-Speicher (AGP/PCIE) (falls verfügbar)") \ + DRI_CONF_DESC_END \ +DRI_CONF_OPT_END + +/* Options for features that are not done in hardware by the driver (like GL_ARB_vertex_program + On cards where there is no documentation (r200) or on rasterization-only hardware). */ +#define DRI_CONF_SECTION_SOFTWARE \ +DRI_CONF_SECTION_BEGIN \ + DRI_CONF_DESC(en,"Features that are not hardware-accelerated") \ + DRI_CONF_DESC(de,"Funktionalität, die nicht hardwarebeschleunigt ist") + +#define DRI_CONF_ARB_VERTEX_PROGRAM(def) \ +DRI_CONF_OPT_BEGIN(arb_vertex_program,bool,def) \ + DRI_CONF_DESC(en,"Enable extension GL_ARB_vertex_program") \ + DRI_CONF_DESC(de,"Erweiterung GL_ARB_vertex_program aktivieren") \ +DRI_CONF_OPT_END + +#define DRI_CONF_NV_VERTEX_PROGRAM(def) \ +DRI_CONF_OPT_BEGIN(nv_vertex_program,bool,def) \ + DRI_CONF_DESC(en,"Enable extension GL_NV_vertex_program") \ + DRI_CONF_DESC(de,"Erweiterung GL_NV_vertex_program aktivieren") \ +DRI_CONF_OPT_END diff --git a/src/mesa/drivers/dri/common/xmlpool/t_options.h b/src/mesa/drivers/dri/common/xmlpool/t_options.h new file mode 100644 index 00000000000..ab9245ee29c --- /dev/null +++ b/src/mesa/drivers/dri/common/xmlpool/t_options.h @@ -0,0 +1,230 @@ +/* + * XML DRI client-side driver configuration + * Copyright (C) 2003 Felix Kuehling + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * FELIX KUEHLING, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + */ +/** + * \file t_options.h + * \brief Templates of common options + * \author Felix Kuehling + * + * This file defines macros for common options that can be used to + * construct driConfigOptions in the drivers. This file is only a + * template containing English descriptions for options wrapped in + * gettext(). xgettext can be used to extract translatable + * strings. These strings can then be translated by anyone familiar + * with GNU gettext. gen_xmlpool.py takes this template and fills in + * all the translations. The result (options.h) is included by + * xmlpool.h which in turn can be included by drivers. + * + * The macros used to describe otions in this file are defined in + * ../xmlpool.h. + */ + +/* This is needed for xgettext to extract translatable strings. + * gen_xmlpool.py will discard this line. */ +#include + +/* + * predefined option sections and options with multi-lingual descriptions + */ + +/** \brief Debugging options */ +#define DRI_CONF_SECTION_DEBUG \ +DRI_CONF_SECTION_BEGIN \ + DRI_CONF_DESC(en,gettext("Debugging")) + +#define DRI_CONF_NO_RAST(def) \ +DRI_CONF_OPT_BEGIN(no_rast,bool,def) \ + DRI_CONF_DESC(en,gettext("Disable 3D acceleration")) \ +DRI_CONF_OPT_END + +#define DRI_CONF_PERFORMANCE_BOXES(def) \ +DRI_CONF_OPT_BEGIN(performance_boxes,bool,def) \ + DRI_CONF_DESC(en,gettext("Show performance boxes")) \ +DRI_CONF_OPT_END + + +/** \brief Texture-related options */ +#define DRI_CONF_SECTION_QUALITY \ +DRI_CONF_SECTION_BEGIN \ + DRI_CONF_DESC(en,gettext("Image Quality")) + +#define DRI_CONF_TEXTURE_DEPTH_FB 0 +#define DRI_CONF_TEXTURE_DEPTH_32 1 +#define DRI_CONF_TEXTURE_DEPTH_16 2 +#define DRI_CONF_TEXTURE_DEPTH_FORCE_16 3 +#define DRI_CONF_TEXTURE_DEPTH(def) \ +DRI_CONF_OPT_BEGIN_V(texture_depth,enum,def,"0:3") \ + DRI_CONF_DESC_BEGIN(en,gettext("Texture color depth")) \ + DRI_CONF_ENUM(0,gettext("Prefer frame buffer color depth")) \ + DRI_CONF_ENUM(1,gettext("Prefer 32 bits per texel")) \ + DRI_CONF_ENUM(2,gettext("Prefer 16 bits per texel")) \ + DRI_CONF_ENUM(3,gettext("Force 16 bits per texel")) \ + DRI_CONF_DESC_END \ +DRI_CONF_OPT_END + +#define DRI_CONF_DEF_MAX_ANISOTROPY(def,range) \ +DRI_CONF_OPT_BEGIN_V(def_max_anisotropy,float,def,range) \ + DRI_CONF_DESC(en,gettext("Initial maximum value for anisotropic texture filtering")) \ +DRI_CONF_OPT_END + +#define DRI_CONF_NO_NEG_LOD_BIAS(def) \ +DRI_CONF_OPT_BEGIN(no_neg_lod_bias,bool,def) \ + DRI_CONF_DESC(en,gettext("Forbid negative texture LOD bias")) \ +DRI_CONF_OPT_END + +#define DRI_CONF_FORCE_S3TC_ENABLE(def) \ +DRI_CONF_OPT_BEGIN(force_s3tc_enable,bool,def) \ + DRI_CONF_DESC(en,gettext("Enable S3TC texture compression even if software support is not available")) \ +DRI_CONF_OPT_END + +#define DRI_CONF_COLOR_REDUCTION_ROUND 0 +#define DRI_CONF_COLOR_REDUCTION_DITHER 1 +#define DRI_CONF_COLOR_REDUCTION(def) \ +DRI_CONF_OPT_BEGIN_V(color_reduction,enum,def,"0:1") \ + DRI_CONF_DESC_BEGIN(en,gettext("Initial color reduction method")) \ + DRI_CONF_ENUM(0,gettext("Round colors")) \ + DRI_CONF_ENUM(1,gettext("Dither colors")) \ + DRI_CONF_DESC_END \ +DRI_CONF_OPT_END + +#define DRI_CONF_ROUND_TRUNC 0 +#define DRI_CONF_ROUND_ROUND 1 +#define DRI_CONF_ROUND_MODE(def) \ +DRI_CONF_OPT_BEGIN_V(round_mode,enum,def,"0:1") \ + DRI_CONF_DESC_BEGIN(en,gettext("Color rounding method")) \ + DRI_CONF_ENUM(0,gettext("Round color components downward")) \ + DRI_CONF_ENUM(1,gettext("Round to nearest color")) \ + DRI_CONF_DESC_END \ +DRI_CONF_OPT_END + +#define DRI_CONF_DITHER_XERRORDIFF 0 +#define DRI_CONF_DITHER_XERRORDIFFRESET 1 +#define DRI_CONF_DITHER_ORDERED 2 +#define DRI_CONF_DITHER_MODE(def) \ +DRI_CONF_OPT_BEGIN_V(dither_mode,enum,def,"0:2") \ + DRI_CONF_DESC_BEGIN(en,gettext("Color dithering method")) \ + DRI_CONF_ENUM(0,gettext("Horizontal error diffusion")) \ + DRI_CONF_ENUM(1,gettext("Horizontal error diffusion, reset error at line start")) \ + DRI_CONF_ENUM(2,gettext("Ordered 2D color dithering")) \ + DRI_CONF_DESC_END \ +DRI_CONF_OPT_END + +#define DRI_CONF_FLOAT_DEPTH(def) \ +DRI_CONF_OPT_BEGIN(float_depth,bool,def) \ + DRI_CONF_DESC(en,gettext("Floating point depth buffer")) \ +DRI_CONF_OPT_END + +/** \brief Performance-related options */ +#define DRI_CONF_SECTION_PERFORMANCE \ +DRI_CONF_SECTION_BEGIN \ + DRI_CONF_DESC(en,gettext("Performance")) + +#define DRI_CONF_TCL_SW 0 +#define DRI_CONF_TCL_PIPELINED 1 +#define DRI_CONF_TCL_VTXFMT 2 +#define DRI_CONF_TCL_CODEGEN 3 +#define DRI_CONF_TCL_MODE(def) \ +DRI_CONF_OPT_BEGIN_V(tcl_mode,enum,def,"0:3") \ + DRI_CONF_DESC_BEGIN(en,gettext("TCL mode (Transformation, Clipping, Lighting)")) \ + DRI_CONF_ENUM(0,gettext("Use software TCL pipeline")) \ + DRI_CONF_ENUM(1,gettext("Use hardware TCL as first TCL pipeline stage")) \ + DRI_CONF_ENUM(2,gettext("Bypass the TCL pipeline")) \ + DRI_CONF_ENUM(3,gettext("Bypass the TCL pipeline with state-based machine code generated on-the-fly")) \ + DRI_CONF_DESC_END \ +DRI_CONF_OPT_END + +#define DRI_CONF_FTHROTTLE_BUSY 0 +#define DRI_CONF_FTHROTTLE_USLEEPS 1 +#define DRI_CONF_FTHROTTLE_IRQS 2 +#define DRI_CONF_FTHROTTLE_MODE(def) \ +DRI_CONF_OPT_BEGIN_V(fthrottle_mode,enum,def,"0:2") \ + DRI_CONF_DESC_BEGIN(en,gettext("Method to limit rendering latency")) \ + DRI_CONF_ENUM(0,gettext("Busy waiting for the graphics hardware")) \ + DRI_CONF_ENUM(1,gettext("Sleep for brief intervals while waiting for the graphics hardware")) \ + DRI_CONF_ENUM(2,gettext("Let the graphics hardware emit a software interrupt and sleep")) \ + DRI_CONF_DESC_END \ +DRI_CONF_OPT_END + +#define DRI_CONF_VBLANK_NEVER 0 +#define DRI_CONF_VBLANK_DEF_INTERVAL_0 1 +#define DRI_CONF_VBLANK_DEF_INTERVAL_1 2 +#define DRI_CONF_VBLANK_ALWAYS_SYNC 3 +#define DRI_CONF_VBLANK_MODE(def) \ +DRI_CONF_OPT_BEGIN_V(vblank_mode,enum,def,"0:3") \ + DRI_CONF_DESC_BEGIN(en,gettext("Synchronization with vertical refresh (swap intervals)")) \ + DRI_CONF_ENUM(0,gettext("Never synchronize with vertical refresh, ignore application's choice")) \ + DRI_CONF_ENUM(1,gettext("Initial swap interval 0, obey application's choice")) \ + DRI_CONF_ENUM(2,gettext("Initial swap interval 1, obey application's choice")) \ + DRI_CONF_ENUM(3,gettext("Always synchronize with vertical refresh, application chooses the minimum swap interval")) \ + DRI_CONF_DESC_END \ +DRI_CONF_OPT_END + +#define DRI_CONF_HYPERZ_DISABLED 0 +#define DRI_CONF_HYPERZ_ENABLED 1 +#define DRI_CONF_HYPERZ(def) \ +DRI_CONF_OPT_BEGIN(hyperz,bool,def) \ + DRI_CONF_DESC(en,gettext("Use HyperZ to boost performance")) \ +DRI_CONF_OPT_END + +#define DRI_CONF_MAX_TEXTURE_UNITS(def,min,max) \ +DRI_CONF_OPT_BEGIN_V(texture_units,int,def, # min ":" # max ) \ + DRI_CONF_DESC(en,gettext("Number of texture units used")) \ +DRI_CONF_OPT_END + +#define DRI_CONF_TEXTURE_LEVEL_HACK(def) \ +DRI_CONF_OPT_BEGIN(texture_level_hack,bool,def) \ + DRI_CONF_DESC(en,gettext("Enable hack to allow larger textures with texture compression on radeon/r200")) \ +DRI_CONF_OPT_END + +#define DRI_CONF_TEXTURE_BLEND_QUALITY(def,range) \ +DRI_CONF_OPT_BEGIN_V(texture_blend_quality,float,def,range) \ + DRI_CONF_DESC(en,gettext("Texture filtering quality vs. speed, AKA “brilinear” texture filtering")) \ +DRI_CONF_OPT_END + +#define DRI_CONF_TEXTURE_HEAPS_ALL 0 +#define DRI_CONF_TEXTURE_HEAPS_CARD 1 +#define DRI_CONF_TEXTURE_HEAPS_GART 2 +#define DRI_CONF_TEXTURE_HEAPS(def) \ +DRI_CONF_OPT_BEGIN_V(texture_heaps,enum,def,"0:2") \ + DRI_CONF_DESC_BEGIN(en,gettext("Used types of texture memory")) \ + DRI_CONF_ENUM(0,gettext("All available memory")) \ + DRI_CONF_ENUM(1,gettext("Only card memory (if available)")) \ + DRI_CONF_ENUM(2,gettext("Only GART (AGP/PCIE) memory (if available)")) \ + DRI_CONF_DESC_END \ +DRI_CONF_OPT_END + +/* Options for features that are not done in hardware by the driver (like GL_ARB_vertex_program + On cards where there is no documentation (r200) or on rasterization-only hardware). */ +#define DRI_CONF_SECTION_SOFTWARE \ +DRI_CONF_SECTION_BEGIN \ + DRI_CONF_DESC(en,gettext("Features that are not hardware-accelerated")) + +#define DRI_CONF_ARB_VERTEX_PROGRAM(def) \ +DRI_CONF_OPT_BEGIN(arb_vertex_program,bool,def) \ + DRI_CONF_DESC(en,gettext("Enable extension GL_ARB_vertex_program")) \ +DRI_CONF_OPT_END + +#define DRI_CONF_NV_VERTEX_PROGRAM(def) \ +DRI_CONF_OPT_BEGIN(nv_vertex_program,bool,def) \ + DRI_CONF_DESC(en,gettext("Enable extension GL_NV_vertex_program")) \ +DRI_CONF_OPT_END