# Swedish translation of DRI driver options.
# Copyright (C) Free Software Foundation, Inc.
# This file is distributed under the same license as the Mesa package.
# Daniel Nylander <po@danielnylander.se>, 2006.
#
msgid ""
msgstr ""
"Project-Id-Version: Mesa DRI\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-04-11 23:19+0200\n"
"PO-Revision-Date: 2006-09-18 10:56+0100\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\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 "Felsökning"

#: t_options.h:57
msgid "Disable 3D acceleration"
msgstr "Inaktivera 3D-accelerering"

#: t_options.h:62
msgid "Show performance boxes"
msgstr "Visa prestandarutor"

#: t_options.h:69
msgid "Image Quality"
msgstr "Bildkvalitet"

#: t_options.h:77
msgid "Texture color depth"
msgstr "Färgdjup för texturer"

#: t_options.h:78
msgid "Prefer frame buffer color depth"
msgstr "Föredra färgdjupet för framebuffer"

#: t_options.h:79
msgid "Prefer 32 bits per texel"
msgstr "Föredra 32 bitar per texel"

#: t_options.h:80
msgid "Prefer 16 bits per texel"
msgstr "Föredra 16 bitar per texel"

#: t_options.h:81
msgid "Force 16 bits per texel"
msgstr "Tvinga 16 bitar per texel"

#: t_options.h:87
msgid "Initial maximum value for anisotropic texture filtering"
msgstr "Initialt maximalt värde för anisotropisk texturfiltrering"

#: t_options.h:92
msgid "Forbid negative texture LOD bias"
msgstr "Förbjud negativ LOD-kompensation för texturer"

#: t_options.h:97
msgid "Enable S3TC texture compression even if software support is not available"
msgstr "Aktivera S3TC-texturkomprimering även om programvarustöd saknas"

#: t_options.h:104
msgid "Initial color reduction method"
msgstr "Initial färgminskningsmetod"

#: t_options.h:105
msgid "Round colors"
msgstr "Avrunda färger"

#: t_options.h:106
msgid "Dither colors"
msgstr "Utjämna färger"

#: t_options.h:114
msgid "Color rounding method"
msgstr "Färgavrundningsmetod"

#: t_options.h:115
msgid "Round color components downward"
msgstr "Avrunda färdkomponenter nedåt"

#: t_options.h:116
msgid "Round to nearest color"
msgstr "Avrunda till närmsta färg"

#: t_options.h:125
msgid "Color dithering method"
msgstr "Färgutjämningsmetod"

#: t_options.h:126
msgid "Horizontal error diffusion"
msgstr "Horisontell felspridning"

#: t_options.h:127
msgid "Horizontal error diffusion, reset error at line start"
msgstr "Horisontell felspridning, återställ fel vid radbörjan"

#: t_options.h:128
msgid "Ordered 2D color dithering"
msgstr "Ordnad 2D-färgutjämning"

#: t_options.h:134
msgid "Floating point depth buffer"
msgstr "Buffert för flytande punktdjup"

#: t_options.h:140
msgid "Performance"
msgstr "Prestanda"

#: t_options.h:148
msgid "TCL mode (Transformation, Clipping, Lighting)"
msgstr "TCL-läge (Transformation, Clipping, Lighting)"

#: t_options.h:149
msgid "Use software TCL pipeline"
msgstr "Använd programvaru-TCL-rörledning"

#: t_options.h:150
msgid "Use hardware TCL as first TCL pipeline stage"
msgstr "Använd maskinvaru-TCL som första TCL-rörledningssteg"

#: t_options.h:151
msgid "Bypass the TCL pipeline"
msgstr "Kringgå TCL-rörledningen"

#: t_options.h:152
msgid "Bypass the TCL pipeline with state-based machine code generated on-the-fly"
msgstr "Kringgå TCL-rörledningen med tillståndsbaserad maskinkod som direktgenereras"

#: t_options.h:161
msgid "Method to limit rendering latency"
msgstr "Metod för att begränsa renderingslatens"

#: t_options.h:162
msgid "Busy waiting for the graphics hardware"
msgstr "Upptagen med att vänta på grafikhårdvaran"

#: t_options.h:163
msgid "Sleep for brief intervals while waiting for the graphics hardware"
msgstr "Sov i korta intervall under väntan på grafikhårdvaran"

#: t_options.h:164
msgid "Let the graphics hardware emit a software interrupt and sleep"
msgstr "Låt grafikhårdvaran sända ut ett programvaruavbrott och sov"

#: t_options.h:174
msgid "Synchronization with vertical refresh (swap intervals)"
msgstr "Synkronisering med vertikal uppdatering (växlingsintervall)"

#: t_options.h:175
msgid "Never synchronize with vertical refresh, ignore application's choice"
msgstr "Synkronisera aldrig med vertikal uppdatering, ignorera programmets val"

#: t_options.h:176
msgid "Initial swap interval 0, obey application's choice"
msgstr "Initialt växlingsintervall 0, följ programmets val"

#: t_options.h:177
msgid "Initial swap interval 1, obey application's choice"
msgstr "Initialt växlingsintervall 1, följ programmets val"

#: t_options.h:178
msgid "Always synchronize with vertical refresh, application chooses the minimum swap interval"
msgstr "Synkronisera alltid med vertikal uppdatering, programmet väljer den minsta växlingsintervallen"

#: t_options.h:186
msgid "Use HyperZ to boost performance"
msgstr "Använd HyperZ för att maximera prestandan"

#: t_options.h:191
msgid "Number of texture units used"
msgstr "Antal använda texturenheter"

#: t_options.h:196
msgid "Support larger textures not guaranteed to fit into graphics memory"
msgstr "Stöd för större texturer är inte garanterat att passa i grafikminnet"

#: t_options.h:197
msgid "No"
msgstr "Nej"

#: t_options.h:198
msgid "At least 1 texture must fit under worst-case assumptions"
msgstr "Åtminstone en textur måste passa för antaget sämsta förhållande"

#: t_options.h:199
msgid "Announce hardware limits"
msgstr "Annonsera hårdvarubegränsningar"

#: t_options.h:205
msgid "Texture filtering quality vs. speed, AKA “brilinear” texture filtering"
msgstr "Texturfiltreringskvalitet mot hastighet, även kallad \"brilinear\"-texturfiltrering"

#: t_options.h:213
msgid "Used types of texture memory"
msgstr "Använda typer av texturminne"

#: t_options.h:214
msgid "All available memory"
msgstr "Allt tillgängligt minne"

#: t_options.h:215
msgid "Only card memory (if available)"
msgstr "Endast kortminne (om tillgängligt)"

#: t_options.h:216
msgid "Only GART (AGP/PCIE) memory (if available)"
msgstr "Endast GART-minne (AGP/PCIE) (om tillgängligt)"

#: t_options.h:224
msgid "Features that are not hardware-accelerated"
msgstr "Funktioner som inte är hårdvaruaccelererade"

#: t_options.h:228
msgid "Enable extension GL_ARB_vertex_program"
msgstr "Aktivera tillägget GL_ARB_vertex_program"

#: t_options.h:233
msgid "Enable extension GL_NV_vertex_program"
msgstr "Aktivera tillägget GL_NV_vertex_program"

