summaryrefslogtreecommitdiffstats
BranchCommit messageAuthorAge
gallium_va_encpackedheader01gallium/va/encpackedheader 01: Boldly claim VA_ENC_PACKED_HEADER_* SEQUENCE|S...Sven Gothel4 years
masterllvmpipe: add framebuffer fetching support (v1.1)Dave Airlie4 years
 
TagDownloadAuthorAge
mesa-20.1.3commit 663fa46287...Eric Engestrom4 years
mesa-20.1.2commit 3e417e7cb6...Eric Engestrom4 years
mesa-20.0.8commit 1ad0ce42de...Dylan Baker4 years
mesa-20.1.1commit 127c2be9c5...Eric Engestrom4 years
mesa-20.1.0commit 7de17e2520...Eric Engestrom5 years
mesa-20.1.0-rc4commit d41ccffb63...Eric Engestrom5 years
mesa-20.0.7commit e925e97746...Dylan Baker5 years
mesa-20.1.0-rc3commit c49fbacd94...Eric Engestrom5 years
mesa-20.1.0-rc2commit e658e900bb...Eric Engestrom5 years
mesa-20.0.6commit 4c59d9944a...Dylan Baker5 years
mesa-20.1.0-rc1commit 0865c5107f...Eric Engestrom5 years
20.1-branchpointcommit 3e1b93ec4f...Eric Engestrom5 years
mesa-20.0.5commit 728cf6631f...Dylan Baker5 years
mesa-20.0.4commit d3586b5291...Eric Engestrom5 years
mesa-20.0.3commit 103f12d23e...Eric Engestrom5 years
mesa-20.0.2commit fa6e67066b...Dylan Baker5 years
mesa-19.3.5commit 4ef9bd07c5...Eric Engestrom5 years
mesa-20.0.1commit 53b2b224dc...Dylan Baker5 years
mesa-20.0.0commit 9abde3412d...Dylan Baker5 years
mesa-19.3.4commit 7a3190eb91...Dylan Baker5 years
mesa-20.0.0-rc3commit 6bbbef9699...Dylan Baker5 years
mesa-20.0.0-rc2commit 440e52ca03...Dylan Baker5 years
mesa-20.0.0-rc1commit 21f5d79c7b...Dylan Baker5 years
20.0-branchpointcommit 58fd26c433...Brian Ho5 years
mesa-19.3.3commit 352037317b...Dylan Baker5 years
mesa-19.3.2commit 8734effe13...Dylan Baker5 years
mesa-19.2.8commit 34896d2299...Dylan Baker5 years
mesa-19.3.1commit c5ff7fbeab...Dylan Baker5 years
mesa-19.3.0commit 4c8bd415b4...Dylan Baker5 years
mesa-19.2.7commit 65d255cd1e...Dylan Baker5 years
mesa-19.3.0-rc6commit 9b189cb9b1...Dylan Baker5 years
mesa-19.3.0-rc5commit 5a12bc6454...Dylan Baker5 years
mesa-19.2.6commit 5836dd66e0...Dylan Baker5 years
mesa-19.3.0-rc4commit cd736de7aa...Dylan Baker5 years
mesa-19.2.5commit f418e9231a...Dylan Baker5 years
mesa-19.3.0-rc3commit 3d9c678772...Dylan Baker5 years
mesa-19.2.4commit 6f1b8e554f...Dylan Baker5 years
mesa-19.3.0-rc2commit 15342abc5b...Dylan Baker5 years
mesa-19.2.3commit 019dbc4b3b...Dylan Baker5 years
mesa-19.3.0-rc1commit 20512e9ddb...Dylan Baker5 years
19.3-branchpointcommit 98da208660...Dylan Baker5 years
mesa-19.2.2commit c5f5ce1e37...Dylan Baker5 years
mesa-19.1.8commit 5c6d266c59...Juan A. Suarez Romero5 years
mesa-19.2.1commit 877417918f...Dylan Baker5 years
mesa-19.2.0commit 0c47b502c2...Dylan Baker5 years
mesa-19.2.0-rc4commit 71fafc13b9...Dylan Baker5 years
mesa-19.1.7commit f632aac938...Juan A. Suarez Romero5 years
mesa-19.2.0-rc3commit 3771534b2f...Dylan Baker5 years
mesa-19.2.0-rc2commit 7f9b49218f...Dylan Baker5 years
mesa-19.1.6commit 85c8f88a49...Juan A. Suarez Romero5 years
mesa-19.1.5commit a384fe0ceb...Juan A. Suarez Romero5 years
mesa-19.2.0-rc1commit c0b9399d9d...Emil Velikov5 years
19.2-branchpointcommit 71fb721ca5...Emil Velikov5 years
mesa-19.1.4commit b84ffa028d...Juan A. Suarez Romero5 years
chadv/review/anv-drm-format-mod/2019-08-01-r1commit dad560939c...Chad Versace5 years
chadv/review/anv-drm-format-mod/2019-07-26-r1commit 3678509c33...Chad Versace5 years
mesa-19.1.3commit 09a1b2bdba...Juan A. Suarez Romero5 years
mesa-19.1.2commit fe1f7b538b...Juan A. Suarez Romero5 years
mesa-19.0.8commit 1625c02d65...Dylan Baker5 years
mesa-19.1.1commit 22eddd8b9d...Juan A. Suarez Romero5 years
mesa-19.0.7commit 7efa08da14...Dylan Baker5 years
mesa-19.1.0commit 1517811f4f...Juan A. Suarez Romero5 years
mesa-19.0.6commit 095d22b2cb...Dylan Baker6 years
mesa-19.1.0-rc5commit 9d8f104f39...Juan A. Suarez Romero6 years
mesa-19.1.0-rc4commit dd9635c1d2...Juan A. Suarez Romero6 years
mesa-19.0.5commit 9e3d9c4e13...Dylan Baker6 years
mesa-19.1.0-rc3commit 1dd62eb6e2...Juan A. Suarez Romero6 years
mesa-19.1.0-rc2commit c03d9a7fa9...Juan A. Suarez Romero6 years
mesa-19.0.4commit a17ac460a2...Dylan Baker6 years
mesa-19.1.0-rc1commit 5d72a334e8...Juan A. Suarez Romero6 years
19.1-branchpointcommit bdd273d873...Rob Clark6 years
mesa-19.0.3commit c8cdee5dc3...Dylan Baker6 years
mesa-19.0.2commit 2964ee3ad0...Dylan Baker6 years
mesa-18.3.6commit 11049bcff8...Emil Velikov6 years
mesa-19.0.1commit 08fbf25ce1...Dylan Baker6 years
mesa-18.3.5commit 022708cb40...Emil Velikov6 years
mesa-19.0.0commit 5925a57258...Dylan Baker6 years
mesa-19.0.0-rc7commit f852e93815...Dylan Baker6 years
chadv/cros-mesa-19.0-r1-vanillacommit b43b55d461...Juan A. Suarez Romero6 years
cros-mesa-19.0-r1-vanillacommit b43b55d461...Juan A. Suarez Romero6 years
mesa-19.0.0-rc6commit 3e72463ce0...Dylan Baker6 years
mesa-19.0.0-rc5commit 2e7833ad91...Dylan Baker6 years
arc-mesa-19.0-r1-vanillacommit 2e7833ad91...Dylan Baker6 years
chadv/arc-mesa-19.0-r1-vanillacommit 2e7833ad91...Dylan Baker6 years
mesa-18.3.4commit b26488dead...Emil Velikov6 years
mesa-19.0.0-rc4commit 838baab472...Dylan Baker6 years
mesa-19.0.0-rc3commit 56a47e3421...Dylan Baker6 years
mesa-19.0.0-rc2commit 131f12d49f...Dylan Baker6 years
mesa-18.3.3commit 190a79f462...Emil Velikov6 years
mesa-19.0.0-rc1commit 2fddad9e3f...Dylan Baker6 years
mesa-19.0-rc1commit 2fddad9e3f...Dylan Baker6 years
19.0-branchpointcommit 90a7a9c973...Dylan Baker6 years
mesa-18.3.2commit 95a3b709c0...Emil Velikov6 years
mesa-18.2.8commit 785e09e3b3...Juan A. Suarez Romero6 years
mesa-18.2.7commit 419ee20097...Juan A. Suarez Romero6 years
mesa-18.3.1commit f6ad9cf1eb...Emil Velikov6 years
mesa-18.3.0commit d603cd9d84...Emil Velikov6 years
mesa-18.3.0-rc6commit af223b57a4...Emil Velikov6 years
mesa-18.3.0-rc5commit b28aa1178a...Emil Velikov6 years
mesa-18.2.6commit 3e741344d7...Juan A. Suarez Romero6 years
mesa-18.3.0-rc4commit 33f1569f02...Emil Velikov6 years
mesa-18.3.0-rc3commit 4b3f884673...Emil Velikov6 years
mesa-18.2.5commit f34bddc325...Juan A. Suarez Romero6 years
mesa-18.3.0-rc2commit f55265776f...Emil Velikov6 years
mesa-18.3.0-rc1commit 949b1048f7...Emil Velikov6 years
18.3-branchpointcommit 1f41104b9b...Emil Velikov6 years
mesa-18.2.4commit 1cdef5e70c...Juan A. Suarez Romero6 years
mesa-18.2.3commit d219361b42...Juan A. Suarez Romero6 years
mesa-18.2.2commit abaeb79eb2...Juan A. Suarez Romero6 years
mesa-18.1.9commit f57f37f3ba...Dylan Baker6 years
mesa-18.2.1commit 3c8c851fe4...Juan A. Suarez Romero6 years
mesa-18.2.0commit 7378180e7a...Andres Gomez6 years
mesa-18.1.8commit 92497d659b...Dylan Baker6 years
mesa-18.2.0-rc6commit 86704dc08f...Andres Gomez6 years
mesa-18.2.0-rc5commit 3d52cfe80b...Andres Gomez6 years
mesa-18.1.7commit ab384a10ce...Dylan Baker6 years
mesa-18.2.0-rc4commit 86aa912dda...Andres Gomez6 years
mesa-18.2.0-rc3commit dcd3786e6e...Andres Gomez6 years
mesa-18.1.6commit 5343019cfa...Dylan Baker6 years
mesa-18.2.0-rc2commit 4a25d8b623...Andres Gomez6 years
mesa-18.2.0-rc1commit cb542ac550...Andres Gomez6 years
18.2-branchpointcommit 8d3ccdbb9b...Andres Gomez6 years
chadv/wip/arc-18.2.0-pre1-i965-mutable-render-buffer-2018-07-30commit 8cb2b5c37a...Chad Versace6 years
mesa-18.1.5commit 711035e355...Dylan Baker6 years
mesa-18.1.4commit 7f76bfcc7e...Dylan Baker6 years
mesa-18.1.3commit f7e89b2f48...Dylan Baker6 years
mesa-18.1.2commit aa1f6934f8...Dylan Baker6 years
mesa-18.0.5commit ca0037aaef...Juan A. Suarez Romero7 years
mesa-18.1.1commit 1f3536b80b...Dylan Baker7 years
mesa-18.1.0commit 204159b481...Dylan Baker7 years
mesa-18.0.4commit 3b49ab6219...Juan A. Suarez Romero7 years
mesa-18.1.0-rc4commit 630559e054...Dylan Baker7 years
mesa-18.0.3commit 6dc2658fd6...Juan A. Suarez Romero7 years
mesa-18.1.0-rc3commit ea1d5faa96...Dylan Baker7 years
chadv/wip/arc-17.3-i965-mutable-render-buffer-v06commit 3302281f00...Chad Versace7 years
mesa-18.0.2commit d38da7bd2d...Juan A. Suarez Romero7 years
mesa-18.1.0-rc2commit c2768b8a51...Dylan Baker7 years
mesa-18.1.0-rc1commit ff1ecebb1d...Dylan Baker7 years
18.1-branchpointcommit 6754c2e83d...Dylan Baker7 years
mesa-18.0.1commit 8bd719e3fa...Juan A. Suarez Romero7 years
mesa-17.3.9commit 6d88ea9dd4...Juan A. Suarez Romero7 years
mesa-17.3.8commit 3bf5c10c5c...Juan A. Suarez Romero7 years
mesa-18.0.0commit dceb1ce807...Emil Velikov7 years
mesa-17.3.7commit 8a51f3857c...Juan A. Suarez Romero7 years
mesa-18.0.0-rc5commit 15f1b50cee...Emil Velikov7 years
mesa-17.3.6commit b3e5a3f35b...Emil Velikov7 years
mesa-17.3.5commit 2529d77179...Emil Velikov7 years
mesa-17.3.4commit 2f9820c553...Emil Velikov7 years
mesa-18.0.0-rc4commit 1e1734634b...Emil Velikov7 years
mesa-18.0.0-rc3commit 17c0e248d7...Emil Velikov7 years
chadv/cros-mesa-18.1_pre1-r4-vanillacommit 131e871385...Rafael Antognolli7 years
cros-mesa-18.1_pre1-r4-vanillacommit 131e871385...Rafael Antognolli7 years
mesa-18.0.0-rc2commit 99a48002a2...Emil Velikov7 years
mesa-18.0-0-rc1commit e91e68d6a8...Emil Velikov7 years
mesa-18.0.0-rc1commit e91e68d6a8...Emil Velikov7 years
18.0-branchpointcommit a9db8ac935...Emil Velikov7 years
mesa-17.3.3commit 80f5f279b3...Juan A. Suarez Romero7 years
mesa-17.3.2commit 0f27052e32...Emil Velikov7 years
mesa-17.2.8commit 3482790712...Andres Gomez7 years
mesa-17.3.1commit 4f5e85e9e9...Emil Velikov7 years
mesa-17.2.7commit 834c36fa65...Emil Velikov7 years
mesa-17.3.0commit 8d55da9f57...Emil Velikov7 years
mesa-17.3.0-rc6commit 30abe7dfae...Emil Velikov7 years
mesa-17.2.6commit 00b52f8e99...Andres Gomez7 years
mesa-17.3.0-rc5commit d1e6cf4639...Emil Velikov7 years
mesa-17.3.0-rc4commit cb9d207ff3...Emil Velikov7 years
mesa-17.2.5commit ae52410bf0...Andres Gomez7 years
chadv/review/anv-dma-buf-v01commit e44b35b37e...Chad Versace7 years
mesa-17.3.0-rc3commit 19b62847e0...Emil Velikov7 years
mesa-17.2.4commit a4b72e2643...Andres Gomez7 years
mesa-17.3.0-rc2commit 3eb187f376...Emil Velikov7 years
mesa-17.3.0-rc1commit ae720e2873...Emil Velikov7 years
17.3-branchpointcommit 2665d012a8...Emil Velikov7 years
mesa-17.2.3commit 28dc4b64f2...Emil Velikov7 years
chadv/cros-mesa-17.2.3-vanillacommit 11adea4b24...Marek Olšák7 years
cros-mesa-17.2.3-vanillacommit 11adea4b24...Marek Olšák7 years
mesa-17.2.2commit bc12538a8e...Juan A. Suarez Romero7 years
mesa-17.1.10commit 834d6c60db...Juan A. Suarez Romero7 years
mesa-17.2.1commit d6d2b6b5ec...Emil Velikov7 years
mesa-17.1.9commit aef6ffabf9...Andres Gomez7 years
mesa-17.2.0commit f5925b2897...Emil Velikov7 years
mesa-17.2.0-rc6commit 909f2b6aa2...Emil Velikov7 years
mesa-17.1.8commit e644f9996b...Andres Gomez7 years
mesa-17.1.7commit c2d9f33f2c...Andres Gomez7 years
mesa-17.2.0-rc5commit 15f23fb855...Emil Velikov7 years
mesa-17.2.0-rc4commit 3165f9877e...Emil Velikov7 years
mesa-17.1.6commit 3d48433078...Emil Velikov7 years
mesa-17.2.0-rc3commit 29df4deef2...Emil Velikov7 years
mesa-17.2.0-rc2commit 58fe86a6d6...Emil Velikov7 years
mesa-17.2.0-rc1commit a455f594bb...Emil Velikov7 years
17.2-branchpointcommit 33236a306d...Emil Velikov7 years
mesa-17.1.5commit 2542ddd4dc...Andres Gomez7 years
chadv/cros-mesa-17.1.1-r3-vanillacommit 7250cbafb9...Kenneth Graunke7 years
cros-mesa-17.1.1-r3-vanillacommit 7250cbafb9...Kenneth Graunke7 years
mesa-17.1.4commit e60d010ef4...Andres Gomez7 years
chadv/cros-mesa-17.1.1-r14-vanillacommit 277621bbb7...Bruce Cherniak7 years
cros-mesa-17.1.1-r14-vanillacommit 277621bbb7...Bruce Cherniak7 years
mesa-17.1.3commit f60875e211...Emil Velikov7 years
mesa-17.1.2commit 97f6404e50...Juan A. Suarez Romero8 years
mesa-17.0.7commit 46cc7a1746...Emil Velikov8 years
mesa-17.1.1commit ca0a148a4d...Emil Velikov8 years
mesa-17.0.6commit 08abf3a2a2...Andres Gomez8 years
mesa-17.1.0commit 15a38605fc...Emil Velikov8 years
mesa-17.1.0-rc4commit da13cc7e4b...Emil Velikov8 years
chadv/review/fix-lost-android-window-v01commit 202ef9b8eb...Chad Versace8 years
mesa-17.1.0-rc3commit 72e52fa7c8...Emil Velikov8 years
mesa-17.0.5commit 61b134a862...Andres Gomez8 years
mesa-17.1.0-rc2commit 2bf79cb2f1...Emil Velikov8 years
mesa-17.1.0-rc1commit ed846b4c78...Emil Velikov8 years
mesa-17.0.4commit 367bafc7c1...Emil Velikov8 years
17.1-branchpointcommit 7748c3f5eb...Emil Velikov8 years
mesa-17.0.3commit 7f34ecae7f...Andres Gomez8 years
mesa-17.0.2commit 373d88a711...Emil Velikov8 years
mesa-13.0.6commit fcef88d13a...Emil Velikov8 years
mesa-17.0.1commit 8fee1d348c...Emil Velikov8 years
mesa-13.0.5commit 71f3ff57fa...Emil Velikov8 years
mesa-17.0.0commit 683462e680...Emil Velikov8 years
mesa-17.0.0-rc3commit 07571cd8cc...Emil Velikov8 years
mesa-13.0.4commit 3255d10da4...Emil Velikov8 years
chadv/cros-mesa-17.1.0-r1-vanillacommit 9baf1ff8fc...Eric Anholt8 years
chadv/cros-mesa-17.1.0-r2-vanillacommit 9baf1ff8fc...Eric Anholt8 years
cros-mesa-17.1.0-r1-vanillacommit 9baf1ff8fc...Eric Anholt8 years
cros-mesa-17.1.0-r2-vanillacommit 9baf1ff8fc...Eric Anholt8 years
mesa-17.0.0-rc2commit d283ec0a7b...Emil Velikov8 years
mesa-12.0.6commit 555885a0bf...Emil Velikov8 years
mesa-17.0.0-rc1commit 9cb066601c...Emil Velikov8 years
17.0-branchpointcommit d1efa09d34...Emil Velikov8 years
mesa-13.0.3commit bec04114d2...Emil Velikov8 years
mesa-12.0.5commit 01579a9d00...Emil Velikov8 years
mesa-13.0.2commit c9e993ba13...Emil Velikov8 years
mesa-13.0.1commit f2f487ebbb...Emil Velikov8 years
mesa-12.0.4commit 20370d4f1b...Emil Velikov8 years
mesa-13.0.0commit df1b0a5a86...Emil Velikov8 years
mesa-13.0.0-rc3commit 91b2b925d1...Emil Velikov8 years
mesa-13.0.0-rc2commit f623a8be3e...Emil Velikov8 years
mesa-13.0.0-rc1commit e45c4586c2...Emil Velikov8 years
13.0-branchpointcommit 3ef8d4288a...Emil Velikov8 years
mesa-12.0.3commit d79b2e7bf3...Emil Velikov8 years
mesa-12.0.2commit 2fc6a31f10...Emil Velikov8 years
mesa-12.0.1commit 04277f058d...Emil Velikov8 years
mesa-12.0.0commit 8b06176f31...Emil Velikov8 years
mesa-12.0.0-rc4commit 5e0b11cb6d...Emil Velikov8 years
mesa-12.0.0-rc3commit 7d41c8aa25...Emil Velikov8 years
chadv/cros-mesa-12.1.0-r3-vanillacommit b010fa8567...Timothy Arceri8 years
chadv/cros-mesa-12.1.0-r5-vanillacommit b010fa8567...Timothy Arceri8 years
chadv/cros-mesa-12.1.0-r7-vanillacommit b010fa8567...Timothy Arceri8 years
cros-mesa-12.1.0-r3-vanillacommit b010fa8567...Timothy Arceri8 years
cros-mesa-12.1.0-r5-vanillacommit b010fa8567...Timothy Arceri8 years
cros-mesa-12.1.0-r7-vanillacommit b010fa8567...Timothy Arceri8 years
mesa-12.0.0-rc2commit a7649abe9f...Emil Velikov9 years
mesa-12.0.0-rc1commit 9a56e7d25b...Emil Velikov9 years
12.0-branchpointcommit f25fdf21e7...Emil Velikov9 years
mesa-11.2.2commit 3a9f6283f4...Emil Velikov9 years
mesa-11.1.4commit 514a330cc0...Emil Velikov9 years
mesa-11.1.3commit ca2fbf6f8f...Emil Velikov9 years
mesa-11.2.1commit 21e6440e82...Emil Velikov9 years
mesa-11.2.0commit ff9ddb9eb1...Emil Velikov9 years
mesa-11.2.0-rc4commit bcb7e8b084...Emil Velikov9 years
mesa-11.2.0-rc3commit 9f21fdd8e6...Emil Velikov9 years
mesa-11.2.0-rc2commit 33b045688d...Emil Velikov9 years
mesa-11.2.0-rc1commit 35b7adb937...Emil Velikov9 years
11.2-branchpointcommit 4cd5e5b48e...Emil Velikov9 years
mesa-11.1.2commit 7bcd827806...Emil Velikov9 years
mesa-11.0.9commit 02028d679b...Emil Velikov9 years
mesa-11.1.1commit 330aa44a0d...Emil Velikov9 years
mesa-11.0.8commit 261daab6b4...Emil Velikov9 years
mesa-11.1.0commit 5a616125ac...Emil Velikov9 years
mesa-11.0.7commit bec983b738...Emil Velikov9 years
mesa-11.1.0-rc3commit 20db46c227...Emil Velikov9 years
mesa-11.1.0-rc2commit aefd6769e8...Emil Velikov9 years
mesa-11.1.0-rc1commit f9339359d5...Emil Velikov9 years
11.1-branchpointcommit 623f64efc1...Emil Velikov9 years
mesa-11.0.6commit 04fd3a6f62...Emil Velikov9 years
mesa-11.0.5commit ee57c22141...Emil Velikov9 years
mesa-11.0.4commit 31bf247031...Emil Velikov9 years
mesa-11.0.3commit 914966befc...Emil Velikov9 years
mesa-10.6.9commit ab9aacce2d...Emil Velikov9 years
mesa-11.0.2commit 51e0b06d99...Emil Velikov9 years
mesa-11.0.1commit bcb9e1d26b...Emil Velikov9 years
vulkan-protex-2015.09.24.r01commit e9dff5bb99...Jason Ekstrand9 years
mesa-10.6.8commit 91c6302734...Emil Velikov9 years
mesa-11.0.0commit 4f1e500150...Emil Velikov9 years
mesa-10.6.7commit 32efdc87cb...Emil Velikov9 years
mesa-11.0.0-rc3commit 271290f077...Emil Velikov9 years
mesa-10.6.6commit 4b05739e9d...Emil Velikov9 years
vulkan-protex-2015.09.24.r01-basecommit 76f17266ec...Nanley Chery9 years
mesa-11.0.0-rc2commit 3f8d44210c...Emil Velikov9 years
mesa-11.0.0-rc1commit ab94875352...Emil Velikov9 years
11.0-branchpointcommit d7bafcafd3...Emil Velikov9 years
mesa-10.6.5commit a43b3dd99b...Emil Velikov9 years
mesa-10.6.4commit 6b2fcee64e...Emil Velikov9 years
mesa-10.6.3commit ddc976368f...Emil Velikov9 years
vulkan-header-0.138.0commit 5520221118...Chad Versace9 years
mesa-10.6.2commit 9643cce94c...Emil Velikov9 years
vulkan-header-0.130.0commit 1c4238a8e5...Chad Versace9 years
vulkan-header-0.90.0commit f9dbc34a18...Connor Abbott9 years
mesa-10.5.9commit 7f40d08374...Emil Velikov9 years
mesa-10.6.1commit a871e80fc6...Emil Velikov9 years
mesa-10.5.8commit 24b043aab7...Emil Velikov9 years
mesa-10.6.0commit 3b9cde5c81...Emil Velikov9 years
mesa-10.5.7commit 495bcbc48c...Emil Velikov10 years
mesa-10.6.0-rc3commit 9dc43dc361...Emil Velikov10 years
mesa-10.6.0-rc2commit ffd133bdbe...Emil Velikov10 years
mesa-10.5.6commit b1cf9cfb16...Emil Velikov10 years
mesa-10.6.0-rc1commit 7c5cca5ee2...Emil Velikov10 years
10.6-branchpointcommit 0c9e0b7a6c...Emil Velikov10 years
mesa-10.5.5commit d88fb40505...Emil Velikov10 years
mesa-10.5.4commit ea0d1f575c...Emil Velikov10 years
mesa-10.5.3commit c4b8bff6e2...Emil Velikov10 years
chadv/cros-gerrit-262788-basecommit c2a0600d5b...Kenneth Graunke10 years
chadv/cros-mesa-10.6-vanillacommit c2a0600d5b...Kenneth Graunke10 years
cros-mesa-10.6-vanillacommit c2a0600d5b...Kenneth Graunke10 years
mesa-10.5.2commit 5e59f895c4...Emil Velikov10 years
mesa-10.4.7commit d26f3c1f86...Emil Velikov10 years
mesa-10.5.1commit 11c0ff60ef...Emil Velikov10 years
mesa-10.5.0commit 97357d475f...Emil Velikov10 years
mesa-10.4.6commit 542a754524...Emil Velikov10 years
mesa-10.5.0-rc3commit c32d835281...Emil Velikov10 years
mesa-10.5.0-rc2commit 3592cbb21f...Emil Velikov10 years
mesa-10.4.5commit a5c608e951...Emil Velikov10 years
mesa-10.5.0-rc1commit b9518a41d4...Emil Velikov10 years
10.5-branchpointcommit d1e21325cf...Emil Velikov10 years
mesa-10.4.4commit 62eb27ac8b...Emil Velikov10 years
mesa-10.4.3commit e92bfa3f95...Emil Velikov10 years
mesa-10.4.2commit 02f2e97c3e...Emil Velikov10 years
mesa-10.3.7commit 6b00e5585a...Emil Velikov10 years
mesa-10.4.1commit 60e2e04fe8...Emil Velikov10 years
mesa-10.3.6commit d28a758e44...Emil Velikov10 years
mesa-10.4.0commit 5fe79b0b12...Emil Velikov10 years
mesa-10.4.0-rc4commit 09e4f1a50f...Emil Velikov10 years
mesa-10.3.5commit c90b0db1ae...Emil Velikov10 years
mesa-10.4.0-rc3commit c29ddc923f...Emil Velikov10 years
chadv/cros-mesa-10.3-r13-vanillacommit 129178893b...Chris Forbes10 years
chadv/cros-mesa-10.3-r15-vanillacommit 129178893b...Chris Forbes10 years
chadv/cros-mesa-10.3-r28-vanillacommit 129178893b...Chris Forbes10 years
chadv/cros-mesa-10.3-r29-vanillacommit 129178893b...Chris Forbes10 years
cros-mesa-10.3-r13-vanillacommit 129178893b...Chris Forbes10 years
cros-mesa-10.3-r15-vanillacommit 129178893b...Chris Forbes10 years
cros-mesa-10.3-r28-vanillacommit 129178893b...Chris Forbes10 years
cros-mesa-10.3-r29-vanillacommit 129178893b...Chris Forbes10 years
mesa-10.4.0-rc2commit 7fe9292069...Emil Velikov10 years
mesa-10.3.4commit 26c8ecd85d...Emil Velikov10 years
mesa-10.4.0-rc1commit d133096d26...Emil Velikov10 years
10.4-branchpointcommit a4ffc2a445...Kristian Høgsberg10 years
mesa-10.3.3commit 1a9cc5f50d...Emil Velikov10 years
mesa-10.3.2commit 3b6a4758fa...Emil Velikov10 years
mesa-10.3.1commit 088d350178...Emil Velikov10 years
mesa-10.2.9commit 9f1149876f...Emil Velikov10 years
mesa-10.3commit 1b12af300d...Emil Velikov10 years
mesa-10.2.8commit 1e2b4120f7...Emil Velikov10 years
mesa-10.2.7commit 64d51e2507...Emil Velikov10 years
mesa-10.3-rc3commit 4e1ca4a190...Emil Velikov10 years
mesa-10.3-rc2commit 390a9f6cb7...Emil Velikov10 years
mesa-10.3-rc1commit 04c3c03682...Carl Worth10 years
10.3-branchpointcommit 0fb221065e...Glenn Kennard10 years
mesa-10.2.6commit 346dda24bf...Carl Worth10 years
mesa-10.2.5commit a53047f6d1...Carl Worth10 years
mesa-10.2.4commit efe8cb1e53...Carl Worth10 years
mesa-10.2.3commit 33cb9f9503...Carl Worth10 years
mesa-10.2.2commit 623e68fb1b...Carl Worth10 years
mesa-10.1.6commit 5f41cae633...Carl Worth10 years
mesa-10.2.1commit 1b69ea1c6d...Ian Romanick11 years
mesa-10.2commit f836ef63fd...Ian Romanick11 years
mesa-10.1.5commit feb4c7284c...Carl Worth11 years
android-x86-4.4-r1commit 2af6b7090a...Chih-Wei Huang11 years
mesa-10.2-rc5commit 8b71741222...Ian Romanick11 years
mesa-10.2-rc4commit 697316fe06...Ian Romanick11 years
mesa-10.1.4commit cc9b282f8a...Carl Worth11 years
mesa-10.2-rc3commit d0aa394741...Ian Romanick11 years
mesa-10.2-rc2commit 2e3ded0f44...Ian Romanick11 years
mesa-10.1.3commit 0028eb1083...Carl Worth11 years
mesa-10.1.2commit bde3135717...Carl Worth11 years
10.2-branchpointcommit a06c9791d1...Ian Romanick11 years
mesa-10.2-rc1commit e8f6150320...Ian Romanick11 years
mesa-10.1.1commit 780817af84...Carl Worth11 years
mesa-10.0.5commit c941373838...Carl Worth11 years
7.10-branchpointcommit 0e50c21e24...Eric Anholt11 years
7.11-branchpointcommit ac8f59b23e...Eric Anholt11 years
7.8-branchpointcommit ad7d36e919...Eric Anholt11 years
7.9-branchpointcommit b0bc026c12...Eric Anholt11 years
8.0-branchpointcommit 6fe42b603d...Eric Anholt11 years
9.2-branchpointcommit 9f07ca11c1...Eric Anholt11 years
9.1-branchpointcommit 72916698b0...Eric Anholt11 years
9.0-branchpointcommit 2d2f1fd164...Eric Anholt11 years
10.0-branchpointcommit 035cce83f7...Eric Anholt11 years
10.1-branchpointcommit 81144c049b...Eric Anholt11 years
mesa-10.0.4commit 2cfd35186e...Carl Worth11 years
mesa-10.1commit 4a86465f47...Ian Romanick11 years
mesa-10.1-rc3commit 05b9e6a963...Ian Romanick11 years
mesa-10.1-rc2commit fcb4eabb5f...Ian Romanick11 years
mesa-10.1-rc1commit 1e6bba58d8...Ian Romanick11 years
mesa-10.0.3commit d8225ac67a...Carl Worth11 years
mesa-10.0.2commit 108e50c3bc...Carl Worth11 years
mesa-9.2.5commit 4636e87191...Carl Worth11 years
mesa-10.0.1commit 12484d2582...Carl Worth11 years
mesa-10.0commit 724c07ff12...Ian Romanick11 years
mesa-9.2.4commit 3e385d1bc3...Carl Worth11 years
mesa-10.0-rc2commit 866ce39ca0...Ian Romanick11 years
mesa-10.0-rc1commit 15118b45a0...Ian Romanick11 years
mesa-9.2.3commit f4657c4e10...Carl Worth11 years
mesa-10.1-develcommit 9f4366f1ac...Ian Romanick11 years
mesa-9.2.2commit 8f0742051e...Carl Worth11 years
mesa-9.1.7commit 7d4a1f508b...Carl Worth11 years
mesa-9.2.1commit 2c3aa1b4ee...Carl Worth11 years
mesa-9.2commit 46273ba256...Ian Romanick11 years
mesa-9.2-rc2commit fe6526f439...Ian Romanick11 years
mesa-9.2-rc1commit 796b4a7b40...Ian Romanick11 years
mesa-9.1.6commit 1ed76d697f...Carl Worth11 years
mesa-9.1.5commit 42146f777b...Carl Worth11 years
mesa-9.1.4commit e64febb4b7...Ian Romanick11 years
mesa-9.1.3commit f32ec82a8c...Ian Romanick12 years
mesa-9.1.2commit 8c2981b8e0...Ian Romanick12 years
mesa-9.1.1commit 1e5e805fd0...Ian Romanick12 years
mesa-9.1commit 17493b8848...Ian Romanick12 years
mesa-9.0.3commit f75b27a53e...Andreas Boll12 years
mesa-9.1-rc2commit 456cdb6d01...Ian Romanick12 years
mesa-9.1-rc1commit a0528269a3...Ian Romanick12 years
mesa-9.0.2commit 1c1b424408...Andreas Boll12 years
gles3-fmt-v1commit ae0120f247...Jordan Justen12 years
mesa-9.0.1commit 2d85170eb7...Ian Romanick12 years
intel-2012q4.1commit 895a5873d1...Ian Romanick12 years
mesa-8.0.5commit 16aaa75d9f...Andreas Boll12 years
mesa-9.0commit e5fdeef1e0...Ian Romanick12 years
core-context-v2commit 85e97b18e0...Jordan Justen12 years
rgb10_a2ui-v3commit 257f32ad20...Jordan Justen12 years
mesa-8.0.4commit c1f4867c89...Ian Romanick12 years
instanced_arrays-v2commit c988bf94bc...Jordan Justen12 years
mesa-8.0.3commit 1659d87afe...Ian Romanick13 years
i965-primitive-restart-v2commit c7e77fcc31...Jordan Justen13 years
mesa-8.0.2commit 5f7204c3bb...Jakob Bornecrantz13 years
mesa-8.0.1commit fe77fd3983...Ian Romanick13 years
mesa-8.0commit f9c9933f9c...Ian Romanick13 years
mesa-8.0-rc2commit 0dddf4c575...Ian Romanick13 years
mesa-8.0-rc1commit c85402aba9...Jakob Bornecrantz13 years
mesa-7.11.2commit ea72e3cda8...Ian Romanick13 years
mesa-7.11.1commit c0009739bf...Ian Romanick13 years
mesa-7.11commit de8f22af28...Ian Romanick13 years
mesa-7.11-rc4commit fad610fec9...Ian Romanick13 years
mesa-7.11-rc3commit 7e1d9b3dfc...Ian Romanick13 years
mesa-7.11-rc2commit 73b68316f4...Ian Romanick13 years
mesa-7.11-rc1commit b033f050fd...Ian Romanick13 years
mesa-7.10.3commit 2d0fd07037...Ian Romanick13 years
usefulcommit d6db9143b6...Ian Romanick14 years
android-x86-2.2-r2commit 559a79ff87...Chih-Wei Huang14 years
mesa-7.10.2commit b0866f6cfd...Ian Romanick14 years
mesa-7.9.2commit 7e9d853665...Ian Romanick14 years
mesa-7.10.1commit 565caabf40...Ian Romanick14 years
mesa-7.10commit 7a3f869a47...Ian Romanick14 years
mesa-7.9.1commit 42a9472dc6...Ian Romanick14 years
android-x86-2.2commit f189dfe9e9...Chih-Wei Huang14 years
snb-magiccommit ef6967ddc2...Ian Romanick14 years
mesa-7.9commit 889cb2539b...Ian Romanick14 years
mesa-7.9-rc2commit 5d3a4317e8...Ian Romanick14 years
mesa-7.9-rc1commit 61653b488d...Ian Romanick14 years
mesa-7.8.2-2commit d0691bdef0...Julien Cristau14 years
mesa-7.8.2-1commit d74b848277...Julien Cristau14 years
mesa-7.8.2commit a2782af384...Ian Romanick14 years
mesa-7.8.1-2commit e61d717a8d...Julien Cristau14 years
mesa-7.7.1-2commit 1cfffc29f6...Julien Cristau15 years
mesa-7.8.1-1commit b7baa7ea1f...Brice Goglin15 years
mesa-7.8.1commit 582e292a88...Ian Romanick15 years
mesa-7.7.1-1commit 8d98d78320...Brice Goglin15 years
mesa-7.8commit dec94903d9...Ian Romanick15 years
mesa_7_7_1commit 0c88e34049...Ian Romanick15 years
mesa_7_7_1_rc2commit e33121b2d8...Ian Romanick15 years
7.8-rc2commit 4eead42550...Ian Romanick15 years
7.8-rc1commit 4161830642...Ian Romanick15 years
mesa-7.7-4commit b5f7f02399...Brice Goglin15 years
mesa-7.7-3commit eef7b39a36...Brice Goglin15 years
mesa-7.7-2commit adcbe9af69...Brice Goglin15 years
mesa-7.7-1commit 2b5f0b8669...Brice Goglin15 years
mesa-7.6.1-1commit 53d395336d...Julien Cristau15 years
mesa_7_7commit 7e210b9337...Ian Romanick15 years
mesa_7_6commit 75ad099d3c...Ian Romanick15 years
mesa_7_6_1commit b8f6444a07...Ian Romanick15 years
mesa_7_7_rc3commit bf75ee9ccc...Ian Romanick15 years
mesa_7_6_1_rc4commit 42d9409873...Ian Romanick15 years
mesa-7.7-rc2-1commit bb1193ca83...Brice Goglin15 years
mesa-7.6.1-rc3-1commit 7f8952d242...Brice Goglin15 years
mesa_7_7_rc2commit ba167f812c...Ian Romanick15 years
mesa_7_6_1_rc3commit 9dbd47fc6b...Ian Romanick15 years
mesa-7.6.1-rc2-1commit a7109f3ae5...Brice Goglin15 years
mesa_7_7_rc1commit f17dbe256b...Ian Romanick15 years
mesa_7_6_1_rc2commit 910aaed4da...Ian Romanick15 years
android-x86-1.6commit 74237c1a10...Chih-Wei Huang15 years
mesa_7_6_1_rc1commit fe5c46546e...Brian Paul15 years
mesa-7.6-1commit ee9811de78...Brice Goglin15 years
mesa_7_5_2commit 18f3afbe88...Ian Romanick15 years
mesa_7_5_2_rc1commit 126d62edd1...Eric Anholt15 years
mesa_7_6_rc1commit cc8084932c...Eric Anholt15 years
mesa-7.5.1-1commit 70fd9421ac...Brice Goglin15 years
mesa_7_5_1commit 7d3af894d6...Brian Paul15 years
mesa-7.5-3commit 3c4727a4e9...Brice Goglin15 years
mesa-7.5-2commit 04493de67b...Brice Goglin15 years
mesa-7.5-1commit 767c0b16f3...Brice Goglin15 years
mesa_7_5commit cd10996d4f...Brian Paul15 years
intel_2009q2_rc3commit 022e8e582e...Ian Romanick15 years
mesa-7.5-rc4-1commit 9032d6b40b...Julien Cristau15 years
mesa-7.4.4-1commit 2c8046b1bc...Julien Cristau15 years
mesa_7_5_rc4commit 418987ff05...Brian Paul15 years
mesa_7_4_4commit d0c391b6a2...Brian Paul15 years
mesa_7_4_3commit 5d387a35ff...Brian Paul15 years
mesa_7_5_rc3commit cfff2a6189...Brian Paul16 years
mesa_7_5_rc2commit 483e247804...Brian Paul16 years
mesa_7_4_2commit da709f163f...Brian Paul16 years
mesa_7_5_rc1commit 9b3d748f02...Brian Paul16 years
mesa-7.4.1-1commit 4842cde28f...Julien Cristau16 years
intel_2009q1_rc3commit 85396d8ef4...Ian Romanick16 years
mesa-7.4-2commit 3d81e934e5...Julien Cristau16 years
mesa-7.4-1commit 99f159339e...Julien Cristau16 years
mesa_7_4commit bf1e6581a5...Brian Paul16 years
intel_2009q1_rc2commit f535de8721...Ian Romanick16 years
mesa_7_4_rc2commit 20d34b50b5...Brian Paul16 years
mesa-7.4-rc1-1commit af3c568475...Julien Cristau16 years
mesa_7_4_rc1commit 17db2db9dc...Brian Paul16 years
intel_2009q1_rc1commit a8528a2e86...Ian Romanick16 years
mesa_20090313commit 7d6478cfcc...Brian Paul16 years
mesa-7.3-1commit cff0971f87...Julien Cristau16 years
mesa_7_3commit faa6d8af59...Brian Paul16 years
mesa-7.3-rc3-1commit f5c47105db...Julien Cristau16 years
mesa_7_3_rc3commit 39e6d0d810...Brian Paul16 years
mesa_7_3_rc2commit 8f8435637d...Brian Paul16 years
mesa-7.3-rc1-1commit 88083e9bab...Julien Cristau16 years
mesa_7_3_rc1commit f1455ca5f4...Brian Paul16 years
mesa-7.0.3-7commit 85d882983f...Julien Cristau16 years
mesa-7.2-1commit 84bb8fc695...Julien Cristau16 years
mesa-7.0.3-6commit 07c1fcc604...Julien Cristau16 years
mesa_7_2commit 35fe0e56e6...Brian Paul16 years
mesa_7_2_rc1commit 419353dc2f...Brian Paul16 years
mesa-7.1-1commit f9affb3059...Julien Cristau16 years
mesa_7_1commit 6d9b25e522...Brian Paul16 years
mesa_7_1_rc4commit 5d762e1613...Brian Paul16 years
mesa-7.1-rc3-1commit a8dde163dc...Julien Cristau16 years
mesa-7.0.3-5commit e325b76444...Julien Cristau16 years
mesa_7_1_rc3commit 2f1b5ffcda...Brian Paul16 years
mesa_7_1_rc2commit 6fe7857629...Brian Paul16 years
mesa-7.0.3-4commit 2b831e73f5...Brice Goglin16 years
mesa-7.0.3-3commit 5033e5b36d...Brice Goglin16 years
mesa_7_1_rc1commit 8bd70a7bbe...Brian Paul17 years
mesa-7.0.3-1commit 59c9c40c01...Brice Goglin17 years
mesa_7_0_3commit 48616e71d2...Brian17 years
mesa_7_0_3_rc3commit 70d227ac62...Brian17 years
mesa-7.0.3-rc2-2commit 2e5a63f365...Julien Cristau17 years
mesa-7.0.3-rc2-1commit d89cf0649e...Julien Cristau17 years
mesa-7.0.2-4commit 09504dde1f...Brice Goglin17 years
mesa-7.0.2-3commit 9fd22f0e3f...Julien Cristau17 years
mesa-7.0.2-1commit caf283329b...Brice Goglin17 years
mesa_7_0_2commit 8a40b670c3...Brian17 years
mesa_7_0_2_rc1commit 574fd63ff0...Brian17 years
mesa-7.0.1-2commit 369cda3752...Julien Cristau17 years
mesa-7.0.1-1commit 34beaefe1c...Julien Cristau17 years
mesa_7_0_1commit ae16a51e95...Brian17 years
mesa-7.0.1-rc2-1commit 593de57fa2...Julien Cristau17 years
mesa_7_0_1_rc2commit 756a7a4e4b...Brian17 years
mesa_7_0_1_rc1commit 005eea249c...Brian17 years
mesa-6.5.2-7commit 6186261589...Julien Cristau17 years
mesa-6.5.2-6commit 31f3433635...Julien Cristau17 years
mesa_7_0commit 131baefac3...Brian17 years
mesa-6.5.3-1commit e1b0715dd6...Julien Cristau18 years
mesa-6.5.2-5commit 1865ef6fd4...Julien Cristau18 years
mesa_6_5_3commit 02e958a1e4...Brian18 years
mesa_6_5_3_rc4commit 3de20aead2...Brian18 years
mesa-6.5.3-rc3-1commit 03cdacfb6a...Julien Cristau18 years
mesa_6_5_3_rc3commit 3e5eda9ee9...Brian18 years
mesa_6_5_3_rc2commit ad02042db2...Brian18 years
mesa-6.5.2-4commit 6c0fba2480...Julien Cristau18 years
post-merge-glsl-compiler-1commit 22d9132081...Brian18 years
pre-merge-glsl-compiler-1commit 8051c95a7e...Brian18 years
mesa-6.5.1-0.6commit 0aa8f1df3c...Julien Cristau18 years
mesa-6.5.2-3commit d39147a8a1...Julien Cristau18 years
mesa-6.5.2-2commit 7991f7e936...Julien Cristau18 years
mesa-6.5.1-0.5commit 6da1323437...Julien Cristau18 years
mesa-6.5.1-0.4commit 1dd29785cf...Julien Cristau18 years
mesa-6.5.1-0.3commit 5681987ee4...Julien Cristau18 years
mesa-6.5.1-0.2commit 75733e4237...Julien Cristau18 years
R300_DRIVER_0commit 20330f422f...Nicolai Haehnle
before_upgrade_03_01_05commit d1e40c9bdd...Aapo Tahkola
blended_fountaincommit 380ba2daec...Vladimir Dergachev
embedded-1-20030120commit 2005348110...Brian Paul
embedded-1-20030224commit 4b930d3080...Keith Whitwell
embedded-1-20030305commit 7b7af467dd...Keith Whitwell
embedded-1-20030324commit f221b8df75...Keith Whitwell
embedded-1-20030417commit f1f331ef4d...Alan Hourihane
embedded-1-20030502commit 3e713fe38c...Keith Whitwell
gliding_penguincommit a30402b56a...Vladimir Dergachev
jump_and_clickcommit 5dd4030e76...Vladimir Dergachev
kw-mesa-1commit 485f040741...Keith Whitwell
mesa-6.4.1commit db4236fe0b...David Nusinow
mesa-6.5.1-0.1commit bc8084da74...David Nusinow
mesa-6_5-20060712commit 59cfd3cd3f...Brian Paul
mesa_20050504commit ebef61f5c0...Brian Paul
mesa_20050526commit 020225496e...Keith Whitwell
mesa_20050610commit b4979ec178...Keith Whitwell
mesa_20050715commit 8d3aca655e...Brian Paul
mesa_20060201commit 11c0215bf8...Keith Whitwell
mesa_20060325commit ea4fe661d7...Brian Paul
mesa_3_1commit b0294cbbfe...Brian Paul
mesa_3_1_beta_3commit 0b6ae412d3...Jon Taylor
mesa_3_2commit 5febd0ce8b...Brian Paul
mesa_3_2_1commit e1aaeb5a45...Keith Whitwell
mesa_3_2_beta_1commit 1b539ed613...Brian Paul
mesa_3_3commit 5d5b09cf79...Brian Paul
mesa_3_4commit e5c8261f76...Brian Paul
mesa_3_4_1commit e430f93ea0...Brian Paul
mesa_3_4_2commit 217ff8f196...Brian Paul
mesa_3_5commit 5e7591f94c...Jouk Jansen
mesa_4_0commit a7f8117153...Brian Paul
mesa_4_0_1commit a340c4f6ef...Brian Paul
mesa_4_0_2commit aa5698e8ed...Brian Paul
mesa_4_0_3commit 4266ec91fe...Brian Paul
mesa_4_0_4commit 61b226a4f4...Brian Paul
mesa_4_1commit fd062077c6...Brian Paul
mesa_5_0commit 33c0b3e233...Brian Paul
mesa_5_0_1commit 6faeeb59ba...Brian Paul
mesa_6_3commit d4596584f6...Brian Paul
mesa_6_3_1commit 1585c234e0...Ian Romanick
mesa_6_3_1_1commit 14fa5f6a60...Ian Romanick
mesa_6_3_2commit eacd347fce...Brian Paul
mesa_6_4commit 7cd7a78d72...Brian Paul
mesa_6_4_1commit 53e595017e...Brian Paul
mesa_6_4_2commit 3b0c8dcaa3...Brian Paul
mesa_6_5commit 482d9dd21d...Eric Anholt
mesa_6_5_1commit 0321dac2cd...Brian Paul
mesa_6_5_2commit eb667b979b...Brian Paul
mesa_texman_20060210commit a6f78d4eee...Keith Whitwell
noisy_cubecommit f50a1964d1...Vladimir Dergachev
red_tinted_cubecommit 2fc9351ee7...Vladimir Dergachev
rotating_gearscommit e443d1ec47...Vladimir Dergachev
shimmering_gearscommit 4a04f002db...Vladimir Dergachev
startcommit fd624c0601...jtg
texman_0_1_20060325commit af6a480117...Brian Paul
texman_0_1_20060330commit 8ecd83f6cd...Keith Whitwell
texman_0_1_20060621commit bcc4804410...Keith Whitwell
texman_0_1_20060705commit f248927f47...Keith Whitwell
texman_0_1_pre_ttmcommit b3b325e560...Keith Whitwell
texmem_0_2_20060912commit b7fc1c32f8...Brian Paul
texmem_0_3_20060923commit 814cae6a45...Thomas Hellström
texmem_0_3_20060929commit 9b87fafc91...Thomas Hellström
the_perfect_fragcommit e3cdbca63f...Aapo Tahkola
trunk_20040329commit 068039eec1...Brian Paul
unichrome-last-xineramacommit 302c5694c6...Keith Whitwell
vtx-0-2-21112003-freezecommit f2f09abce4...Keith Whitwell
vtx-0-2-24112003commit 027fdb8bbd...Keith Whitwell
x->Extensions.EXT3) { \ _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \ return; \ } /* * Check if either of four extensions is enabled. */ #define CHECK_EXT4(EXT1, EXT2, EXT3, EXT4, FUNC) \ if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2 && \ !ctx->Extensions.EXT3 && !ctx->Extensions.EXT4) { \ _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \ return; \ } void GLAPIENTRY _mesa_GetBooleanv( GLenum pname, GLboolean *params ) { GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END(ctx); if (!params) return; if (ctx->NewState) _mesa_update_state(ctx); if (ctx->Driver.GetBooleanv && ctx->Driver.GetBooleanv(ctx, pname, params)) return; switch (pname) { case GL_ACCUM_RED_BITS: params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.accumRedBits); break; case GL_ACCUM_GREEN_BITS: params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.accumGreenBits); break; case GL_ACCUM_BLUE_BITS: params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.accumBlueBits); break; case GL_ACCUM_ALPHA_BITS: params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.accumAlphaBits); break; case GL_ACCUM_CLEAR_VALUE: params[0] = FLOAT_TO_BOOLEAN(ctx->Accum.ClearColor[0]); params[1] = FLOAT_TO_BOOLEAN(ctx->Accum.ClearColor[1]); params[2] = FLOAT_TO_BOOLEAN(ctx->Accum.ClearColor[2]); params[3] = FLOAT_TO_BOOLEAN(ctx->Accum.ClearColor[3]); break; case GL_ALPHA_BIAS: params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.AlphaBias); break; case GL_ALPHA_BITS: params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.alphaBits); break; case GL_ALPHA_SCALE: params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.AlphaScale); break; case GL_ALPHA_TEST: params[0] = ctx->Color.AlphaEnabled; break; case GL_ALPHA_TEST_FUNC: params[0] = ENUM_TO_BOOLEAN(ctx->Color.AlphaFunc); break; case GL_ALPHA_TEST_REF: params[0] = FLOAT_TO_BOOLEAN(ctx->Color.AlphaRef); break; case GL_ATTRIB_STACK_DEPTH: params[0] = INT_TO_BOOLEAN(ctx->AttribStackDepth); break; case GL_AUTO_NORMAL: params[0] = ctx->Eval.AutoNormal; break; case GL_AUX_BUFFERS: params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.numAuxBuffers); break; case GL_BLEND: params[0] = ctx->Color.BlendEnabled; break; case GL_BLEND_DST: params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendDstRGB); break; case GL_BLEND_SRC: params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendSrcRGB); break; case GL_BLEND_SRC_RGB_EXT: params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendSrcRGB); break; case GL_BLEND_DST_RGB_EXT: params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendDstRGB); break; case GL_BLEND_SRC_ALPHA_EXT: params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendSrcA); break; case GL_BLEND_DST_ALPHA_EXT: params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendDstA); break; case GL_BLEND_EQUATION: params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendEquationRGB ); break; case GL_BLEND_EQUATION_ALPHA_EXT: params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendEquationA ); break; case GL_BLEND_COLOR_EXT: params[0] = FLOAT_TO_BOOLEAN(ctx->Color.BlendColor[0]); params[1] = FLOAT_TO_BOOLEAN(ctx->Color.BlendColor[1]); params[2] = FLOAT_TO_BOOLEAN(ctx->Color.BlendColor[2]); params[3] = FLOAT_TO_BOOLEAN(ctx->Color.BlendColor[3]); break; case GL_BLUE_BIAS: params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.BlueBias); break; case GL_BLUE_BITS: params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.blueBits); break; case GL_BLUE_SCALE: params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.BlueScale); break; case GL_CLIENT_ATTRIB_STACK_DEPTH: params[0] = INT_TO_BOOLEAN(ctx->ClientAttribStackDepth); break; case GL_CLIP_PLANE0: params[0] = (ctx->Transform.ClipPlanesEnabled >> 0) & 1; break; case GL_CLIP_PLANE1: params[0] = (ctx->Transform.ClipPlanesEnabled >> 1) & 1; break; case GL_CLIP_PLANE2: params[0] = (ctx->Transform.ClipPlanesEnabled >> 2) & 1; break; case GL_CLIP_PLANE3: params[0] = (ctx->Transform.ClipPlanesEnabled >> 3) & 1; break; case GL_CLIP_PLANE4: params[0] = (ctx->Transform.ClipPlanesEnabled >> 4) & 1; break; case GL_CLIP_PLANE5: params[0] = (ctx->Transform.ClipPlanesEnabled >> 5) & 1; break; case GL_COLOR_CLEAR_VALUE: params[0] = FLOAT_TO_BOOLEAN(ctx->Color.ClearColor[0]); params[1] = FLOAT_TO_BOOLEAN(ctx->Color.ClearColor[1]); params[2] = FLOAT_TO_BOOLEAN(ctx->Color.ClearColor[2]); params[3] = FLOAT_TO_BOOLEAN(ctx->Color.ClearColor[3]); break; case GL_COLOR_MATERIAL: params[0] = ctx->Light.ColorMaterialEnabled; break; case GL_COLOR_MATERIAL_FACE: params[0] = ENUM_TO_BOOLEAN(ctx->Light.ColorMaterialFace); break; case GL_COLOR_MATERIAL_PARAMETER: params[0] = ENUM_TO_BOOLEAN(ctx->Light.ColorMaterialMode); break; case GL_COLOR_WRITEMASK: params[0] = INT_TO_BOOLEAN(ctx->Color.ColorMask[RCOMP] ? 1 : 0); params[1] = INT_TO_BOOLEAN(ctx->Color.ColorMask[GCOMP] ? 1 : 0); params[2] = INT_TO_BOOLEAN(ctx->Color.ColorMask[BCOMP] ? 1 : 0); params[3] = INT_TO_BOOLEAN(ctx->Color.ColorMask[ACOMP] ? 1 : 0); break; case GL_CULL_FACE: params[0] = ctx->Polygon.CullFlag; break; case GL_CULL_FACE_MODE: params[0] = ENUM_TO_BOOLEAN(ctx->Polygon.CullFaceMode); break; case GL_CURRENT_COLOR: { FLUSH_CURRENT(ctx, 0); params[0] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0]); params[1] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1]); params[2] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2]); params[3] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3]); } break; case GL_CURRENT_INDEX: { FLUSH_CURRENT(ctx, 0); params[0] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR_INDEX][0]); } break; case GL_CURRENT_NORMAL: { FLUSH_CURRENT(ctx, 0); params[0] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][0]); params[1] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][1]); params[2] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][2]); } break; case GL_CURRENT_RASTER_COLOR: params[0] = FLOAT_TO_BOOLEAN(ctx->Current.RasterColor[0]); params[1] = FLOAT_TO_BOOLEAN(ctx->Current.RasterColor[1]); params[2] = FLOAT_TO_BOOLEAN(ctx->Current.RasterColor[2]); params[3] = FLOAT_TO_BOOLEAN(ctx->Current.RasterColor[3]); break; case GL_CURRENT_RASTER_DISTANCE: params[0] = FLOAT_TO_BOOLEAN(ctx->Current.RasterDistance); break; case GL_CURRENT_RASTER_INDEX: params[0] = FLOAT_TO_BOOLEAN(ctx->Current.RasterIndex); break; case GL_CURRENT_RASTER_POSITION: params[0] = FLOAT_TO_BOOLEAN(ctx->Current.RasterPos[0]); params[1] = FLOAT_TO_BOOLEAN(ctx->Current.RasterPos[1]); params[2] = FLOAT_TO_BOOLEAN(ctx->Current.RasterPos[2]); params[3] = FLOAT_TO_BOOLEAN(ctx->Current.RasterPos[3]); break; case GL_CURRENT_RASTER_SECONDARY_COLOR: params[0] = FLOAT_TO_BOOLEAN(ctx->Current.RasterSecondaryColor[0]); params[1] = FLOAT_TO_BOOLEAN(ctx->Current.RasterSecondaryColor[1]); params[2] = FLOAT_TO_BOOLEAN(ctx->Current.RasterSecondaryColor[2]); params[3] = FLOAT_TO_BOOLEAN(ctx->Current.RasterSecondaryColor[3]); break; case GL_CURRENT_RASTER_TEXTURE_COORDS: { const GLuint texUnit = ctx->Texture.CurrentUnit; params[0] = FLOAT_TO_BOOLEAN(ctx->Current.RasterTexCoords[texUnit][0]); params[1] = FLOAT_TO_BOOLEAN(ctx->Current.RasterTexCoords[texUnit][1]); params[2] = FLOAT_TO_BOOLEAN(ctx->Current.RasterTexCoords[texUnit][2]); params[3] = FLOAT_TO_BOOLEAN(ctx->Current.RasterTexCoords[texUnit][3]); } break; case GL_CURRENT_RASTER_POSITION_VALID: params[0] = ctx->Current.RasterPosValid; break; case GL_CURRENT_TEXTURE_COORDS: { const GLuint texUnit = ctx->Texture.CurrentUnit; params[0] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][0]); params[1] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][1]); params[2] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][2]); params[3] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][3]); } break; case GL_DEPTH_BIAS: params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.DepthBias); break; case GL_DEPTH_BITS: params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.depthBits); break; case GL_DEPTH_CLEAR_VALUE: params[0] = FLOAT_TO_BOOLEAN(((GLfloat) ctx->Depth.Clear)); break; case GL_DEPTH_FUNC: params[0] = ENUM_TO_BOOLEAN(ctx->Depth.Func); break; case GL_DEPTH_RANGE: params[0] = FLOAT_TO_BOOLEAN(ctx->Viewport.Near); params[1] = FLOAT_TO_BOOLEAN(ctx->Viewport.Far); break; case GL_DEPTH_SCALE: params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.DepthScale); break; case GL_DEPTH_TEST: params[0] = ctx->Depth.Test; break; case GL_DEPTH_WRITEMASK: params[0] = ctx->Depth.Mask; break; case GL_DITHER: params[0] = ctx->Color.DitherFlag; break; case GL_DOUBLEBUFFER: params[0] = ctx->DrawBuffer->Visual.doubleBufferMode; break; case GL_DRAW_BUFFER: params[0] = ENUM_TO_BOOLEAN(ctx->DrawBuffer->ColorDrawBuffer[0]); break; case GL_EDGE_FLAG: { FLUSH_CURRENT(ctx, 0); params[0] = (ctx->Current.Attrib[VERT_ATTRIB_EDGEFLAG][0] == 1.0); } break; case GL_FEEDBACK_BUFFER_SIZE: params[0] = INT_TO_BOOLEAN(ctx->Feedback.BufferSize); break; case GL_FEEDBACK_BUFFER_TYPE: params[0] = ENUM_TO_BOOLEAN(ctx->Feedback.Type); break; case GL_FOG: params[0] = ctx->Fog.Enabled; break; case GL_FOG_COLOR: params[0] = FLOAT_TO_BOOLEAN(ctx->Fog.Color[0]); params[1] = FLOAT_TO_BOOLEAN(ctx->Fog.Color[1]); params[2] = FLOAT_TO_BOOLEAN(ctx->Fog.Color[2]); params[3] = FLOAT_TO_BOOLEAN(ctx->Fog.Color[3]); break; case GL_FOG_DENSITY: params[0] = FLOAT_TO_BOOLEAN(ctx->Fog.Density); break; case GL_FOG_END: params[0] = FLOAT_TO_BOOLEAN(ctx->Fog.End); break; case GL_FOG_HINT: params[0] = ENUM_TO_BOOLEAN(ctx->Hint.Fog); break; case GL_FOG_INDEX: params[0] = FLOAT_TO_BOOLEAN(ctx->Fog.Index); break; case GL_FOG_MODE: params[0] = ENUM_TO_BOOLEAN(ctx->Fog.Mode); break; case GL_FOG_START: params[0] = FLOAT_TO_BOOLEAN(ctx->Fog.Start); break; case GL_FRONT_FACE: params[0] = ENUM_TO_BOOLEAN(ctx->Polygon.FrontFace); break; case GL_GREEN_BIAS: params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.GreenBias); break; case GL_GREEN_BITS: params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.greenBits); break; case GL_GREEN_SCALE: params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.GreenScale); break; case GL_INDEX_BITS: params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.indexBits); break; case GL_INDEX_CLEAR_VALUE: params[0] = INT_TO_BOOLEAN(ctx->Color.ClearIndex); break; case GL_INDEX_MODE: params[0] = !ctx->DrawBuffer->Visual.rgbMode; break; case GL_INDEX_OFFSET: params[0] = INT_TO_BOOLEAN(ctx->Pixel.IndexOffset); break; case GL_INDEX_SHIFT: params[0] = INT_TO_BOOLEAN(ctx->Pixel.IndexShift); break; case GL_INDEX_WRITEMASK: params[0] = INT_TO_BOOLEAN(ctx->Color.IndexMask); break; case GL_LIGHT0: params[0] = ctx->Light.Light[0].Enabled; break; case GL_LIGHT1: params[0] = ctx->Light.Light[1].Enabled; break; case GL_LIGHT2: params[0] = ctx->Light.Light[2].Enabled; break; case GL_LIGHT3: params[0] = ctx->Light.Light[3].Enabled; break; case GL_LIGHT4: params[0] = ctx->Light.Light[4].Enabled; break; case GL_LIGHT5: params[0] = ctx->Light.Light[5].Enabled; break; case GL_LIGHT6: params[0] = ctx->Light.Light[6].Enabled; break; case GL_LIGHT7: params[0] = ctx->Light.Light[7].Enabled; break; case GL_LIGHTING: params[0] = ctx->Light.Enabled; break; case GL_LIGHT_MODEL_AMBIENT: params[0] = FLOAT_TO_BOOLEAN(ctx->Light.Model.Ambient[0]); params[1] = FLOAT_TO_BOOLEAN(ctx->Light.Model.Ambient[1]); params[2] = FLOAT_TO_BOOLEAN(ctx->Light.Model.Ambient[2]); params[3] = FLOAT_TO_BOOLEAN(ctx->Light.Model.Ambient[3]); break; case GL_LIGHT_MODEL_COLOR_CONTROL: params[0] = ENUM_TO_BOOLEAN(ctx->Light.Model.ColorControl); break; case GL_LIGHT_MODEL_LOCAL_VIEWER: params[0] = ctx->Light.Model.LocalViewer; break; case GL_LIGHT_MODEL_TWO_SIDE: params[0] = ctx->Light.Model.TwoSide; break; case GL_LINE_SMOOTH: params[0] = ctx->Line.SmoothFlag; break; case GL_LINE_SMOOTH_HINT: params[0] = ENUM_TO_BOOLEAN(ctx->Hint.LineSmooth); break; case GL_LINE_STIPPLE: params[0] = ctx->Line.StippleFlag; break; case GL_LINE_STIPPLE_PATTERN: params[0] = INT_TO_BOOLEAN(ctx->Line.StipplePattern); break; case GL_LINE_STIPPLE_REPEAT: params[0] = INT_TO_BOOLEAN(ctx->Line.StippleFactor); break; case GL_LINE_WIDTH: params[0] = FLOAT_TO_BOOLEAN(ctx->Line.Width); break; case GL_LINE_WIDTH_GRANULARITY: params[0] = FLOAT_TO_BOOLEAN(ctx->Const.LineWidthGranularity); break; case GL_LINE_WIDTH_RANGE: params[0] = FLOAT_TO_BOOLEAN(ctx->Const.MinLineWidthAA); params[1] = FLOAT_TO_BOOLEAN(ctx->Const.MaxLineWidthAA); break; case GL_ALIASED_LINE_WIDTH_RANGE: params[0] = FLOAT_TO_BOOLEAN(ctx->Const.MinLineWidth); params[1] = FLOAT_TO_BOOLEAN(ctx->Const.MaxLineWidth); break; case GL_LIST_BASE: params[0] = INT_TO_BOOLEAN(ctx->List.ListBase); break; case GL_LIST_INDEX: params[0] = INT_TO_BOOLEAN(ctx->ListState.CurrentListNum); break; case GL_LIST_MODE: { GLenum mode; if (!ctx->CompileFlag) mode = 0; else if (ctx->ExecuteFlag) mode = GL_COMPILE_AND_EXECUTE; else mode = GL_COMPILE; params[0] = ENUM_TO_BOOLEAN(mode); } break; case GL_INDEX_LOGIC_OP: params[0] = ctx->Color.IndexLogicOpEnabled; break; case GL_COLOR_LOGIC_OP: params[0] = ctx->Color.ColorLogicOpEnabled; break; case GL_LOGIC_OP_MODE: params[0] = ENUM_TO_BOOLEAN(ctx->Color.LogicOp); break; case GL_MAP1_COLOR_4: params[0] = ctx->Eval.Map1Color4; break; case GL_MAP1_GRID_DOMAIN: params[0] = FLOAT_TO_BOOLEAN(ctx->Eval.MapGrid1u1); params[1] = FLOAT_TO_BOOLEAN(ctx->Eval.MapGrid1u2); break; case GL_MAP1_GRID_SEGMENTS: params[0] = INT_TO_BOOLEAN(ctx->Eval.MapGrid1un); break; case GL_MAP1_INDEX: params[0] = ctx->Eval.Map1Index; break; case GL_MAP1_NORMAL: params[0] = ctx->Eval.Map1Normal; break; case GL_MAP1_TEXTURE_COORD_1: params[0] = ctx->Eval.Map1TextureCoord1; break; case GL_MAP1_TEXTURE_COORD_2: params[0] = ctx->Eval.Map1TextureCoord2; break; case GL_MAP1_TEXTURE_COORD_3: params[0] = ctx->Eval.Map1TextureCoord3; break; case GL_MAP1_TEXTURE_COORD_4: params[0] = ctx->Eval.Map1TextureCoord4; break; case GL_MAP1_VERTEX_3: params[0] = ctx->Eval.Map1Vertex3; break; case GL_MAP1_VERTEX_4: params[0] = ctx->Eval.Map1Vertex4; break; case GL_MAP2_COLOR_4: params[0] = ctx->Eval.Map2Color4; break; case GL_MAP2_GRID_DOMAIN: params[0] = FLOAT_TO_BOOLEAN(ctx->Eval.MapGrid2u1); params[1] = FLOAT_TO_BOOLEAN(ctx->Eval.MapGrid2u2); params[2] = FLOAT_TO_BOOLEAN(ctx->Eval.MapGrid2v1); params[3] = FLOAT_TO_BOOLEAN(ctx->Eval.MapGrid2v2); break; case GL_MAP2_GRID_SEGMENTS: params[0] = INT_TO_BOOLEAN(ctx->Eval.MapGrid2un); params[1] = INT_TO_BOOLEAN(ctx->Eval.MapGrid2vn); break; case GL_MAP2_INDEX: params[0] = ctx->Eval.Map2Index; break; case GL_MAP2_NORMAL: params[0] = ctx->Eval.Map2Normal; break; case GL_MAP2_TEXTURE_COORD_1: params[0] = ctx->Eval.Map2TextureCoord1; break; case GL_MAP2_TEXTURE_COORD_2: params[0] = ctx->Eval.Map2TextureCoord2; break; case GL_MAP2_TEXTURE_COORD_3: params[0] = ctx->Eval.Map2TextureCoord3; break; case GL_MAP2_TEXTURE_COORD_4: params[0] = ctx->Eval.Map2TextureCoord4; break; case GL_MAP2_VERTEX_3: params[0] = ctx->Eval.Map2Vertex3; break; case GL_MAP2_VERTEX_4: params[0] = ctx->Eval.Map2Vertex4; break; case GL_MAP_COLOR: params[0] = ctx->Pixel.MapColorFlag; break; case GL_MAP_STENCIL: params[0] = ctx->Pixel.MapStencilFlag; break; case GL_MATRIX_MODE: params[0] = ENUM_TO_BOOLEAN(ctx->Transform.MatrixMode); break; case GL_MAX_ATTRIB_STACK_DEPTH: params[0] = INT_TO_BOOLEAN(MAX_ATTRIB_STACK_DEPTH); break; case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH: params[0] = INT_TO_BOOLEAN(MAX_CLIENT_ATTRIB_STACK_DEPTH); break; case GL_MAX_CLIP_PLANES: params[0] = INT_TO_BOOLEAN(ctx->Const.MaxClipPlanes); break; case GL_MAX_ELEMENTS_VERTICES: params[0] = INT_TO_BOOLEAN(ctx->Const.MaxArrayLockSize); break; case GL_MAX_ELEMENTS_INDICES: params[0] = INT_TO_BOOLEAN(ctx->Const.MaxArrayLockSize); break; case GL_MAX_EVAL_ORDER: params[0] = INT_TO_BOOLEAN(MAX_EVAL_ORDER); break; case GL_MAX_LIGHTS: params[0] = INT_TO_BOOLEAN(ctx->Const.MaxLights); break; case GL_MAX_LIST_NESTING: params[0] = INT_TO_BOOLEAN(MAX_LIST_NESTING); break; case GL_MAX_MODELVIEW_STACK_DEPTH: params[0] = INT_TO_BOOLEAN(MAX_MODELVIEW_STACK_DEPTH); break; case GL_MAX_NAME_STACK_DEPTH: params[0] = INT_TO_BOOLEAN(MAX_NAME_STACK_DEPTH); break; case GL_MAX_PIXEL_MAP_TABLE: params[0] = INT_TO_BOOLEAN(MAX_PIXEL_MAP_TABLE); break; case GL_MAX_PROJECTION_STACK_DEPTH: params[0] = INT_TO_BOOLEAN(MAX_PROJECTION_STACK_DEPTH); break; case GL_MAX_TEXTURE_SIZE: params[0] = INT_TO_BOOLEAN(1 << (ctx->Const.MaxTextureLevels - 1)); break; case GL_MAX_3D_TEXTURE_SIZE: params[0] = INT_TO_BOOLEAN(1 << (ctx->Const.Max3DTextureLevels - 1)); break; case GL_MAX_TEXTURE_STACK_DEPTH: params[0] = INT_TO_BOOLEAN(MAX_TEXTURE_STACK_DEPTH); break; case GL_MAX_VIEWPORT_DIMS: params[0] = INT_TO_BOOLEAN(ctx->Const.MaxViewportWidth); params[1] = INT_TO_BOOLEAN(ctx->Const.MaxViewportHeight); break; case GL_MODELVIEW_MATRIX: { const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m; params[0] = FLOAT_TO_BOOLEAN(matrix[0]); params[1] = FLOAT_TO_BOOLEAN(matrix[1]); params[2] = FLOAT_TO_BOOLEAN(matrix[2]); params[3] = FLOAT_TO_BOOLEAN(matrix[3]); params[4] = FLOAT_TO_BOOLEAN(matrix[4]); params[5] = FLOAT_TO_BOOLEAN(matrix[5]); params[6] = FLOAT_TO_BOOLEAN(matrix[6]); params[7] = FLOAT_TO_BOOLEAN(matrix[7]); params[8] = FLOAT_TO_BOOLEAN(matrix[8]); params[9] = FLOAT_TO_BOOLEAN(matrix[9]); params[10] = FLOAT_TO_BOOLEAN(matrix[10]); params[11] = FLOAT_TO_BOOLEAN(matrix[11]); params[12] = FLOAT_TO_BOOLEAN(matrix[12]); params[13] = FLOAT_TO_BOOLEAN(matrix[13]); params[14] = FLOAT_TO_BOOLEAN(matrix[14]); params[15] = FLOAT_TO_BOOLEAN(matrix[15]); } break; case GL_MODELVIEW_STACK_DEPTH: params[0] = INT_TO_BOOLEAN(ctx->ModelviewMatrixStack.Depth + 1); break; case GL_NAME_STACK_DEPTH: params[0] = INT_TO_BOOLEAN(ctx->Select.NameStackDepth); break; case GL_NORMALIZE: params[0] = ctx->Transform.Normalize; break; case GL_PACK_ALIGNMENT: params[0] = INT_TO_BOOLEAN(ctx->Pack.Alignment); break; case GL_PACK_LSB_FIRST: params[0] = ctx->Pack.LsbFirst; break; case GL_PACK_ROW_LENGTH: params[0] = INT_TO_BOOLEAN(ctx->Pack.RowLength); break; case GL_PACK_SKIP_PIXELS: params[0] = INT_TO_BOOLEAN(ctx->Pack.SkipPixels); break; case GL_PACK_SKIP_ROWS: params[0] = INT_TO_BOOLEAN(ctx->Pack.SkipRows); break; case GL_PACK_SWAP_BYTES: params[0] = ctx->Pack.SwapBytes; break; case GL_PACK_SKIP_IMAGES_EXT: params[0] = INT_TO_BOOLEAN(ctx->Pack.SkipImages); break; case GL_PACK_IMAGE_HEIGHT_EXT: params[0] = INT_TO_BOOLEAN(ctx->Pack.ImageHeight); break; case GL_PACK_INVERT_MESA: params[0] = ctx->Pack.Invert; break; case GL_PERSPECTIVE_CORRECTION_HINT: params[0] = ENUM_TO_BOOLEAN(ctx->Hint.PerspectiveCorrection); break; case GL_PIXEL_MAP_A_TO_A_SIZE: params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.AtoA.Size); break; case GL_PIXEL_MAP_B_TO_B_SIZE: params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.BtoB.Size); break; case GL_PIXEL_MAP_G_TO_G_SIZE: params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.GtoG.Size); break; case GL_PIXEL_MAP_I_TO_A_SIZE: params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.ItoA.Size); break; case GL_PIXEL_MAP_I_TO_B_SIZE: params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.ItoB.Size); break; case GL_PIXEL_MAP_I_TO_G_SIZE: params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.ItoG.Size); break; case GL_PIXEL_MAP_I_TO_I_SIZE: params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.ItoI.Size); break; case GL_PIXEL_MAP_I_TO_R_SIZE: params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.ItoR.Size); break; case GL_PIXEL_MAP_R_TO_R_SIZE: params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.RtoR.Size); break; case GL_PIXEL_MAP_S_TO_S_SIZE: params[0] = INT_TO_BOOLEAN(ctx->PixelMaps.StoS.Size); break; case GL_POINT_SIZE: params[0] = FLOAT_TO_BOOLEAN(ctx->Point.Size); break; case GL_POINT_SIZE_GRANULARITY: params[0] = FLOAT_TO_BOOLEAN(ctx->Const.PointSizeGranularity); break; case GL_POINT_SIZE_RANGE: params[0] = FLOAT_TO_BOOLEAN(ctx->Const.MinPointSizeAA); params[1] = FLOAT_TO_BOOLEAN(ctx->Const.MaxPointSizeAA); break; case GL_ALIASED_POINT_SIZE_RANGE: params[0] = FLOAT_TO_BOOLEAN(ctx->Const.MinPointSize); params[1] = FLOAT_TO_BOOLEAN(ctx->Const.MaxPointSize); break; case GL_POINT_SMOOTH: params[0] = ctx->Point.SmoothFlag; break; case GL_POINT_SMOOTH_HINT: params[0] = ENUM_TO_BOOLEAN(ctx->Hint.PointSmooth); break; case GL_POINT_SIZE_MIN_EXT: params[0] = FLOAT_TO_BOOLEAN(ctx->Point.MinSize); break; case GL_POINT_SIZE_MAX_EXT: params[0] = FLOAT_TO_BOOLEAN(ctx->Point.MaxSize); break; case GL_POINT_FADE_THRESHOLD_SIZE_EXT: params[0] = FLOAT_TO_BOOLEAN(ctx->Point.Threshold); break; case GL_DISTANCE_ATTENUATION_EXT: params[0] = FLOAT_TO_BOOLEAN(ctx->Point.Params[0]); params[1] = FLOAT_TO_BOOLEAN(ctx->Point.Params[1]); params[2] = FLOAT_TO_BOOLEAN(ctx->Point.Params[2]); break; case GL_POLYGON_MODE: params[0] = ENUM_TO_BOOLEAN(ctx->Polygon.FrontMode); params[1] = ENUM_TO_BOOLEAN(ctx->Polygon.BackMode); break; case GL_POLYGON_OFFSET_BIAS_EXT: params[0] = FLOAT_TO_BOOLEAN(ctx->Polygon.OffsetUnits); break; case GL_POLYGON_OFFSET_FACTOR: params[0] = FLOAT_TO_BOOLEAN(ctx->Polygon.OffsetFactor ); break; case GL_POLYGON_OFFSET_UNITS: params[0] = FLOAT_TO_BOOLEAN(ctx->Polygon.OffsetUnits ); break; case GL_POLYGON_OFFSET_POINT: params[0] = ctx->Polygon.OffsetPoint; break; case GL_POLYGON_OFFSET_LINE: params[0] = ctx->Polygon.OffsetLine; break; case GL_POLYGON_OFFSET_FILL: params[0] = ctx->Polygon.OffsetFill; break; case GL_POLYGON_SMOOTH: params[0] = ctx->Polygon.SmoothFlag; break; case GL_POLYGON_SMOOTH_HINT: params[0] = ENUM_TO_BOOLEAN(ctx->Hint.PolygonSmooth); break; case GL_POLYGON_STIPPLE: params[0] = ctx->Polygon.StippleFlag; break; case GL_PROJECTION_MATRIX: { const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m; params[0] = FLOAT_TO_BOOLEAN(matrix[0]); params[1] = FLOAT_TO_BOOLEAN(matrix[1]); params[2] = FLOAT_TO_BOOLEAN(matrix[2]); params[3] = FLOAT_TO_BOOLEAN(matrix[3]); params[4] = FLOAT_TO_BOOLEAN(matrix[4]); params[5] = FLOAT_TO_BOOLEAN(matrix[5]); params[6] = FLOAT_TO_BOOLEAN(matrix[6]); params[7] = FLOAT_TO_BOOLEAN(matrix[7]); params[8] = FLOAT_TO_BOOLEAN(matrix[8]); params[9] = FLOAT_TO_BOOLEAN(matrix[9]); params[10] = FLOAT_TO_BOOLEAN(matrix[10]); params[11] = FLOAT_TO_BOOLEAN(matrix[11]); params[12] = FLOAT_TO_BOOLEAN(matrix[12]); params[13] = FLOAT_TO_BOOLEAN(matrix[13]); params[14] = FLOAT_TO_BOOLEAN(matrix[14]); params[15] = FLOAT_TO_BOOLEAN(matrix[15]); } break; case GL_PROJECTION_STACK_DEPTH: params[0] = INT_TO_BOOLEAN(ctx->ProjectionMatrixStack.Depth + 1); break; case GL_READ_BUFFER: params[0] = ENUM_TO_BOOLEAN(ctx->ReadBuffer->ColorReadBuffer); break; case GL_RED_BIAS: params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.RedBias); break; case GL_RED_BITS: params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.redBits); break; case GL_RED_SCALE: params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.RedScale); break; case GL_RENDER_MODE: params[0] = ENUM_TO_BOOLEAN(ctx->RenderMode); break; case GL_RESCALE_NORMAL: params[0] = ctx->Transform.RescaleNormals; break; case GL_RGBA_MODE: params[0] = ctx->DrawBuffer->Visual.rgbMode; break; case GL_SCISSOR_BOX: params[0] = INT_TO_BOOLEAN(ctx->Scissor.X); params[1] = INT_TO_BOOLEAN(ctx->Scissor.Y); params[2] = INT_TO_BOOLEAN(ctx->Scissor.Width); params[3] = INT_TO_BOOLEAN(ctx->Scissor.Height); break; case GL_SCISSOR_TEST: params[0] = ctx->Scissor.Enabled; break; case GL_SELECTION_BUFFER_SIZE: params[0] = INT_TO_BOOLEAN(ctx->Select.BufferSize); break; case GL_SHADE_MODEL: params[0] = ENUM_TO_BOOLEAN(ctx->Light.ShadeModel); break; case GL_SHARED_TEXTURE_PALETTE_EXT: params[0] = ctx->Texture.SharedPalette; break; case GL_STENCIL_BITS: params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.stencilBits); break; case GL_STENCIL_CLEAR_VALUE: params[0] = INT_TO_BOOLEAN(ctx->Stencil.Clear); break; case GL_STENCIL_FAIL: params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.FailFunc[ctx->Stencil.ActiveFace]); break; case GL_STENCIL_FUNC: params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.Function[ctx->Stencil.ActiveFace]); break; case GL_STENCIL_PASS_DEPTH_FAIL: params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.ZFailFunc[ctx->Stencil.ActiveFace]); break; case GL_STENCIL_PASS_DEPTH_PASS: params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.ZPassFunc[ctx->Stencil.ActiveFace]); break; case GL_STENCIL_REF: params[0] = INT_TO_BOOLEAN(ctx->Stencil.Ref[ctx->Stencil.ActiveFace]); break; case GL_STENCIL_TEST: params[0] = ctx->Stencil.Enabled; break; case GL_STENCIL_VALUE_MASK: params[0] = INT_TO_BOOLEAN(ctx->Stencil.ValueMask[ctx->Stencil.ActiveFace]); break; case GL_STENCIL_WRITEMASK: params[0] = INT_TO_BOOLEAN(ctx->Stencil.WriteMask[ctx->Stencil.ActiveFace]); break; case GL_STEREO: params[0] = ctx->DrawBuffer->Visual.stereoMode; break; case GL_SUBPIXEL_BITS: params[0] = INT_TO_BOOLEAN(ctx->Const.SubPixelBits); break; case GL_TEXTURE_1D: params[0] = _mesa_IsEnabled(GL_TEXTURE_1D); break; case GL_TEXTURE_2D: params[0] = _mesa_IsEnabled(GL_TEXTURE_2D); break; case GL_TEXTURE_3D: params[0] = _mesa_IsEnabled(GL_TEXTURE_3D); break; case GL_TEXTURE_1D_ARRAY_EXT: CHECK_EXT1(MESA_texture_array, "GetBooleanv"); params[0] = _mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT); break; case GL_TEXTURE_2D_ARRAY_EXT: CHECK_EXT1(MESA_texture_array, "GetBooleanv"); params[0] = _mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT); break; case GL_TEXTURE_BINDING_1D: params[0] = INT_TO_BOOLEAN(ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current1D->Name); break; case GL_TEXTURE_BINDING_2D: params[0] = INT_TO_BOOLEAN(ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current2D->Name); break; case GL_TEXTURE_BINDING_3D: params[0] = INT_TO_BOOLEAN(ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current3D->Name); break; case GL_TEXTURE_BINDING_1D_ARRAY_EXT: CHECK_EXT1(MESA_texture_array, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current1DArray->Name); break; case GL_TEXTURE_BINDING_2D_ARRAY_EXT: CHECK_EXT1(MESA_texture_array, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current2DArray->Name); break; case GL_TEXTURE_GEN_S: params[0] = ((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & S_BIT) ? 1 : 0); break; case GL_TEXTURE_GEN_T: params[0] = ((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & T_BIT) ? 1 : 0); break; case GL_TEXTURE_GEN_R: params[0] = ((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & R_BIT) ? 1 : 0); break; case GL_TEXTURE_GEN_Q: params[0] = ((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & Q_BIT) ? 1 : 0); break; case GL_TEXTURE_MATRIX: { const GLfloat *matrix = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m; params[0] = FLOAT_TO_BOOLEAN(matrix[0]); params[1] = FLOAT_TO_BOOLEAN(matrix[1]); params[2] = FLOAT_TO_BOOLEAN(matrix[2]); params[3] = FLOAT_TO_BOOLEAN(matrix[3]); params[4] = FLOAT_TO_BOOLEAN(matrix[4]); params[5] = FLOAT_TO_BOOLEAN(matrix[5]); params[6] = FLOAT_TO_BOOLEAN(matrix[6]); params[7] = FLOAT_TO_BOOLEAN(matrix[7]); params[8] = FLOAT_TO_BOOLEAN(matrix[8]); params[9] = FLOAT_TO_BOOLEAN(matrix[9]); params[10] = FLOAT_TO_BOOLEAN(matrix[10]); params[11] = FLOAT_TO_BOOLEAN(matrix[11]); params[12] = FLOAT_TO_BOOLEAN(matrix[12]); params[13] = FLOAT_TO_BOOLEAN(matrix[13]); params[14] = FLOAT_TO_BOOLEAN(matrix[14]); params[15] = FLOAT_TO_BOOLEAN(matrix[15]); } break; case GL_TEXTURE_STACK_DEPTH: params[0] = INT_TO_BOOLEAN(ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Depth + 1); break; case GL_UNPACK_ALIGNMENT: params[0] = INT_TO_BOOLEAN(ctx->Unpack.Alignment); break; case GL_UNPACK_LSB_FIRST: params[0] = ctx->Unpack.LsbFirst; break; case GL_UNPACK_ROW_LENGTH: params[0] = INT_TO_BOOLEAN(ctx->Unpack.RowLength); break; case GL_UNPACK_SKIP_PIXELS: params[0] = INT_TO_BOOLEAN(ctx->Unpack.SkipPixels); break; case GL_UNPACK_SKIP_ROWS: params[0] = INT_TO_BOOLEAN(ctx->Unpack.SkipRows); break; case GL_UNPACK_SWAP_BYTES: params[0] = ctx->Unpack.SwapBytes; break; case GL_UNPACK_SKIP_IMAGES_EXT: params[0] = INT_TO_BOOLEAN(ctx->Unpack.SkipImages); break; case GL_UNPACK_IMAGE_HEIGHT_EXT: params[0] = INT_TO_BOOLEAN(ctx->Unpack.ImageHeight); break; case GL_UNPACK_CLIENT_STORAGE_APPLE: params[0] = ctx->Unpack.ClientStorage; break; case GL_VIEWPORT: params[0] = INT_TO_BOOLEAN(ctx->Viewport.X); params[1] = INT_TO_BOOLEAN(ctx->Viewport.Y); params[2] = INT_TO_BOOLEAN(ctx->Viewport.Width); params[3] = INT_TO_BOOLEAN(ctx->Viewport.Height); break; case GL_ZOOM_X: params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.ZoomX); break; case GL_ZOOM_Y: params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.ZoomY); break; case GL_VERTEX_ARRAY: params[0] = ctx->Array.ArrayObj->Vertex.Enabled; break; case GL_VERTEX_ARRAY_SIZE: params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Vertex.Size); break; case GL_VERTEX_ARRAY_TYPE: params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->Vertex.Type); break; case GL_VERTEX_ARRAY_STRIDE: params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Vertex.Stride); break; case GL_VERTEX_ARRAY_COUNT_EXT: params[0] = INT_TO_BOOLEAN(0); break; case GL_NORMAL_ARRAY: params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->Normal.Enabled); break; case GL_NORMAL_ARRAY_TYPE: params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->Normal.Type); break; case GL_NORMAL_ARRAY_STRIDE: params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Normal.Stride); break; case GL_NORMAL_ARRAY_COUNT_EXT: params[0] = INT_TO_BOOLEAN(0); break; case GL_COLOR_ARRAY: params[0] = ctx->Array.ArrayObj->Color.Enabled; break; case GL_COLOR_ARRAY_SIZE: params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Color.Size); break; case GL_COLOR_ARRAY_TYPE: params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->Color.Type); break; case GL_COLOR_ARRAY_STRIDE: params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Color.Stride); break; case GL_COLOR_ARRAY_COUNT_EXT: params[0] = INT_TO_BOOLEAN(0); break; case GL_INDEX_ARRAY: params[0] = ctx->Array.ArrayObj->Index.Enabled; break; case GL_INDEX_ARRAY_TYPE: params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->Index.Type); break; case GL_INDEX_ARRAY_STRIDE: params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Index.Stride); break; case GL_INDEX_ARRAY_COUNT_EXT: params[0] = INT_TO_BOOLEAN(0); break; case GL_TEXTURE_COORD_ARRAY: params[0] = ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Enabled; break; case GL_TEXTURE_COORD_ARRAY_SIZE: params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Size); break; case GL_TEXTURE_COORD_ARRAY_TYPE: params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Type); break; case GL_TEXTURE_COORD_ARRAY_STRIDE: params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Stride); break; case GL_TEXTURE_COORD_ARRAY_COUNT_EXT: params[0] = INT_TO_BOOLEAN(0); break; case GL_EDGE_FLAG_ARRAY: params[0] = ctx->Array.ArrayObj->EdgeFlag.Enabled; break; case GL_EDGE_FLAG_ARRAY_STRIDE: params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->EdgeFlag.Stride); break; case GL_EDGE_FLAG_ARRAY_COUNT_EXT: params[0] = INT_TO_BOOLEAN(0); break; case GL_MAX_TEXTURE_UNITS_ARB: CHECK_EXT1(ARB_multitexture, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Const.MaxTextureUnits); break; case GL_ACTIVE_TEXTURE_ARB: CHECK_EXT1(ARB_multitexture, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB + ctx->Texture.CurrentUnit); break; case GL_CLIENT_ACTIVE_TEXTURE_ARB: CHECK_EXT1(ARB_multitexture, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(GL_TEXTURE0_ARB + ctx->Array.ActiveTexture); break; case GL_TEXTURE_CUBE_MAP_ARB: CHECK_EXT1(ARB_texture_cube_map, "GetBooleanv"); params[0] = _mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB); break; case GL_TEXTURE_BINDING_CUBE_MAP_ARB: CHECK_EXT1(ARB_texture_cube_map, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentCubeMap->Name); break; case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB: CHECK_EXT1(ARB_texture_cube_map, "GetBooleanv"); params[0] = INT_TO_BOOLEAN((1 << (ctx->Const.MaxCubeTextureLevels - 1))); break; case GL_TEXTURE_COMPRESSION_HINT_ARB: params[0] = INT_TO_BOOLEAN(ctx->Hint.TextureCompression); break; case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB: params[0] = INT_TO_BOOLEAN(_mesa_get_compressed_formats(ctx, NULL, GL_FALSE)); break; case GL_COMPRESSED_TEXTURE_FORMATS_ARB: { GLint formats[100]; GLuint i, n = _mesa_get_compressed_formats(ctx, formats, GL_FALSE); ASSERT(n <= 100); for (i = 0; i < n; i++) params[i] = ENUM_TO_BOOLEAN(formats[i]); } break; case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT: CHECK_EXT1(EXT_compiled_vertex_array, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Array.LockFirst); break; case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT: CHECK_EXT1(EXT_compiled_vertex_array, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Array.LockCount); break; case GL_TRANSPOSE_COLOR_MATRIX_ARB: { const GLfloat *matrix = ctx->ColorMatrixStack.Top->m; params[0] = FLOAT_TO_BOOLEAN(matrix[0]); params[1] = FLOAT_TO_BOOLEAN(matrix[4]); params[2] = FLOAT_TO_BOOLEAN(matrix[8]); params[3] = FLOAT_TO_BOOLEAN(matrix[12]); params[4] = FLOAT_TO_BOOLEAN(matrix[1]); params[5] = FLOAT_TO_BOOLEAN(matrix[5]); params[6] = FLOAT_TO_BOOLEAN(matrix[9]); params[7] = FLOAT_TO_BOOLEAN(matrix[13]); params[8] = FLOAT_TO_BOOLEAN(matrix[2]); params[9] = FLOAT_TO_BOOLEAN(matrix[6]); params[10] = FLOAT_TO_BOOLEAN(matrix[10]); params[11] = FLOAT_TO_BOOLEAN(matrix[14]); params[12] = FLOAT_TO_BOOLEAN(matrix[3]); params[13] = FLOAT_TO_BOOLEAN(matrix[7]); params[14] = FLOAT_TO_BOOLEAN(matrix[11]); params[15] = FLOAT_TO_BOOLEAN(matrix[15]); } break; case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB: { const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m; params[0] = FLOAT_TO_BOOLEAN(matrix[0]); params[1] = FLOAT_TO_BOOLEAN(matrix[4]); params[2] = FLOAT_TO_BOOLEAN(matrix[8]); params[3] = FLOAT_TO_BOOLEAN(matrix[12]); params[4] = FLOAT_TO_BOOLEAN(matrix[1]); params[5] = FLOAT_TO_BOOLEAN(matrix[5]); params[6] = FLOAT_TO_BOOLEAN(matrix[9]); params[7] = FLOAT_TO_BOOLEAN(matrix[13]); params[8] = FLOAT_TO_BOOLEAN(matrix[2]); params[9] = FLOAT_TO_BOOLEAN(matrix[6]); params[10] = FLOAT_TO_BOOLEAN(matrix[10]); params[11] = FLOAT_TO_BOOLEAN(matrix[14]); params[12] = FLOAT_TO_BOOLEAN(matrix[3]); params[13] = FLOAT_TO_BOOLEAN(matrix[7]); params[14] = FLOAT_TO_BOOLEAN(matrix[11]); params[15] = FLOAT_TO_BOOLEAN(matrix[15]); } break; case GL_TRANSPOSE_PROJECTION_MATRIX_ARB: { const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m; params[0] = FLOAT_TO_BOOLEAN(matrix[0]); params[1] = FLOAT_TO_BOOLEAN(matrix[4]); params[2] = FLOAT_TO_BOOLEAN(matrix[8]); params[3] = FLOAT_TO_BOOLEAN(matrix[12]); params[4] = FLOAT_TO_BOOLEAN(matrix[1]); params[5] = FLOAT_TO_BOOLEAN(matrix[5]); params[6] = FLOAT_TO_BOOLEAN(matrix[9]); params[7] = FLOAT_TO_BOOLEAN(matrix[13]); params[8] = FLOAT_TO_BOOLEAN(matrix[2]); params[9] = FLOAT_TO_BOOLEAN(matrix[6]); params[10] = FLOAT_TO_BOOLEAN(matrix[10]); params[11] = FLOAT_TO_BOOLEAN(matrix[14]); params[12] = FLOAT_TO_BOOLEAN(matrix[3]); params[13] = FLOAT_TO_BOOLEAN(matrix[7]); params[14] = FLOAT_TO_BOOLEAN(matrix[11]); params[15] = FLOAT_TO_BOOLEAN(matrix[15]); } break; case GL_TRANSPOSE_TEXTURE_MATRIX_ARB: { const GLfloat *matrix = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m; params[0] = FLOAT_TO_BOOLEAN(matrix[0]); params[1] = FLOAT_TO_BOOLEAN(matrix[4]); params[2] = FLOAT_TO_BOOLEAN(matrix[8]); params[3] = FLOAT_TO_BOOLEAN(matrix[12]); params[4] = FLOAT_TO_BOOLEAN(matrix[1]); params[5] = FLOAT_TO_BOOLEAN(matrix[5]); params[6] = FLOAT_TO_BOOLEAN(matrix[9]); params[7] = FLOAT_TO_BOOLEAN(matrix[13]); params[8] = FLOAT_TO_BOOLEAN(matrix[2]); params[9] = FLOAT_TO_BOOLEAN(matrix[6]); params[10] = FLOAT_TO_BOOLEAN(matrix[10]); params[11] = FLOAT_TO_BOOLEAN(matrix[14]); params[12] = FLOAT_TO_BOOLEAN(matrix[3]); params[13] = FLOAT_TO_BOOLEAN(matrix[7]); params[14] = FLOAT_TO_BOOLEAN(matrix[11]); params[15] = FLOAT_TO_BOOLEAN(matrix[15]); } break; case GL_COLOR_MATRIX_SGI: { const GLfloat *matrix = ctx->ColorMatrixStack.Top->m; params[0] = FLOAT_TO_BOOLEAN(matrix[0]); params[1] = FLOAT_TO_BOOLEAN(matrix[1]); params[2] = FLOAT_TO_BOOLEAN(matrix[2]); params[3] = FLOAT_TO_BOOLEAN(matrix[3]); params[4] = FLOAT_TO_BOOLEAN(matrix[4]); params[5] = FLOAT_TO_BOOLEAN(matrix[5]); params[6] = FLOAT_TO_BOOLEAN(matrix[6]); params[7] = FLOAT_TO_BOOLEAN(matrix[7]); params[8] = FLOAT_TO_BOOLEAN(matrix[8]); params[9] = FLOAT_TO_BOOLEAN(matrix[9]); params[10] = FLOAT_TO_BOOLEAN(matrix[10]); params[11] = FLOAT_TO_BOOLEAN(matrix[11]); params[12] = FLOAT_TO_BOOLEAN(matrix[12]); params[13] = FLOAT_TO_BOOLEAN(matrix[13]); params[14] = FLOAT_TO_BOOLEAN(matrix[14]); params[15] = FLOAT_TO_BOOLEAN(matrix[15]); } break; case GL_COLOR_MATRIX_STACK_DEPTH_SGI: params[0] = INT_TO_BOOLEAN(ctx->ColorMatrixStack.Depth + 1); break; case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI: params[0] = INT_TO_BOOLEAN(MAX_COLOR_STACK_DEPTH); break; case GL_POST_COLOR_MATRIX_RED_SCALE_SGI: params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostColorMatrixScale[0]); break; case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI: params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostColorMatrixScale[1]); break; case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI: params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostColorMatrixScale[2]); break; case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI: params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostColorMatrixScale[3]); break; case GL_POST_COLOR_MATRIX_RED_BIAS_SGI: params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostColorMatrixBias[0]); break; case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI: params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostColorMatrixBias[1]); break; case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI: params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostColorMatrixBias[2]); break; case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI: params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostColorMatrixBias[3]); break; case GL_CONVOLUTION_1D_EXT: CHECK_EXT1(EXT_convolution, "GetBooleanv"); params[0] = ctx->Pixel.Convolution1DEnabled; break; case GL_CONVOLUTION_2D_EXT: CHECK_EXT1(EXT_convolution, "GetBooleanv"); params[0] = ctx->Pixel.Convolution2DEnabled; break; case GL_SEPARABLE_2D_EXT: CHECK_EXT1(EXT_convolution, "GetBooleanv"); params[0] = ctx->Pixel.Separable2DEnabled; break; case GL_POST_CONVOLUTION_RED_SCALE_EXT: CHECK_EXT1(EXT_convolution, "GetBooleanv"); params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostConvolutionScale[0]); break; case GL_POST_CONVOLUTION_GREEN_SCALE_EXT: CHECK_EXT1(EXT_convolution, "GetBooleanv"); params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostConvolutionScale[1]); break; case GL_POST_CONVOLUTION_BLUE_SCALE_EXT: CHECK_EXT1(EXT_convolution, "GetBooleanv"); params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostConvolutionScale[2]); break; case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT: CHECK_EXT1(EXT_convolution, "GetBooleanv"); params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostConvolutionScale[3]); break; case GL_POST_CONVOLUTION_RED_BIAS_EXT: CHECK_EXT1(EXT_convolution, "GetBooleanv"); params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostConvolutionBias[0]); break; case GL_POST_CONVOLUTION_GREEN_BIAS_EXT: CHECK_EXT1(EXT_convolution, "GetBooleanv"); params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostConvolutionBias[1]); break; case GL_POST_CONVOLUTION_BLUE_BIAS_EXT: CHECK_EXT1(EXT_convolution, "GetBooleanv"); params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostConvolutionBias[2]); break; case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT: CHECK_EXT1(EXT_convolution, "GetBooleanv"); params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.PostConvolutionBias[3]); break; case GL_HISTOGRAM: CHECK_EXT1(EXT_histogram, "GetBooleanv"); params[0] = ctx->Pixel.HistogramEnabled; break; case GL_MINMAX: CHECK_EXT1(EXT_histogram, "GetBooleanv"); params[0] = ctx->Pixel.MinMaxEnabled; break; case GL_COLOR_TABLE_SGI: CHECK_EXT1(SGI_color_table, "GetBooleanv"); params[0] = ctx->Pixel.ColorTableEnabled[COLORTABLE_PRECONVOLUTION]; break; case GL_POST_CONVOLUTION_COLOR_TABLE_SGI: CHECK_EXT1(SGI_color_table, "GetBooleanv"); params[0] = ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCONVOLUTION]; break; case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI: CHECK_EXT1(SGI_color_table, "GetBooleanv"); params[0] = ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCOLORMATRIX]; break; case GL_TEXTURE_COLOR_TABLE_SGI: CHECK_EXT1(SGI_texture_color_table, "GetBooleanv"); params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].ColorTableEnabled; break; case GL_COLOR_SUM_EXT: CHECK_EXT2(EXT_secondary_color, ARB_vertex_program, "GetBooleanv"); params[0] = ctx->Fog.ColorSumEnabled; break; case GL_CURRENT_SECONDARY_COLOR_EXT: CHECK_EXT1(EXT_secondary_color, "GetBooleanv"); { FLUSH_CURRENT(ctx, 0); params[0] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][0]); params[1] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][1]); params[2] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][2]); params[3] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][3]); } break; case GL_SECONDARY_COLOR_ARRAY_EXT: CHECK_EXT1(EXT_secondary_color, "GetBooleanv"); params[0] = ctx->Array.ArrayObj->SecondaryColor.Enabled; break; case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT: CHECK_EXT1(EXT_secondary_color, "GetBooleanv"); params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->SecondaryColor.Type); break; case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT: CHECK_EXT1(EXT_secondary_color, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->SecondaryColor.Stride); break; case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT: CHECK_EXT1(EXT_secondary_color, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->SecondaryColor.Size); break; case GL_CURRENT_FOG_COORDINATE_EXT: CHECK_EXT1(EXT_fog_coord, "GetBooleanv"); { FLUSH_CURRENT(ctx, 0); params[0] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_FOG][0]); } break; case GL_FOG_COORDINATE_ARRAY_EXT: CHECK_EXT1(EXT_fog_coord, "GetBooleanv"); params[0] = ctx->Array.ArrayObj->FogCoord.Enabled; break; case GL_FOG_COORDINATE_ARRAY_TYPE_EXT: CHECK_EXT1(EXT_fog_coord, "GetBooleanv"); params[0] = ENUM_TO_BOOLEAN(ctx->Array.ArrayObj->FogCoord.Type); break; case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT: CHECK_EXT1(EXT_fog_coord, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->FogCoord.Stride); break; case GL_FOG_COORDINATE_SOURCE_EXT: CHECK_EXT1(EXT_fog_coord, "GetBooleanv"); params[0] = ENUM_TO_BOOLEAN(ctx->Fog.FogCoordinateSource); break; case GL_MAX_TEXTURE_LOD_BIAS_EXT: CHECK_EXT1(EXT_texture_lod_bias, "GetBooleanv"); params[0] = FLOAT_TO_BOOLEAN(ctx->Const.MaxTextureLodBias); break; case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: CHECK_EXT1(EXT_texture_filter_anisotropic, "GetBooleanv"); params[0] = FLOAT_TO_BOOLEAN(ctx->Const.MaxTextureMaxAnisotropy); break; case GL_MULTISAMPLE_ARB: CHECK_EXT1(ARB_multisample, "GetBooleanv"); params[0] = ctx->Multisample.Enabled; break; case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB: CHECK_EXT1(ARB_multisample, "GetBooleanv"); params[0] = ctx->Multisample.SampleAlphaToCoverage; break; case GL_SAMPLE_ALPHA_TO_ONE_ARB: CHECK_EXT1(ARB_multisample, "GetBooleanv"); params[0] = ctx->Multisample.SampleAlphaToOne; break; case GL_SAMPLE_COVERAGE_ARB: CHECK_EXT1(ARB_multisample, "GetBooleanv"); params[0] = ctx->Multisample.SampleCoverage; break; case GL_SAMPLE_COVERAGE_VALUE_ARB: CHECK_EXT1(ARB_multisample, "GetBooleanv"); params[0] = FLOAT_TO_BOOLEAN(ctx->Multisample.SampleCoverageValue); break; case GL_SAMPLE_COVERAGE_INVERT_ARB: CHECK_EXT1(ARB_multisample, "GetBooleanv"); params[0] = ctx->Multisample.SampleCoverageInvert; break; case GL_SAMPLE_BUFFERS_ARB: CHECK_EXT1(ARB_multisample, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.sampleBuffers); break; case GL_SAMPLES_ARB: CHECK_EXT1(ARB_multisample, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.samples); break; case GL_RASTER_POSITION_UNCLIPPED_IBM: CHECK_EXT1(IBM_rasterpos_clip, "GetBooleanv"); params[0] = ctx->Transform.RasterPositionUnclipped; break; case GL_POINT_SPRITE_NV: CHECK_EXT2(NV_point_sprite, ARB_point_sprite, "GetBooleanv"); params[0] = ctx->Point.PointSprite; break; case GL_POINT_SPRITE_R_MODE_NV: CHECK_EXT1(NV_point_sprite, "GetBooleanv"); params[0] = ENUM_TO_BOOLEAN(ctx->Point.SpriteRMode); break; case GL_POINT_SPRITE_COORD_ORIGIN: CHECK_EXT2(NV_point_sprite, ARB_point_sprite, "GetBooleanv"); params[0] = ENUM_TO_BOOLEAN(ctx->Point.SpriteOrigin); break; case GL_GENERATE_MIPMAP_HINT_SGIS: CHECK_EXT1(SGIS_generate_mipmap, "GetBooleanv"); params[0] = ENUM_TO_BOOLEAN(ctx->Hint.GenerateMipmap); break; case GL_VERTEX_PROGRAM_BINDING_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = INT_TO_BOOLEAN((ctx->VertexProgram.Current ? ctx->VertexProgram.Current->Base.Id : 0)); break; case GL_VERTEX_ATTRIB_ARRAY0_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Array.ArrayObj->VertexAttrib[0].Enabled; break; case GL_VERTEX_ATTRIB_ARRAY1_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Array.ArrayObj->VertexAttrib[1].Enabled; break; case GL_VERTEX_ATTRIB_ARRAY2_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Array.ArrayObj->VertexAttrib[2].Enabled; break; case GL_VERTEX_ATTRIB_ARRAY3_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Array.ArrayObj->VertexAttrib[3].Enabled; break; case GL_VERTEX_ATTRIB_ARRAY4_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Array.ArrayObj->VertexAttrib[4].Enabled; break; case GL_VERTEX_ATTRIB_ARRAY5_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Array.ArrayObj->VertexAttrib[5].Enabled; break; case GL_VERTEX_ATTRIB_ARRAY6_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Array.ArrayObj->VertexAttrib[6].Enabled; break; case GL_VERTEX_ATTRIB_ARRAY7_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Array.ArrayObj->VertexAttrib[7].Enabled; break; case GL_VERTEX_ATTRIB_ARRAY8_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Array.ArrayObj->VertexAttrib[8].Enabled; break; case GL_VERTEX_ATTRIB_ARRAY9_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Array.ArrayObj->VertexAttrib[9].Enabled; break; case GL_VERTEX_ATTRIB_ARRAY10_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Array.ArrayObj->VertexAttrib[10].Enabled; break; case GL_VERTEX_ATTRIB_ARRAY11_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Array.ArrayObj->VertexAttrib[11].Enabled; break; case GL_VERTEX_ATTRIB_ARRAY12_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Array.ArrayObj->VertexAttrib[12].Enabled; break; case GL_VERTEX_ATTRIB_ARRAY13_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Array.ArrayObj->VertexAttrib[13].Enabled; break; case GL_VERTEX_ATTRIB_ARRAY14_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Array.ArrayObj->VertexAttrib[14].Enabled; break; case GL_VERTEX_ATTRIB_ARRAY15_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Array.ArrayObj->VertexAttrib[15].Enabled; break; case GL_MAP1_VERTEX_ATTRIB0_4_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Eval.Map1Attrib[0]; break; case GL_MAP1_VERTEX_ATTRIB1_4_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Eval.Map1Attrib[1]; break; case GL_MAP1_VERTEX_ATTRIB2_4_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Eval.Map1Attrib[2]; break; case GL_MAP1_VERTEX_ATTRIB3_4_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Eval.Map1Attrib[3]; break; case GL_MAP1_VERTEX_ATTRIB4_4_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Eval.Map1Attrib[4]; break; case GL_MAP1_VERTEX_ATTRIB5_4_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Eval.Map1Attrib[5]; break; case GL_MAP1_VERTEX_ATTRIB6_4_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Eval.Map1Attrib[6]; break; case GL_MAP1_VERTEX_ATTRIB7_4_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Eval.Map1Attrib[7]; break; case GL_MAP1_VERTEX_ATTRIB8_4_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Eval.Map1Attrib[8]; break; case GL_MAP1_VERTEX_ATTRIB9_4_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Eval.Map1Attrib[9]; break; case GL_MAP1_VERTEX_ATTRIB10_4_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Eval.Map1Attrib[10]; break; case GL_MAP1_VERTEX_ATTRIB11_4_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Eval.Map1Attrib[11]; break; case GL_MAP1_VERTEX_ATTRIB12_4_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Eval.Map1Attrib[12]; break; case GL_MAP1_VERTEX_ATTRIB13_4_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Eval.Map1Attrib[13]; break; case GL_MAP1_VERTEX_ATTRIB14_4_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Eval.Map1Attrib[14]; break; case GL_MAP1_VERTEX_ATTRIB15_4_NV: CHECK_EXT1(NV_vertex_program, "GetBooleanv"); params[0] = ctx->Eval.Map1Attrib[15]; break; case GL_FRAGMENT_PROGRAM_NV: CHECK_EXT1(NV_fragment_program, "GetBooleanv"); params[0] = ctx->FragmentProgram.Enabled; break; case GL_FRAGMENT_PROGRAM_BINDING_NV: CHECK_EXT1(NV_fragment_program, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->FragmentProgram.Current ? ctx->FragmentProgram.Current->Base.Id : 0); break; case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV: CHECK_EXT1(NV_fragment_program, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(MAX_NV_FRAGMENT_PROGRAM_PARAMS); break; case GL_TEXTURE_RECTANGLE_NV: CHECK_EXT1(NV_texture_rectangle, "GetBooleanv"); params[0] = _mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV); break; case GL_TEXTURE_BINDING_RECTANGLE_NV: CHECK_EXT1(NV_texture_rectangle, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentRect->Name); break; case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV: CHECK_EXT1(NV_texture_rectangle, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Const.MaxTextureRectSize); break; case GL_STENCIL_TEST_TWO_SIDE_EXT: CHECK_EXT1(EXT_stencil_two_side, "GetBooleanv"); params[0] = ctx->Stencil.TestTwoSide; break; case GL_ACTIVE_STENCIL_FACE_EXT: CHECK_EXT1(EXT_stencil_two_side, "GetBooleanv"); params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.ActiveFace ? GL_BACK : GL_FRONT); break; case GL_MAX_SHININESS_NV: CHECK_EXT1(NV_light_max_exponent, "GetBooleanv"); params[0] = FLOAT_TO_BOOLEAN(ctx->Const.MaxShininess); break; case GL_MAX_SPOT_EXPONENT_NV: CHECK_EXT1(NV_light_max_exponent, "GetBooleanv"); params[0] = FLOAT_TO_BOOLEAN(ctx->Const.MaxSpotExponent); break; case GL_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayBufferObj->Name); break; case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Vertex.BufferObj->Name); break; case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Normal.BufferObj->Name); break; case GL_COLOR_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Color.BufferObj->Name); break; case GL_INDEX_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->Index.BufferObj->Name); break; case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].BufferObj->Name); break; case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->EdgeFlag.BufferObj->Name); break; case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->SecondaryColor.BufferObj->Name); break; case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Array.ArrayObj->FogCoord.BufferObj->Name); break; case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Array.ElementArrayBufferObj->Name); break; case GL_PIXEL_PACK_BUFFER_BINDING_EXT: CHECK_EXT1(EXT_pixel_buffer_object, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Pack.BufferObj->Name); break; case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT: CHECK_EXT1(EXT_pixel_buffer_object, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Unpack.BufferObj->Name); break; case GL_VERTEX_PROGRAM_ARB: CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetBooleanv"); params[0] = ctx->VertexProgram.Enabled; break; case GL_VERTEX_PROGRAM_POINT_SIZE_ARB: CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetBooleanv"); params[0] = ctx->VertexProgram.PointSizeEnabled; break; case GL_VERTEX_PROGRAM_TWO_SIDE_ARB: CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetBooleanv"); params[0] = ctx->VertexProgram.TwoSideEnabled; break; case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB: CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Const.MaxProgramMatrixStackDepth); break; case GL_MAX_PROGRAM_MATRICES_ARB: CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Const.MaxProgramMatrices); break; case GL_CURRENT_MATRIX_STACK_DEPTH_ARB: CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetBooleanv"); params[0] = ctx->CurrentStack->Depth + 1; break; case GL_CURRENT_MATRIX_ARB: CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_fragment_program, "GetBooleanv"); { const GLfloat *matrix = ctx->CurrentStack->Top->m; params[0] = FLOAT_TO_BOOLEAN(matrix[0]); params[1] = FLOAT_TO_BOOLEAN(matrix[1]); params[2] = FLOAT_TO_BOOLEAN(matrix[2]); params[3] = FLOAT_TO_BOOLEAN(matrix[3]); params[4] = FLOAT_TO_BOOLEAN(matrix[4]); params[5] = FLOAT_TO_BOOLEAN(matrix[5]); params[6] = FLOAT_TO_BOOLEAN(matrix[6]); params[7] = FLOAT_TO_BOOLEAN(matrix[7]); params[8] = FLOAT_TO_BOOLEAN(matrix[8]); params[9] = FLOAT_TO_BOOLEAN(matrix[9]); params[10] = FLOAT_TO_BOOLEAN(matrix[10]); params[11] = FLOAT_TO_BOOLEAN(matrix[11]); params[12] = FLOAT_TO_BOOLEAN(matrix[12]); params[13] = FLOAT_TO_BOOLEAN(matrix[13]); params[14] = FLOAT_TO_BOOLEAN(matrix[14]); params[15] = FLOAT_TO_BOOLEAN(matrix[15]); } break; case GL_TRANSPOSE_CURRENT_MATRIX_ARB: CHECK_EXT2(ARB_vertex_program, ARB_fragment_program, "GetBooleanv"); { const GLfloat *matrix = ctx->CurrentStack->Top->m; params[0] = FLOAT_TO_BOOLEAN(matrix[0]); params[1] = FLOAT_TO_BOOLEAN(matrix[4]); params[2] = FLOAT_TO_BOOLEAN(matrix[8]); params[3] = FLOAT_TO_BOOLEAN(matrix[12]); params[4] = FLOAT_TO_BOOLEAN(matrix[1]); params[5] = FLOAT_TO_BOOLEAN(matrix[5]); params[6] = FLOAT_TO_BOOLEAN(matrix[9]); params[7] = FLOAT_TO_BOOLEAN(matrix[13]); params[8] = FLOAT_TO_BOOLEAN(matrix[2]); params[9] = FLOAT_TO_BOOLEAN(matrix[6]); params[10] = FLOAT_TO_BOOLEAN(matrix[10]); params[11] = FLOAT_TO_BOOLEAN(matrix[14]); params[12] = FLOAT_TO_BOOLEAN(matrix[3]); params[13] = FLOAT_TO_BOOLEAN(matrix[7]); params[14] = FLOAT_TO_BOOLEAN(matrix[11]); params[15] = FLOAT_TO_BOOLEAN(matrix[15]); } break; case GL_MAX_VERTEX_ATTRIBS_ARB: CHECK_EXT1(ARB_vertex_program, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Const.VertexProgram.MaxAttribs); break; case GL_PROGRAM_ERROR_POSITION_ARB: CHECK_EXT4(NV_vertex_program, ARB_vertex_program, NV_fragment_program, ARB_fragment_program, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Program.ErrorPos); break; case GL_FRAGMENT_PROGRAM_ARB: CHECK_EXT1(ARB_fragment_program, "GetBooleanv"); params[0] = ctx->FragmentProgram.Enabled; break; case GL_MAX_TEXTURE_COORDS_ARB: CHECK_EXT2(ARB_fragment_program, NV_fragment_program, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Const.MaxTextureCoordUnits); break; case GL_MAX_TEXTURE_IMAGE_UNITS_ARB: CHECK_EXT2(ARB_fragment_program, NV_fragment_program, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Const.MaxTextureImageUnits); break; case GL_DEPTH_BOUNDS_TEST_EXT: CHECK_EXT1(EXT_depth_bounds_test, "GetBooleanv"); params[0] = ctx->Depth.BoundsTest; break; case GL_DEPTH_BOUNDS_EXT: CHECK_EXT1(EXT_depth_bounds_test, "GetBooleanv"); params[0] = FLOAT_TO_BOOLEAN(ctx->Depth.BoundsMin); params[1] = FLOAT_TO_BOOLEAN(ctx->Depth.BoundsMax); break; case GL_FRAGMENT_PROGRAM_CALLBACK_MESA: CHECK_EXT1(MESA_program_debug, "GetBooleanv"); params[0] = ctx->FragmentProgram.CallbackEnabled; break; case GL_VERTEX_PROGRAM_CALLBACK_MESA: CHECK_EXT1(MESA_program_debug, "GetBooleanv"); params[0] = ctx->VertexProgram.CallbackEnabled; break; case GL_FRAGMENT_PROGRAM_POSITION_MESA: CHECK_EXT1(MESA_program_debug, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->FragmentProgram.CurrentPosition); break; case GL_VERTEX_PROGRAM_POSITION_MESA: CHECK_EXT1(MESA_program_debug, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->VertexProgram.CurrentPosition); break; case GL_MAX_DRAW_BUFFERS_ARB: CHECK_EXT1(ARB_draw_buffers, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Const.MaxDrawBuffers); break; case GL_DRAW_BUFFER0_ARB: CHECK_EXT1(ARB_draw_buffers, "GetBooleanv"); params[0] = ENUM_TO_BOOLEAN(ctx->DrawBuffer->ColorDrawBuffer[0]); break; case GL_DRAW_BUFFER1_ARB: CHECK_EXT1(ARB_draw_buffers, "GetBooleanv"); { GLenum buffer; if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) { _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)"); return; } buffer = ctx->DrawBuffer->ColorDrawBuffer[1]; params[0] = ENUM_TO_BOOLEAN(buffer); } break; case GL_DRAW_BUFFER2_ARB: CHECK_EXT1(ARB_draw_buffers, "GetBooleanv"); { GLenum buffer; if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) { _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)"); return; } buffer = ctx->DrawBuffer->ColorDrawBuffer[2]; params[0] = ENUM_TO_BOOLEAN(buffer); } break; case GL_DRAW_BUFFER3_ARB: CHECK_EXT1(ARB_draw_buffers, "GetBooleanv"); { GLenum buffer; if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) { _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)"); return; } buffer = ctx->DrawBuffer->ColorDrawBuffer[3]; params[0] = ENUM_TO_BOOLEAN(buffer); } break; case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES: CHECK_EXT1(OES_read_format, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Const.ColorReadType); break; case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES: CHECK_EXT1(OES_read_format, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Const.ColorReadFormat); break; case GL_NUM_FRAGMENT_REGISTERS_ATI: CHECK_EXT1(ATI_fragment_shader, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(6); break; case GL_NUM_FRAGMENT_CONSTANTS_ATI: CHECK_EXT1(ATI_fragment_shader, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(8); break; case GL_NUM_PASSES_ATI: CHECK_EXT1(ATI_fragment_shader, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(2); break; case GL_NUM_INSTRUCTIONS_PER_PASS_ATI: CHECK_EXT1(ATI_fragment_shader, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(8); break; case GL_NUM_INSTRUCTIONS_TOTAL_ATI: CHECK_EXT1(ATI_fragment_shader, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(16); break; case GL_COLOR_ALPHA_PAIRING_ATI: CHECK_EXT1(ATI_fragment_shader, "GetBooleanv"); params[0] = GL_TRUE; break; case GL_NUM_LOOPBACK_COMPONENTS_ATI: CHECK_EXT1(ATI_fragment_shader, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(3); break; case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI: CHECK_EXT1(ATI_fragment_shader, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(3); break; case GL_STENCIL_BACK_FUNC: params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.Function[1]); break; case GL_STENCIL_BACK_VALUE_MASK: params[0] = INT_TO_BOOLEAN(ctx->Stencil.ValueMask[1]); break; case GL_STENCIL_BACK_WRITEMASK: params[0] = INT_TO_BOOLEAN(ctx->Stencil.WriteMask[1]); break; case GL_STENCIL_BACK_REF: params[0] = INT_TO_BOOLEAN(ctx->Stencil.Ref[1]); break; case GL_STENCIL_BACK_FAIL: params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.FailFunc[1]); break; case GL_STENCIL_BACK_PASS_DEPTH_FAIL: params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.ZFailFunc[1]); break; case GL_STENCIL_BACK_PASS_DEPTH_PASS: params[0] = ENUM_TO_BOOLEAN(ctx->Stencil.ZPassFunc[1]); break; case GL_FRAMEBUFFER_BINDING_EXT: CHECK_EXT1(EXT_framebuffer_object, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Name); break; case GL_RENDERBUFFER_BINDING_EXT: CHECK_EXT1(EXT_framebuffer_object, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->CurrentRenderbuffer ? ctx->CurrentRenderbuffer->Name : 0); break; case GL_MAX_COLOR_ATTACHMENTS_EXT: CHECK_EXT1(EXT_framebuffer_object, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Const.MaxColorAttachments); break; case GL_MAX_RENDERBUFFER_SIZE_EXT: CHECK_EXT1(EXT_framebuffer_object, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Const.MaxRenderbufferSize); break; case GL_READ_FRAMEBUFFER_BINDING_EXT: CHECK_EXT1(EXT_framebuffer_blit, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->ReadBuffer->Name); break; case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB: CHECK_EXT1(ARB_fragment_shader, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Const.FragmentProgram.MaxUniformComponents); break; case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB: CHECK_EXT1(ARB_fragment_shader, "GetBooleanv"); params[0] = ENUM_TO_BOOLEAN(ctx->Hint.FragmentShaderDerivative); break; case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB: CHECK_EXT1(ARB_vertex_shader, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Const.VertexProgram.MaxUniformComponents); break; case GL_MAX_VARYING_FLOATS_ARB: CHECK_EXT1(ARB_vertex_shader, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Const.MaxVarying * 4); break; case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB: CHECK_EXT1(ARB_vertex_shader, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Const.MaxVertexTextureImageUnits); break; case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB: CHECK_EXT1(ARB_vertex_shader, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(MAX_COMBINED_TEXTURE_IMAGE_UNITS); break; case GL_CURRENT_PROGRAM: CHECK_EXT1(ARB_shader_objects, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Shader.CurrentProgram ? ctx->Shader.CurrentProgram->Name : 0); break; case GL_MAX_SAMPLES: CHECK_EXT1(ARB_framebuffer_object, "GetBooleanv"); params[0] = INT_TO_BOOLEAN(ctx->Const.MaxSamples); break; default: _mesa_error(ctx, GL_INVALID_ENUM, "glGetBooleanv(pname=0x%x)", pname); } } void GLAPIENTRY _mesa_GetFloatv( GLenum pname, GLfloat *params ) { GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END(ctx); if (!params) return; if (ctx->NewState) _mesa_update_state(ctx); if (ctx->Driver.GetFloatv && ctx->Driver.GetFloatv(ctx, pname, params)) return; switch (pname) { case GL_ACCUM_RED_BITS: params[0] = (GLfloat)(ctx->DrawBuffer->Visual.accumRedBits); break; case GL_ACCUM_GREEN_BITS: params[0] = (GLfloat)(ctx->DrawBuffer->Visual.accumGreenBits); break; case GL_ACCUM_BLUE_BITS: params[0] = (GLfloat)(ctx->DrawBuffer->Visual.accumBlueBits); break; case GL_ACCUM_ALPHA_BITS: params[0] = (GLfloat)(ctx->DrawBuffer->Visual.accumAlphaBits); break; case GL_ACCUM_CLEAR_VALUE: params[0] = ctx->Accum.ClearColor[0]; params[1] = ctx->Accum.ClearColor[1]; params[2] = ctx->Accum.ClearColor[2]; params[3] = ctx->Accum.ClearColor[3]; break; case GL_ALPHA_BIAS: params[0] = ctx->Pixel.AlphaBias; break; case GL_ALPHA_BITS: params[0] = (GLfloat)(ctx->DrawBuffer->Visual.alphaBits); break; case GL_ALPHA_SCALE: params[0] = ctx->Pixel.AlphaScale; break; case GL_ALPHA_TEST: params[0] = BOOLEAN_TO_FLOAT(ctx->Color.AlphaEnabled); break; case GL_ALPHA_TEST_FUNC: params[0] = ENUM_TO_FLOAT(ctx->Color.AlphaFunc); break; case GL_ALPHA_TEST_REF: params[0] = ctx->Color.AlphaRef; break; case GL_ATTRIB_STACK_DEPTH: params[0] = (GLfloat)(ctx->AttribStackDepth); break; case GL_AUTO_NORMAL: params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.AutoNormal); break; case GL_AUX_BUFFERS: params[0] = (GLfloat)(ctx->DrawBuffer->Visual.numAuxBuffers); break; case GL_BLEND: params[0] = BOOLEAN_TO_FLOAT(ctx->Color.BlendEnabled); break; case GL_BLEND_DST: params[0] = ENUM_TO_FLOAT(ctx->Color.BlendDstRGB); break; case GL_BLEND_SRC: params[0] = ENUM_TO_FLOAT(ctx->Color.BlendSrcRGB); break; case GL_BLEND_SRC_RGB_EXT: params[0] = ENUM_TO_FLOAT(ctx->Color.BlendSrcRGB); break; case GL_BLEND_DST_RGB_EXT: params[0] = ENUM_TO_FLOAT(ctx->Color.BlendDstRGB); break; case GL_BLEND_SRC_ALPHA_EXT: params[0] = ENUM_TO_FLOAT(ctx->Color.BlendSrcA); break; case GL_BLEND_DST_ALPHA_EXT: params[0] = ENUM_TO_FLOAT(ctx->Color.BlendDstA); break; case GL_BLEND_EQUATION: params[0] = ENUM_TO_FLOAT(ctx->Color.BlendEquationRGB ); break; case GL_BLEND_EQUATION_ALPHA_EXT: params[0] = ENUM_TO_FLOAT(ctx->Color.BlendEquationA ); break; case GL_BLEND_COLOR_EXT: params[0] = ctx->Color.BlendColor[0]; params[1] = ctx->Color.BlendColor[1]; params[2] = ctx->Color.BlendColor[2]; params[3] = ctx->Color.BlendColor[3]; break; case GL_BLUE_BIAS: params[0] = ctx->Pixel.BlueBias; break; case GL_BLUE_BITS: params[0] = (GLfloat)(ctx->DrawBuffer->Visual.blueBits); break; case GL_BLUE_SCALE: params[0] = ctx->Pixel.BlueScale; break; case GL_CLIENT_ATTRIB_STACK_DEPTH: params[0] = (GLfloat)(ctx->ClientAttribStackDepth); break; case GL_CLIP_PLANE0: params[0] = BOOLEAN_TO_FLOAT((ctx->Transform.ClipPlanesEnabled >> 0) & 1); break; case GL_CLIP_PLANE1: params[0] = BOOLEAN_TO_FLOAT((ctx->Transform.ClipPlanesEnabled >> 1) & 1); break; case GL_CLIP_PLANE2: params[0] = BOOLEAN_TO_FLOAT((ctx->Transform.ClipPlanesEnabled >> 2) & 1); break; case GL_CLIP_PLANE3: params[0] = BOOLEAN_TO_FLOAT((ctx->Transform.ClipPlanesEnabled >> 3) & 1); break; case GL_CLIP_PLANE4: params[0] = BOOLEAN_TO_FLOAT((ctx->Transform.ClipPlanesEnabled >> 4) & 1); break; case GL_CLIP_PLANE5: params[0] = BOOLEAN_TO_FLOAT((ctx->Transform.ClipPlanesEnabled >> 5) & 1); break; case GL_COLOR_CLEAR_VALUE: params[0] = ctx->Color.ClearColor[0]; params[1] = ctx->Color.ClearColor[1]; params[2] = ctx->Color.ClearColor[2]; params[3] = ctx->Color.ClearColor[3]; break; case GL_COLOR_MATERIAL: params[0] = BOOLEAN_TO_FLOAT(ctx->Light.ColorMaterialEnabled); break; case GL_COLOR_MATERIAL_FACE: params[0] = ENUM_TO_FLOAT(ctx->Light.ColorMaterialFace); break; case GL_COLOR_MATERIAL_PARAMETER: params[0] = ENUM_TO_FLOAT(ctx->Light.ColorMaterialMode); break; case GL_COLOR_WRITEMASK: params[0] = (GLfloat)(ctx->Color.ColorMask[RCOMP] ? 1 : 0); params[1] = (GLfloat)(ctx->Color.ColorMask[GCOMP] ? 1 : 0); params[2] = (GLfloat)(ctx->Color.ColorMask[BCOMP] ? 1 : 0); params[3] = (GLfloat)(ctx->Color.ColorMask[ACOMP] ? 1 : 0); break; case GL_CULL_FACE: params[0] = BOOLEAN_TO_FLOAT(ctx->Polygon.CullFlag); break; case GL_CULL_FACE_MODE: params[0] = ENUM_TO_FLOAT(ctx->Polygon.CullFaceMode); break; case GL_CURRENT_COLOR: { FLUSH_CURRENT(ctx, 0); params[0] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0]; params[1] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1]; params[2] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2]; params[3] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3]; } break; case GL_CURRENT_INDEX: { FLUSH_CURRENT(ctx, 0); params[0] = ctx->Current.Attrib[VERT_ATTRIB_COLOR_INDEX][0]; } break; case GL_CURRENT_NORMAL: { FLUSH_CURRENT(ctx, 0); params[0] = ctx->Current.Attrib[VERT_ATTRIB_NORMAL][0]; params[1] = ctx->Current.Attrib[VERT_ATTRIB_NORMAL][1]; params[2] = ctx->Current.Attrib[VERT_ATTRIB_NORMAL][2]; } break; case GL_CURRENT_RASTER_COLOR: params[0] = ctx->Current.RasterColor[0]; params[1] = ctx->Current.RasterColor[1]; params[2] = ctx->Current.RasterColor[2]; params[3] = ctx->Current.RasterColor[3]; break; case GL_CURRENT_RASTER_DISTANCE: params[0] = ctx->Current.RasterDistance; break; case GL_CURRENT_RASTER_INDEX: params[0] = ctx->Current.RasterIndex; break; case GL_CURRENT_RASTER_POSITION: params[0] = ctx->Current.RasterPos[0]; params[1] = ctx->Current.RasterPos[1]; params[2] = ctx->Current.RasterPos[2]; params[3] = ctx->Current.RasterPos[3]; break; case GL_CURRENT_RASTER_SECONDARY_COLOR: params[0] = ctx->Current.RasterSecondaryColor[0]; params[1] = ctx->Current.RasterSecondaryColor[1]; params[2] = ctx->Current.RasterSecondaryColor[2]; params[3] = ctx->Current.RasterSecondaryColor[3]; break; case GL_CURRENT_RASTER_TEXTURE_COORDS: { const GLuint texUnit = ctx->Texture.CurrentUnit; params[0] = ctx->Current.RasterTexCoords[texUnit][0]; params[1] = ctx->Current.RasterTexCoords[texUnit][1]; params[2] = ctx->Current.RasterTexCoords[texUnit][2]; params[3] = ctx->Current.RasterTexCoords[texUnit][3]; } break; case GL_CURRENT_RASTER_POSITION_VALID: params[0] = BOOLEAN_TO_FLOAT(ctx->Current.RasterPosValid); break; case GL_CURRENT_TEXTURE_COORDS: { const GLuint texUnit = ctx->Texture.CurrentUnit; params[0] = ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][0]; params[1] = ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][1]; params[2] = ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][2]; params[3] = ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][3]; } break; case GL_DEPTH_BIAS: params[0] = ctx->Pixel.DepthBias; break; case GL_DEPTH_BITS: params[0] = (GLfloat)(ctx->DrawBuffer->Visual.depthBits); break; case GL_DEPTH_CLEAR_VALUE: params[0] = ((GLfloat) ctx->Depth.Clear); break; case GL_DEPTH_FUNC: params[0] = ENUM_TO_FLOAT(ctx->Depth.Func); break; case GL_DEPTH_RANGE: params[0] = ctx->Viewport.Near; params[1] = ctx->Viewport.Far; break; case GL_DEPTH_SCALE: params[0] = ctx->Pixel.DepthScale; break; case GL_DEPTH_TEST: params[0] = BOOLEAN_TO_FLOAT(ctx->Depth.Test); break; case GL_DEPTH_WRITEMASK: params[0] = BOOLEAN_TO_FLOAT(ctx->Depth.Mask); break; case GL_DITHER: params[0] = BOOLEAN_TO_FLOAT(ctx->Color.DitherFlag); break; case GL_DOUBLEBUFFER: params[0] = BOOLEAN_TO_FLOAT(ctx->DrawBuffer->Visual.doubleBufferMode); break; case GL_DRAW_BUFFER: params[0] = ENUM_TO_FLOAT(ctx->DrawBuffer->ColorDrawBuffer[0]); break; case GL_EDGE_FLAG: { FLUSH_CURRENT(ctx, 0); params[0] = BOOLEAN_TO_FLOAT((ctx->Current.Attrib[VERT_ATTRIB_EDGEFLAG][0] == 1.0)); } break; case GL_FEEDBACK_BUFFER_SIZE: params[0] = (GLfloat)(ctx->Feedback.BufferSize); break; case GL_FEEDBACK_BUFFER_TYPE: params[0] = ENUM_TO_FLOAT(ctx->Feedback.Type); break; case GL_FOG: params[0] = BOOLEAN_TO_FLOAT(ctx->Fog.Enabled); break; case GL_FOG_COLOR: params[0] = ctx->Fog.Color[0]; params[1] = ctx->Fog.Color[1]; params[2] = ctx->Fog.Color[2]; params[3] = ctx->Fog.Color[3]; break; case GL_FOG_DENSITY: params[0] = ctx->Fog.Density; break; case GL_FOG_END: params[0] = ctx->Fog.End; break; case GL_FOG_HINT: params[0] = ENUM_TO_FLOAT(ctx->Hint.Fog); break; case GL_FOG_INDEX: params[0] = ctx->Fog.Index; break; case GL_FOG_MODE: params[0] = ENUM_TO_FLOAT(ctx->Fog.Mode); break; case GL_FOG_START: params[0] = ctx->Fog.Start; break; case GL_FRONT_FACE: params[0] = ENUM_TO_FLOAT(ctx->Polygon.FrontFace); break; case GL_GREEN_BIAS: params[0] = ctx->Pixel.GreenBias; break; case GL_GREEN_BITS: params[0] = (GLfloat)(ctx->DrawBuffer->Visual.greenBits); break; case GL_GREEN_SCALE: params[0] = ctx->Pixel.GreenScale; break; case GL_INDEX_BITS: params[0] = (GLfloat)(ctx->DrawBuffer->Visual.indexBits); break; case GL_INDEX_CLEAR_VALUE: params[0] = (GLfloat)(ctx->Color.ClearIndex); break; case GL_INDEX_MODE: params[0] = BOOLEAN_TO_FLOAT(!ctx->DrawBuffer->Visual.rgbMode); break; case GL_INDEX_OFFSET: params[0] = (GLfloat)(ctx->Pixel.IndexOffset); break; case GL_INDEX_SHIFT: params[0] = (GLfloat)(ctx->Pixel.IndexShift); break; case GL_INDEX_WRITEMASK: params[0] = (GLfloat)(ctx->Color.IndexMask); break; case GL_LIGHT0: params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Light[0].Enabled); break; case GL_LIGHT1: params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Light[1].Enabled); break; case GL_LIGHT2: params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Light[2].Enabled); break; case GL_LIGHT3: params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Light[3].Enabled); break; case GL_LIGHT4: params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Light[4].Enabled); break; case GL_LIGHT5: params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Light[5].Enabled); break; case GL_LIGHT6: params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Light[6].Enabled); break; case GL_LIGHT7: params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Light[7].Enabled); break; case GL_LIGHTING: params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Enabled); break; case GL_LIGHT_MODEL_AMBIENT: params[0] = ctx->Light.Model.Ambient[0]; params[1] = ctx->Light.Model.Ambient[1]; params[2] = ctx->Light.Model.Ambient[2]; params[3] = ctx->Light.Model.Ambient[3]; break; case GL_LIGHT_MODEL_COLOR_CONTROL: params[0] = ENUM_TO_FLOAT(ctx->Light.Model.ColorControl); break; case GL_LIGHT_MODEL_LOCAL_VIEWER: params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Model.LocalViewer); break; case GL_LIGHT_MODEL_TWO_SIDE: params[0] = BOOLEAN_TO_FLOAT(ctx->Light.Model.TwoSide); break; case GL_LINE_SMOOTH: params[0] = BOOLEAN_TO_FLOAT(ctx->Line.SmoothFlag); break; case GL_LINE_SMOOTH_HINT: params[0] = ENUM_TO_FLOAT(ctx->Hint.LineSmooth); break; case GL_LINE_STIPPLE: params[0] = BOOLEAN_TO_FLOAT(ctx->Line.StippleFlag); break; case GL_LINE_STIPPLE_PATTERN: params[0] = (GLfloat)(ctx->Line.StipplePattern); break; case GL_LINE_STIPPLE_REPEAT: params[0] = (GLfloat)(ctx->Line.StippleFactor); break; case GL_LINE_WIDTH: params[0] = ctx->Line.Width; break; case GL_LINE_WIDTH_GRANULARITY: params[0] = ctx->Const.LineWidthGranularity; break; case GL_LINE_WIDTH_RANGE: params[0] = ctx->Const.MinLineWidthAA; params[1] = ctx->Const.MaxLineWidthAA; break; case GL_ALIASED_LINE_WIDTH_RANGE: params[0] = ctx->Const.MinLineWidth; params[1] = ctx->Const.MaxLineWidth; break; case GL_LIST_BASE: params[0] = (GLfloat)(ctx->List.ListBase); break; case GL_LIST_INDEX: params[0] = (GLfloat)(ctx->ListState.CurrentListNum); break; case GL_LIST_MODE: { GLenum mode; if (!ctx->CompileFlag) mode = 0; else if (ctx->ExecuteFlag) mode = GL_COMPILE_AND_EXECUTE; else mode = GL_COMPILE; params[0] = ENUM_TO_FLOAT(mode); } break; case GL_INDEX_LOGIC_OP: params[0] = BOOLEAN_TO_FLOAT(ctx->Color.IndexLogicOpEnabled); break; case GL_COLOR_LOGIC_OP: params[0] = BOOLEAN_TO_FLOAT(ctx->Color.ColorLogicOpEnabled); break; case GL_LOGIC_OP_MODE: params[0] = ENUM_TO_FLOAT(ctx->Color.LogicOp); break; case GL_MAP1_COLOR_4: params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Color4); break; case GL_MAP1_GRID_DOMAIN: params[0] = ctx->Eval.MapGrid1u1; params[1] = ctx->Eval.MapGrid1u2; break; case GL_MAP1_GRID_SEGMENTS: params[0] = (GLfloat)(ctx->Eval.MapGrid1un); break; case GL_MAP1_INDEX: params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Index); break; case GL_MAP1_NORMAL: params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Normal); break; case GL_MAP1_TEXTURE_COORD_1: params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1TextureCoord1); break; case GL_MAP1_TEXTURE_COORD_2: params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1TextureCoord2); break; case GL_MAP1_TEXTURE_COORD_3: params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1TextureCoord3); break; case GL_MAP1_TEXTURE_COORD_4: params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1TextureCoord4); break; case GL_MAP1_VERTEX_3: params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Vertex3); break; case GL_MAP1_VERTEX_4: params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Vertex4); break; case GL_MAP2_COLOR_4: params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2Color4); break; case GL_MAP2_GRID_DOMAIN: params[0] = ctx->Eval.MapGrid2u1; params[1] = ctx->Eval.MapGrid2u2; params[2] = ctx->Eval.MapGrid2v1; params[3] = ctx->Eval.MapGrid2v2; break; case GL_MAP2_GRID_SEGMENTS: params[0] = (GLfloat)(ctx->Eval.MapGrid2un); params[1] = (GLfloat)(ctx->Eval.MapGrid2vn); break; case GL_MAP2_INDEX: params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2Index); break; case GL_MAP2_NORMAL: params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2Normal); break; case GL_MAP2_TEXTURE_COORD_1: params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2TextureCoord1); break; case GL_MAP2_TEXTURE_COORD_2: params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2TextureCoord2); break; case GL_MAP2_TEXTURE_COORD_3: params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2TextureCoord3); break; case GL_MAP2_TEXTURE_COORD_4: params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2TextureCoord4); break; case GL_MAP2_VERTEX_3: params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2Vertex3); break; case GL_MAP2_VERTEX_4: params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map2Vertex4); break; case GL_MAP_COLOR: params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.MapColorFlag); break; case GL_MAP_STENCIL: params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.MapStencilFlag); break; case GL_MATRIX_MODE: params[0] = ENUM_TO_FLOAT(ctx->Transform.MatrixMode); break; case GL_MAX_ATTRIB_STACK_DEPTH: params[0] = (GLfloat)(MAX_ATTRIB_STACK_DEPTH); break; case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH: params[0] = (GLfloat)(MAX_CLIENT_ATTRIB_STACK_DEPTH); break; case GL_MAX_CLIP_PLANES: params[0] = (GLfloat)(ctx->Const.MaxClipPlanes); break; case GL_MAX_ELEMENTS_VERTICES: params[0] = (GLfloat)(ctx->Const.MaxArrayLockSize); break; case GL_MAX_ELEMENTS_INDICES: params[0] = (GLfloat)(ctx->Const.MaxArrayLockSize); break; case GL_MAX_EVAL_ORDER: params[0] = (GLfloat)(MAX_EVAL_ORDER); break; case GL_MAX_LIGHTS: params[0] = (GLfloat)(ctx->Const.MaxLights); break; case GL_MAX_LIST_NESTING: params[0] = (GLfloat)(MAX_LIST_NESTING); break; case GL_MAX_MODELVIEW_STACK_DEPTH: params[0] = (GLfloat)(MAX_MODELVIEW_STACK_DEPTH); break; case GL_MAX_NAME_STACK_DEPTH: params[0] = (GLfloat)(MAX_NAME_STACK_DEPTH); break; case GL_MAX_PIXEL_MAP_TABLE: params[0] = (GLfloat)(MAX_PIXEL_MAP_TABLE); break; case GL_MAX_PROJECTION_STACK_DEPTH: params[0] = (GLfloat)(MAX_PROJECTION_STACK_DEPTH); break; case GL_MAX_TEXTURE_SIZE: params[0] = (GLfloat)(1 << (ctx->Const.MaxTextureLevels - 1)); break; case GL_MAX_3D_TEXTURE_SIZE: params[0] = (GLfloat)(1 << (ctx->Const.Max3DTextureLevels - 1)); break; case GL_MAX_TEXTURE_STACK_DEPTH: params[0] = (GLfloat)(MAX_TEXTURE_STACK_DEPTH); break; case GL_MAX_VIEWPORT_DIMS: params[0] = (GLfloat)(ctx->Const.MaxViewportWidth); params[1] = (GLfloat)(ctx->Const.MaxViewportHeight); break; case GL_MODELVIEW_MATRIX: { const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m; params[0] = matrix[0]; params[1] = matrix[1]; params[2] = matrix[2]; params[3] = matrix[3]; params[4] = matrix[4]; params[5] = matrix[5]; params[6] = matrix[6]; params[7] = matrix[7]; params[8] = matrix[8]; params[9] = matrix[9]; params[10] = matrix[10]; params[11] = matrix[11]; params[12] = matrix[12]; params[13] = matrix[13]; params[14] = matrix[14]; params[15] = matrix[15]; } break; case GL_MODELVIEW_STACK_DEPTH: params[0] = (GLfloat)(ctx->ModelviewMatrixStack.Depth + 1); break; case GL_NAME_STACK_DEPTH: params[0] = (GLfloat)(ctx->Select.NameStackDepth); break; case GL_NORMALIZE: params[0] = BOOLEAN_TO_FLOAT(ctx->Transform.Normalize); break; case GL_PACK_ALIGNMENT: params[0] = (GLfloat)(ctx->Pack.Alignment); break; case GL_PACK_LSB_FIRST: params[0] = BOOLEAN_TO_FLOAT(ctx->Pack.LsbFirst); break; case GL_PACK_ROW_LENGTH: params[0] = (GLfloat)(ctx->Pack.RowLength); break; case GL_PACK_SKIP_PIXELS: params[0] = (GLfloat)(ctx->Pack.SkipPixels); break; case GL_PACK_SKIP_ROWS: params[0] = (GLfloat)(ctx->Pack.SkipRows); break; case GL_PACK_SWAP_BYTES: params[0] = BOOLEAN_TO_FLOAT(ctx->Pack.SwapBytes); break; case GL_PACK_SKIP_IMAGES_EXT: params[0] = (GLfloat)(ctx->Pack.SkipImages); break; case GL_PACK_IMAGE_HEIGHT_EXT: params[0] = (GLfloat)(ctx->Pack.ImageHeight); break; case GL_PACK_INVERT_MESA: params[0] = BOOLEAN_TO_FLOAT(ctx->Pack.Invert); break; case GL_PERSPECTIVE_CORRECTION_HINT: params[0] = ENUM_TO_FLOAT(ctx->Hint.PerspectiveCorrection); break; case GL_PIXEL_MAP_A_TO_A_SIZE: params[0] = (GLfloat)(ctx->PixelMaps.AtoA.Size); break; case GL_PIXEL_MAP_B_TO_B_SIZE: params[0] = (GLfloat)(ctx->PixelMaps.BtoB.Size); break; case GL_PIXEL_MAP_G_TO_G_SIZE: params[0] = (GLfloat)(ctx->PixelMaps.GtoG.Size); break; case GL_PIXEL_MAP_I_TO_A_SIZE: params[0] = (GLfloat)(ctx->PixelMaps.ItoA.Size); break; case GL_PIXEL_MAP_I_TO_B_SIZE: params[0] = (GLfloat)(ctx->PixelMaps.ItoB.Size); break; case GL_PIXEL_MAP_I_TO_G_SIZE: params[0] = (GLfloat)(ctx->PixelMaps.ItoG.Size); break; case GL_PIXEL_MAP_I_TO_I_SIZE: params[0] = (GLfloat)(ctx->PixelMaps.ItoI.Size); break; case GL_PIXEL_MAP_I_TO_R_SIZE: params[0] = (GLfloat)(ctx->PixelMaps.ItoR.Size); break; case GL_PIXEL_MAP_R_TO_R_SIZE: params[0] = (GLfloat)(ctx->PixelMaps.RtoR.Size); break; case GL_PIXEL_MAP_S_TO_S_SIZE: params[0] = (GLfloat)(ctx->PixelMaps.StoS.Size); break; case GL_POINT_SIZE: params[0] = ctx->Point.Size; break; case GL_POINT_SIZE_GRANULARITY: params[0] = ctx->Const.PointSizeGranularity; break; case GL_POINT_SIZE_RANGE: params[0] = ctx->Const.MinPointSizeAA; params[1] = ctx->Const.MaxPointSizeAA; break; case GL_ALIASED_POINT_SIZE_RANGE: params[0] = ctx->Const.MinPointSize; params[1] = ctx->Const.MaxPointSize; break; case GL_POINT_SMOOTH: params[0] = BOOLEAN_TO_FLOAT(ctx->Point.SmoothFlag); break; case GL_POINT_SMOOTH_HINT: params[0] = ENUM_TO_FLOAT(ctx->Hint.PointSmooth); break; case GL_POINT_SIZE_MIN_EXT: params[0] = ctx->Point.MinSize; break; case GL_POINT_SIZE_MAX_EXT: params[0] = ctx->Point.MaxSize; break; case GL_POINT_FADE_THRESHOLD_SIZE_EXT: params[0] = ctx->Point.Threshold; break; case GL_DISTANCE_ATTENUATION_EXT: params[0] = ctx->Point.Params[0]; params[1] = ctx->Point.Params[1]; params[2] = ctx->Point.Params[2]; break; case GL_POLYGON_MODE: params[0] = ENUM_TO_FLOAT(ctx->Polygon.FrontMode); params[1] = ENUM_TO_FLOAT(ctx->Polygon.BackMode); break; case GL_POLYGON_OFFSET_BIAS_EXT: params[0] = ctx->Polygon.OffsetUnits; break; case GL_POLYGON_OFFSET_FACTOR: params[0] = ctx->Polygon.OffsetFactor ; break; case GL_POLYGON_OFFSET_UNITS: params[0] = ctx->Polygon.OffsetUnits ; break; case GL_POLYGON_OFFSET_POINT: params[0] = BOOLEAN_TO_FLOAT(ctx->Polygon.OffsetPoint); break; case GL_POLYGON_OFFSET_LINE: params[0] = BOOLEAN_TO_FLOAT(ctx->Polygon.OffsetLine); break; case GL_POLYGON_OFFSET_FILL: params[0] = BOOLEAN_TO_FLOAT(ctx->Polygon.OffsetFill); break; case GL_POLYGON_SMOOTH: params[0] = BOOLEAN_TO_FLOAT(ctx->Polygon.SmoothFlag); break; case GL_POLYGON_SMOOTH_HINT: params[0] = ENUM_TO_FLOAT(ctx->Hint.PolygonSmooth); break; case GL_POLYGON_STIPPLE: params[0] = BOOLEAN_TO_FLOAT(ctx->Polygon.StippleFlag); break; case GL_PROJECTION_MATRIX: { const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m; params[0] = matrix[0]; params[1] = matrix[1]; params[2] = matrix[2]; params[3] = matrix[3]; params[4] = matrix[4]; params[5] = matrix[5]; params[6] = matrix[6]; params[7] = matrix[7]; params[8] = matrix[8]; params[9] = matrix[9]; params[10] = matrix[10]; params[11] = matrix[11]; params[12] = matrix[12]; params[13] = matrix[13]; params[14] = matrix[14]; params[15] = matrix[15]; } break; case GL_PROJECTION_STACK_DEPTH: params[0] = (GLfloat)(ctx->ProjectionMatrixStack.Depth + 1); break; case GL_READ_BUFFER: params[0] = ENUM_TO_FLOAT(ctx->ReadBuffer->ColorReadBuffer); break; case GL_RED_BIAS: params[0] = ctx->Pixel.RedBias; break; case GL_RED_BITS: params[0] = (GLfloat)(ctx->DrawBuffer->Visual.redBits); break; case GL_RED_SCALE: params[0] = ctx->Pixel.RedScale; break; case GL_RENDER_MODE: params[0] = ENUM_TO_FLOAT(ctx->RenderMode); break; case GL_RESCALE_NORMAL: params[0] = BOOLEAN_TO_FLOAT(ctx->Transform.RescaleNormals); break; case GL_RGBA_MODE: params[0] = BOOLEAN_TO_FLOAT(ctx->DrawBuffer->Visual.rgbMode); break; case GL_SCISSOR_BOX: params[0] = (GLfloat)(ctx->Scissor.X); params[1] = (GLfloat)(ctx->Scissor.Y); params[2] = (GLfloat)(ctx->Scissor.Width); params[3] = (GLfloat)(ctx->Scissor.Height); break; case GL_SCISSOR_TEST: params[0] = BOOLEAN_TO_FLOAT(ctx->Scissor.Enabled); break; case GL_SELECTION_BUFFER_SIZE: params[0] = (GLfloat)(ctx->Select.BufferSize); break; case GL_SHADE_MODEL: params[0] = ENUM_TO_FLOAT(ctx->Light.ShadeModel); break; case GL_SHARED_TEXTURE_PALETTE_EXT: params[0] = BOOLEAN_TO_FLOAT(ctx->Texture.SharedPalette); break; case GL_STENCIL_BITS: params[0] = (GLfloat)(ctx->DrawBuffer->Visual.stencilBits); break; case GL_STENCIL_CLEAR_VALUE: params[0] = (GLfloat)(ctx->Stencil.Clear); break; case GL_STENCIL_FAIL: params[0] = ENUM_TO_FLOAT(ctx->Stencil.FailFunc[ctx->Stencil.ActiveFace]); break; case GL_STENCIL_FUNC: params[0] = ENUM_TO_FLOAT(ctx->Stencil.Function[ctx->Stencil.ActiveFace]); break; case GL_STENCIL_PASS_DEPTH_FAIL: params[0] = ENUM_TO_FLOAT(ctx->Stencil.ZFailFunc[ctx->Stencil.ActiveFace]); break; case GL_STENCIL_PASS_DEPTH_PASS: params[0] = ENUM_TO_FLOAT(ctx->Stencil.ZPassFunc[ctx->Stencil.ActiveFace]); break; case GL_STENCIL_REF: params[0] = (GLfloat)(ctx->Stencil.Ref[ctx->Stencil.ActiveFace]); break; case GL_STENCIL_TEST: params[0] = BOOLEAN_TO_FLOAT(ctx->Stencil.Enabled); break; case GL_STENCIL_VALUE_MASK: params[0] = (GLfloat)(ctx->Stencil.ValueMask[ctx->Stencil.ActiveFace]); break; case GL_STENCIL_WRITEMASK: params[0] = (GLfloat)(ctx->Stencil.WriteMask[ctx->Stencil.ActiveFace]); break; case GL_STEREO: params[0] = BOOLEAN_TO_FLOAT(ctx->DrawBuffer->Visual.stereoMode); break; case GL_SUBPIXEL_BITS: params[0] = (GLfloat)(ctx->Const.SubPixelBits); break; case GL_TEXTURE_1D: params[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D)); break; case GL_TEXTURE_2D: params[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D)); break; case GL_TEXTURE_3D: params[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_3D)); break; case GL_TEXTURE_1D_ARRAY_EXT: CHECK_EXT1(MESA_texture_array, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT)); break; case GL_TEXTURE_2D_ARRAY_EXT: CHECK_EXT1(MESA_texture_array, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT)); break; case GL_TEXTURE_BINDING_1D: params[0] = (GLfloat)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current1D->Name); break; case GL_TEXTURE_BINDING_2D: params[0] = (GLfloat)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current2D->Name); break; case GL_TEXTURE_BINDING_3D: params[0] = (GLfloat)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current3D->Name); break; case GL_TEXTURE_BINDING_1D_ARRAY_EXT: CHECK_EXT1(MESA_texture_array, "GetFloatv"); params[0] = (GLfloat)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current1DArray->Name); break; case GL_TEXTURE_BINDING_2D_ARRAY_EXT: CHECK_EXT1(MESA_texture_array, "GetFloatv"); params[0] = (GLfloat)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current2DArray->Name); break; case GL_TEXTURE_GEN_S: params[0] = BOOLEAN_TO_FLOAT(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & S_BIT) ? 1 : 0)); break; case GL_TEXTURE_GEN_T: params[0] = BOOLEAN_TO_FLOAT(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & T_BIT) ? 1 : 0)); break; case GL_TEXTURE_GEN_R: params[0] = BOOLEAN_TO_FLOAT(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & R_BIT) ? 1 : 0)); break; case GL_TEXTURE_GEN_Q: params[0] = BOOLEAN_TO_FLOAT(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & Q_BIT) ? 1 : 0)); break; case GL_TEXTURE_MATRIX: { const GLfloat *matrix = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m; params[0] = matrix[0]; params[1] = matrix[1]; params[2] = matrix[2]; params[3] = matrix[3]; params[4] = matrix[4]; params[5] = matrix[5]; params[6] = matrix[6]; params[7] = matrix[7]; params[8] = matrix[8]; params[9] = matrix[9]; params[10] = matrix[10]; params[11] = matrix[11]; params[12] = matrix[12]; params[13] = matrix[13]; params[14] = matrix[14]; params[15] = matrix[15]; } break; case GL_TEXTURE_STACK_DEPTH: params[0] = (GLfloat)(ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Depth + 1); break; case GL_UNPACK_ALIGNMENT: params[0] = (GLfloat)(ctx->Unpack.Alignment); break; case GL_UNPACK_LSB_FIRST: params[0] = BOOLEAN_TO_FLOAT(ctx->Unpack.LsbFirst); break; case GL_UNPACK_ROW_LENGTH: params[0] = (GLfloat)(ctx->Unpack.RowLength); break; case GL_UNPACK_SKIP_PIXELS: params[0] = (GLfloat)(ctx->Unpack.SkipPixels); break; case GL_UNPACK_SKIP_ROWS: params[0] = (GLfloat)(ctx->Unpack.SkipRows); break; case GL_UNPACK_SWAP_BYTES: params[0] = BOOLEAN_TO_FLOAT(ctx->Unpack.SwapBytes); break; case GL_UNPACK_SKIP_IMAGES_EXT: params[0] = (GLfloat)(ctx->Unpack.SkipImages); break; case GL_UNPACK_IMAGE_HEIGHT_EXT: params[0] = (GLfloat)(ctx->Unpack.ImageHeight); break; case GL_UNPACK_CLIENT_STORAGE_APPLE: params[0] = BOOLEAN_TO_FLOAT(ctx->Unpack.ClientStorage); break; case GL_VIEWPORT: params[0] = (GLfloat)(ctx->Viewport.X); params[1] = (GLfloat)(ctx->Viewport.Y); params[2] = (GLfloat)(ctx->Viewport.Width); params[3] = (GLfloat)(ctx->Viewport.Height); break; case GL_ZOOM_X: params[0] = ctx->Pixel.ZoomX; break; case GL_ZOOM_Y: params[0] = ctx->Pixel.ZoomY; break; case GL_VERTEX_ARRAY: params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->Vertex.Enabled); break; case GL_VERTEX_ARRAY_SIZE: params[0] = (GLfloat)(ctx->Array.ArrayObj->Vertex.Size); break; case GL_VERTEX_ARRAY_TYPE: params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->Vertex.Type); break; case GL_VERTEX_ARRAY_STRIDE: params[0] = (GLfloat)(ctx->Array.ArrayObj->Vertex.Stride); break; case GL_VERTEX_ARRAY_COUNT_EXT: params[0] = (GLfloat)(0); break; case GL_NORMAL_ARRAY: params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->Normal.Enabled); break; case GL_NORMAL_ARRAY_TYPE: params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->Normal.Type); break; case GL_NORMAL_ARRAY_STRIDE: params[0] = (GLfloat)(ctx->Array.ArrayObj->Normal.Stride); break; case GL_NORMAL_ARRAY_COUNT_EXT: params[0] = (GLfloat)(0); break; case GL_COLOR_ARRAY: params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->Color.Enabled); break; case GL_COLOR_ARRAY_SIZE: params[0] = (GLfloat)(ctx->Array.ArrayObj->Color.Size); break; case GL_COLOR_ARRAY_TYPE: params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->Color.Type); break; case GL_COLOR_ARRAY_STRIDE: params[0] = (GLfloat)(ctx->Array.ArrayObj->Color.Stride); break; case GL_COLOR_ARRAY_COUNT_EXT: params[0] = (GLfloat)(0); break; case GL_INDEX_ARRAY: params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->Index.Enabled); break; case GL_INDEX_ARRAY_TYPE: params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->Index.Type); break; case GL_INDEX_ARRAY_STRIDE: params[0] = (GLfloat)(ctx->Array.ArrayObj->Index.Stride); break; case GL_INDEX_ARRAY_COUNT_EXT: params[0] = (GLfloat)(0); break; case GL_TEXTURE_COORD_ARRAY: params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Enabled); break; case GL_TEXTURE_COORD_ARRAY_SIZE: params[0] = (GLfloat)(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Size); break; case GL_TEXTURE_COORD_ARRAY_TYPE: params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Type); break; case GL_TEXTURE_COORD_ARRAY_STRIDE: params[0] = (GLfloat)(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Stride); break; case GL_TEXTURE_COORD_ARRAY_COUNT_EXT: params[0] = (GLfloat)(0); break; case GL_EDGE_FLAG_ARRAY: params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->EdgeFlag.Enabled); break; case GL_EDGE_FLAG_ARRAY_STRIDE: params[0] = (GLfloat)(ctx->Array.ArrayObj->EdgeFlag.Stride); break; case GL_EDGE_FLAG_ARRAY_COUNT_EXT: params[0] = (GLfloat)(0); break; case GL_MAX_TEXTURE_UNITS_ARB: CHECK_EXT1(ARB_multitexture, "GetFloatv"); params[0] = (GLfloat)(ctx->Const.MaxTextureUnits); break; case GL_ACTIVE_TEXTURE_ARB: CHECK_EXT1(ARB_multitexture, "GetFloatv"); params[0] = (GLfloat)(GL_TEXTURE0_ARB + ctx->Texture.CurrentUnit); break; case GL_CLIENT_ACTIVE_TEXTURE_ARB: CHECK_EXT1(ARB_multitexture, "GetFloatv"); params[0] = (GLfloat)(GL_TEXTURE0_ARB + ctx->Array.ActiveTexture); break; case GL_TEXTURE_CUBE_MAP_ARB: CHECK_EXT1(ARB_texture_cube_map, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB)); break; case GL_TEXTURE_BINDING_CUBE_MAP_ARB: CHECK_EXT1(ARB_texture_cube_map, "GetFloatv"); params[0] = (GLfloat)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentCubeMap->Name); break; case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB: CHECK_EXT1(ARB_texture_cube_map, "GetFloatv"); params[0] = (GLfloat)((1 << (ctx->Const.MaxCubeTextureLevels - 1))); break; case GL_TEXTURE_COMPRESSION_HINT_ARB: params[0] = (GLfloat)(ctx->Hint.TextureCompression); break; case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB: params[0] = (GLfloat)(_mesa_get_compressed_formats(ctx, NULL, GL_FALSE)); break; case GL_COMPRESSED_TEXTURE_FORMATS_ARB: { GLint formats[100]; GLuint i, n = _mesa_get_compressed_formats(ctx, formats, GL_FALSE); ASSERT(n <= 100); for (i = 0; i < n; i++) params[i] = ENUM_TO_FLOAT(formats[i]); } break; case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT: CHECK_EXT1(EXT_compiled_vertex_array, "GetFloatv"); params[0] = (GLfloat)(ctx->Array.LockFirst); break; case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT: CHECK_EXT1(EXT_compiled_vertex_array, "GetFloatv"); params[0] = (GLfloat)(ctx->Array.LockCount); break; case GL_TRANSPOSE_COLOR_MATRIX_ARB: { const GLfloat *matrix = ctx->ColorMatrixStack.Top->m; params[0] = matrix[0]; params[1] = matrix[4]; params[2] = matrix[8]; params[3] = matrix[12]; params[4] = matrix[1]; params[5] = matrix[5]; params[6] = matrix[9]; params[7] = matrix[13]; params[8] = matrix[2]; params[9] = matrix[6]; params[10] = matrix[10]; params[11] = matrix[14]; params[12] = matrix[3]; params[13] = matrix[7]; params[14] = matrix[11]; params[15] = matrix[15]; } break; case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB: { const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m; params[0] = matrix[0]; params[1] = matrix[4]; params[2] = matrix[8]; params[3] = matrix[12]; params[4] = matrix[1]; params[5] = matrix[5]; params[6] = matrix[9]; params[7] = matrix[13]; params[8] = matrix[2]; params[9] = matrix[6]; params[10] = matrix[10]; params[11] = matrix[14]; params[12] = matrix[3]; params[13] = matrix[7]; params[14] = matrix[11]; params[15] = matrix[15]; } break; case GL_TRANSPOSE_PROJECTION_MATRIX_ARB: { const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m; params[0] = matrix[0]; params[1] = matrix[4]; params[2] = matrix[8]; params[3] = matrix[12]; params[4] = matrix[1]; params[5] = matrix[5]; params[6] = matrix[9]; params[7] = matrix[13]; params[8] = matrix[2]; params[9] = matrix[6]; params[10] = matrix[10]; params[11] = matrix[14]; params[12] = matrix[3]; params[13] = matrix[7]; params[14] = matrix[11]; params[15] = matrix[15]; } break; case GL_TRANSPOSE_TEXTURE_MATRIX_ARB: { const GLfloat *matrix = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m; params[0] = matrix[0]; params[1] = matrix[4]; params[2] = matrix[8]; params[3] = matrix[12]; params[4] = matrix[1]; params[5] = matrix[5]; params[6] = matrix[9]; params[7] = matrix[13]; params[8] = matrix[2]; params[9] = matrix[6]; params[10] = matrix[10]; params[11] = matrix[14]; params[12] = matrix[3]; params[13] = matrix[7]; params[14] = matrix[11]; params[15] = matrix[15]; } break; case GL_COLOR_MATRIX_SGI: { const GLfloat *matrix = ctx->ColorMatrixStack.Top->m; params[0] = matrix[0]; params[1] = matrix[1]; params[2] = matrix[2]; params[3] = matrix[3]; params[4] = matrix[4]; params[5] = matrix[5]; params[6] = matrix[6]; params[7] = matrix[7]; params[8] = matrix[8]; params[9] = matrix[9]; params[10] = matrix[10]; params[11] = matrix[11]; params[12] = matrix[12]; params[13] = matrix[13]; params[14] = matrix[14]; params[15] = matrix[15]; } break; case GL_COLOR_MATRIX_STACK_DEPTH_SGI: params[0] = (GLfloat)(ctx->ColorMatrixStack.Depth + 1); break; case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI: params[0] = (GLfloat)(MAX_COLOR_STACK_DEPTH); break; case GL_POST_COLOR_MATRIX_RED_SCALE_SGI: params[0] = ctx->Pixel.PostColorMatrixScale[0]; break; case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI: params[0] = ctx->Pixel.PostColorMatrixScale[1]; break; case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI: params[0] = ctx->Pixel.PostColorMatrixScale[2]; break; case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI: params[0] = ctx->Pixel.PostColorMatrixScale[3]; break; case GL_POST_COLOR_MATRIX_RED_BIAS_SGI: params[0] = ctx->Pixel.PostColorMatrixBias[0]; break; case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI: params[0] = ctx->Pixel.PostColorMatrixBias[1]; break; case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI: params[0] = ctx->Pixel.PostColorMatrixBias[2]; break; case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI: params[0] = ctx->Pixel.PostColorMatrixBias[3]; break; case GL_CONVOLUTION_1D_EXT: CHECK_EXT1(EXT_convolution, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.Convolution1DEnabled); break; case GL_CONVOLUTION_2D_EXT: CHECK_EXT1(EXT_convolution, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.Convolution2DEnabled); break; case GL_SEPARABLE_2D_EXT: CHECK_EXT1(EXT_convolution, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.Separable2DEnabled); break; case GL_POST_CONVOLUTION_RED_SCALE_EXT: CHECK_EXT1(EXT_convolution, "GetFloatv"); params[0] = ctx->Pixel.PostConvolutionScale[0]; break; case GL_POST_CONVOLUTION_GREEN_SCALE_EXT: CHECK_EXT1(EXT_convolution, "GetFloatv"); params[0] = ctx->Pixel.PostConvolutionScale[1]; break; case GL_POST_CONVOLUTION_BLUE_SCALE_EXT: CHECK_EXT1(EXT_convolution, "GetFloatv"); params[0] = ctx->Pixel.PostConvolutionScale[2]; break; case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT: CHECK_EXT1(EXT_convolution, "GetFloatv"); params[0] = ctx->Pixel.PostConvolutionScale[3]; break; case GL_POST_CONVOLUTION_RED_BIAS_EXT: CHECK_EXT1(EXT_convolution, "GetFloatv"); params[0] = ctx->Pixel.PostConvolutionBias[0]; break; case GL_POST_CONVOLUTION_GREEN_BIAS_EXT: CHECK_EXT1(EXT_convolution, "GetFloatv"); params[0] = ctx->Pixel.PostConvolutionBias[1]; break; case GL_POST_CONVOLUTION_BLUE_BIAS_EXT: CHECK_EXT1(EXT_convolution, "GetFloatv"); params[0] = ctx->Pixel.PostConvolutionBias[2]; break; case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT: CHECK_EXT1(EXT_convolution, "GetFloatv"); params[0] = ctx->Pixel.PostConvolutionBias[3]; break; case GL_HISTOGRAM: CHECK_EXT1(EXT_histogram, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.HistogramEnabled); break; case GL_MINMAX: CHECK_EXT1(EXT_histogram, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.MinMaxEnabled); break; case GL_COLOR_TABLE_SGI: CHECK_EXT1(SGI_color_table, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.ColorTableEnabled[COLORTABLE_PRECONVOLUTION]); break; case GL_POST_CONVOLUTION_COLOR_TABLE_SGI: CHECK_EXT1(SGI_color_table, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCONVOLUTION]); break; case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI: CHECK_EXT1(SGI_color_table, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCOLORMATRIX]); break; case GL_TEXTURE_COLOR_TABLE_SGI: CHECK_EXT1(SGI_texture_color_table, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Texture.Unit[ctx->Texture.CurrentUnit].ColorTableEnabled); break; case GL_COLOR_SUM_EXT: CHECK_EXT2(EXT_secondary_color, ARB_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Fog.ColorSumEnabled); break; case GL_CURRENT_SECONDARY_COLOR_EXT: CHECK_EXT1(EXT_secondary_color, "GetFloatv"); { FLUSH_CURRENT(ctx, 0); params[0] = ctx->Current.Attrib[VERT_ATTRIB_COLOR1][0]; params[1] = ctx->Current.Attrib[VERT_ATTRIB_COLOR1][1]; params[2] = ctx->Current.Attrib[VERT_ATTRIB_COLOR1][2]; params[3] = ctx->Current.Attrib[VERT_ATTRIB_COLOR1][3]; } break; case GL_SECONDARY_COLOR_ARRAY_EXT: CHECK_EXT1(EXT_secondary_color, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->SecondaryColor.Enabled); break; case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT: CHECK_EXT1(EXT_secondary_color, "GetFloatv"); params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->SecondaryColor.Type); break; case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT: CHECK_EXT1(EXT_secondary_color, "GetFloatv"); params[0] = (GLfloat)(ctx->Array.ArrayObj->SecondaryColor.Stride); break; case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT: CHECK_EXT1(EXT_secondary_color, "GetFloatv"); params[0] = (GLfloat)(ctx->Array.ArrayObj->SecondaryColor.Size); break; case GL_CURRENT_FOG_COORDINATE_EXT: CHECK_EXT1(EXT_fog_coord, "GetFloatv"); { FLUSH_CURRENT(ctx, 0); params[0] = ctx->Current.Attrib[VERT_ATTRIB_FOG][0]; } break; case GL_FOG_COORDINATE_ARRAY_EXT: CHECK_EXT1(EXT_fog_coord, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->FogCoord.Enabled); break; case GL_FOG_COORDINATE_ARRAY_TYPE_EXT: CHECK_EXT1(EXT_fog_coord, "GetFloatv"); params[0] = ENUM_TO_FLOAT(ctx->Array.ArrayObj->FogCoord.Type); break; case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT: CHECK_EXT1(EXT_fog_coord, "GetFloatv"); params[0] = (GLfloat)(ctx->Array.ArrayObj->FogCoord.Stride); break; case GL_FOG_COORDINATE_SOURCE_EXT: CHECK_EXT1(EXT_fog_coord, "GetFloatv"); params[0] = ENUM_TO_FLOAT(ctx->Fog.FogCoordinateSource); break; case GL_MAX_TEXTURE_LOD_BIAS_EXT: CHECK_EXT1(EXT_texture_lod_bias, "GetFloatv"); params[0] = ctx->Const.MaxTextureLodBias; break; case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: CHECK_EXT1(EXT_texture_filter_anisotropic, "GetFloatv"); params[0] = ctx->Const.MaxTextureMaxAnisotropy; break; case GL_MULTISAMPLE_ARB: CHECK_EXT1(ARB_multisample, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Multisample.Enabled); break; case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB: CHECK_EXT1(ARB_multisample, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Multisample.SampleAlphaToCoverage); break; case GL_SAMPLE_ALPHA_TO_ONE_ARB: CHECK_EXT1(ARB_multisample, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Multisample.SampleAlphaToOne); break; case GL_SAMPLE_COVERAGE_ARB: CHECK_EXT1(ARB_multisample, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Multisample.SampleCoverage); break; case GL_SAMPLE_COVERAGE_VALUE_ARB: CHECK_EXT1(ARB_multisample, "GetFloatv"); params[0] = ctx->Multisample.SampleCoverageValue; break; case GL_SAMPLE_COVERAGE_INVERT_ARB: CHECK_EXT1(ARB_multisample, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Multisample.SampleCoverageInvert); break; case GL_SAMPLE_BUFFERS_ARB: CHECK_EXT1(ARB_multisample, "GetFloatv"); params[0] = (GLfloat)(ctx->DrawBuffer->Visual.sampleBuffers); break; case GL_SAMPLES_ARB: CHECK_EXT1(ARB_multisample, "GetFloatv"); params[0] = (GLfloat)(ctx->DrawBuffer->Visual.samples); break; case GL_RASTER_POSITION_UNCLIPPED_IBM: CHECK_EXT1(IBM_rasterpos_clip, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Transform.RasterPositionUnclipped); break; case GL_POINT_SPRITE_NV: CHECK_EXT2(NV_point_sprite, ARB_point_sprite, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Point.PointSprite); break; case GL_POINT_SPRITE_R_MODE_NV: CHECK_EXT1(NV_point_sprite, "GetFloatv"); params[0] = ENUM_TO_FLOAT(ctx->Point.SpriteRMode); break; case GL_POINT_SPRITE_COORD_ORIGIN: CHECK_EXT2(NV_point_sprite, ARB_point_sprite, "GetFloatv"); params[0] = ENUM_TO_FLOAT(ctx->Point.SpriteOrigin); break; case GL_GENERATE_MIPMAP_HINT_SGIS: CHECK_EXT1(SGIS_generate_mipmap, "GetFloatv"); params[0] = ENUM_TO_FLOAT(ctx->Hint.GenerateMipmap); break; case GL_VERTEX_PROGRAM_BINDING_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = (GLfloat)((ctx->VertexProgram.Current ? ctx->VertexProgram.Current->Base.Id : 0)); break; case GL_VERTEX_ATTRIB_ARRAY0_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[0].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY1_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[1].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY2_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[2].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY3_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[3].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY4_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[4].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY5_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[5].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY6_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[6].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY7_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[7].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY8_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[8].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY9_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[9].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY10_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[10].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY11_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[11].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY12_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[12].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY13_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[13].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY14_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[14].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY15_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Array.ArrayObj->VertexAttrib[15].Enabled); break; case GL_MAP1_VERTEX_ATTRIB0_4_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[0]); break; case GL_MAP1_VERTEX_ATTRIB1_4_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[1]); break; case GL_MAP1_VERTEX_ATTRIB2_4_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[2]); break; case GL_MAP1_VERTEX_ATTRIB3_4_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[3]); break; case GL_MAP1_VERTEX_ATTRIB4_4_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[4]); break; case GL_MAP1_VERTEX_ATTRIB5_4_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[5]); break; case GL_MAP1_VERTEX_ATTRIB6_4_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[6]); break; case GL_MAP1_VERTEX_ATTRIB7_4_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[7]); break; case GL_MAP1_VERTEX_ATTRIB8_4_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[8]); break; case GL_MAP1_VERTEX_ATTRIB9_4_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[9]); break; case GL_MAP1_VERTEX_ATTRIB10_4_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[10]); break; case GL_MAP1_VERTEX_ATTRIB11_4_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[11]); break; case GL_MAP1_VERTEX_ATTRIB12_4_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[12]); break; case GL_MAP1_VERTEX_ATTRIB13_4_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[13]); break; case GL_MAP1_VERTEX_ATTRIB14_4_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[14]); break; case GL_MAP1_VERTEX_ATTRIB15_4_NV: CHECK_EXT1(NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Eval.Map1Attrib[15]); break; case GL_FRAGMENT_PROGRAM_NV: CHECK_EXT1(NV_fragment_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->FragmentProgram.Enabled); break; case GL_FRAGMENT_PROGRAM_BINDING_NV: CHECK_EXT1(NV_fragment_program, "GetFloatv"); params[0] = (GLfloat)(ctx->FragmentProgram.Current ? ctx->FragmentProgram.Current->Base.Id : 0); break; case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV: CHECK_EXT1(NV_fragment_program, "GetFloatv"); params[0] = (GLfloat)(MAX_NV_FRAGMENT_PROGRAM_PARAMS); break; case GL_TEXTURE_RECTANGLE_NV: CHECK_EXT1(NV_texture_rectangle, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV)); break; case GL_TEXTURE_BINDING_RECTANGLE_NV: CHECK_EXT1(NV_texture_rectangle, "GetFloatv"); params[0] = (GLfloat)(ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentRect->Name); break; case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV: CHECK_EXT1(NV_texture_rectangle, "GetFloatv"); params[0] = (GLfloat)(ctx->Const.MaxTextureRectSize); break; case GL_STENCIL_TEST_TWO_SIDE_EXT: CHECK_EXT1(EXT_stencil_two_side, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Stencil.TestTwoSide); break; case GL_ACTIVE_STENCIL_FACE_EXT: CHECK_EXT1(EXT_stencil_two_side, "GetFloatv"); params[0] = ENUM_TO_FLOAT(ctx->Stencil.ActiveFace ? GL_BACK : GL_FRONT); break; case GL_MAX_SHININESS_NV: CHECK_EXT1(NV_light_max_exponent, "GetFloatv"); params[0] = ctx->Const.MaxShininess; break; case GL_MAX_SPOT_EXPONENT_NV: CHECK_EXT1(NV_light_max_exponent, "GetFloatv"); params[0] = ctx->Const.MaxSpotExponent; break; case GL_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv"); params[0] = (GLfloat)(ctx->Array.ArrayBufferObj->Name); break; case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv"); params[0] = (GLfloat)(ctx->Array.ArrayObj->Vertex.BufferObj->Name); break; case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv"); params[0] = (GLfloat)(ctx->Array.ArrayObj->Normal.BufferObj->Name); break; case GL_COLOR_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv"); params[0] = (GLfloat)(ctx->Array.ArrayObj->Color.BufferObj->Name); break; case GL_INDEX_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv"); params[0] = (GLfloat)(ctx->Array.ArrayObj->Index.BufferObj->Name); break; case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv"); params[0] = (GLfloat)(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].BufferObj->Name); break; case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv"); params[0] = (GLfloat)(ctx->Array.ArrayObj->EdgeFlag.BufferObj->Name); break; case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv"); params[0] = (GLfloat)(ctx->Array.ArrayObj->SecondaryColor.BufferObj->Name); break; case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv"); params[0] = (GLfloat)(ctx->Array.ArrayObj->FogCoord.BufferObj->Name); break; case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetFloatv"); params[0] = (GLfloat)(ctx->Array.ElementArrayBufferObj->Name); break; case GL_PIXEL_PACK_BUFFER_BINDING_EXT: CHECK_EXT1(EXT_pixel_buffer_object, "GetFloatv"); params[0] = (GLfloat)(ctx->Pack.BufferObj->Name); break; case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT: CHECK_EXT1(EXT_pixel_buffer_object, "GetFloatv"); params[0] = (GLfloat)(ctx->Unpack.BufferObj->Name); break; case GL_VERTEX_PROGRAM_ARB: CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->VertexProgram.Enabled); break; case GL_VERTEX_PROGRAM_POINT_SIZE_ARB: CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->VertexProgram.PointSizeEnabled); break; case GL_VERTEX_PROGRAM_TWO_SIDE_ARB: CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->VertexProgram.TwoSideEnabled); break; case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB: CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetFloatv"); params[0] = (GLfloat)(ctx->Const.MaxProgramMatrixStackDepth); break; case GL_MAX_PROGRAM_MATRICES_ARB: CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetFloatv"); params[0] = (GLfloat)(ctx->Const.MaxProgramMatrices); break; case GL_CURRENT_MATRIX_STACK_DEPTH_ARB: CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->CurrentStack->Depth + 1); break; case GL_CURRENT_MATRIX_ARB: CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_fragment_program, "GetFloatv"); { const GLfloat *matrix = ctx->CurrentStack->Top->m; params[0] = matrix[0]; params[1] = matrix[1]; params[2] = matrix[2]; params[3] = matrix[3]; params[4] = matrix[4]; params[5] = matrix[5]; params[6] = matrix[6]; params[7] = matrix[7]; params[8] = matrix[8]; params[9] = matrix[9]; params[10] = matrix[10]; params[11] = matrix[11]; params[12] = matrix[12]; params[13] = matrix[13]; params[14] = matrix[14]; params[15] = matrix[15]; } break; case GL_TRANSPOSE_CURRENT_MATRIX_ARB: CHECK_EXT2(ARB_vertex_program, ARB_fragment_program, "GetFloatv"); { const GLfloat *matrix = ctx->CurrentStack->Top->m; params[0] = matrix[0]; params[1] = matrix[4]; params[2] = matrix[8]; params[3] = matrix[12]; params[4] = matrix[1]; params[5] = matrix[5]; params[6] = matrix[9]; params[7] = matrix[13]; params[8] = matrix[2]; params[9] = matrix[6]; params[10] = matrix[10]; params[11] = matrix[14]; params[12] = matrix[3]; params[13] = matrix[7]; params[14] = matrix[11]; params[15] = matrix[15]; } break; case GL_MAX_VERTEX_ATTRIBS_ARB: CHECK_EXT1(ARB_vertex_program, "GetFloatv"); params[0] = (GLfloat)(ctx->Const.VertexProgram.MaxAttribs); break; case GL_PROGRAM_ERROR_POSITION_ARB: CHECK_EXT4(NV_vertex_program, ARB_vertex_program, NV_fragment_program, ARB_fragment_program, "GetFloatv"); params[0] = (GLfloat)(ctx->Program.ErrorPos); break; case GL_FRAGMENT_PROGRAM_ARB: CHECK_EXT1(ARB_fragment_program, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->FragmentProgram.Enabled); break; case GL_MAX_TEXTURE_COORDS_ARB: CHECK_EXT2(ARB_fragment_program, NV_fragment_program, "GetFloatv"); params[0] = (GLfloat)(ctx->Const.MaxTextureCoordUnits); break; case GL_MAX_TEXTURE_IMAGE_UNITS_ARB: CHECK_EXT2(ARB_fragment_program, NV_fragment_program, "GetFloatv"); params[0] = (GLfloat)(ctx->Const.MaxTextureImageUnits); break; case GL_DEPTH_BOUNDS_TEST_EXT: CHECK_EXT1(EXT_depth_bounds_test, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->Depth.BoundsTest); break; case GL_DEPTH_BOUNDS_EXT: CHECK_EXT1(EXT_depth_bounds_test, "GetFloatv"); params[0] = ctx->Depth.BoundsMin; params[1] = ctx->Depth.BoundsMax; break; case GL_FRAGMENT_PROGRAM_CALLBACK_MESA: CHECK_EXT1(MESA_program_debug, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->FragmentProgram.CallbackEnabled); break; case GL_VERTEX_PROGRAM_CALLBACK_MESA: CHECK_EXT1(MESA_program_debug, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(ctx->VertexProgram.CallbackEnabled); break; case GL_FRAGMENT_PROGRAM_POSITION_MESA: CHECK_EXT1(MESA_program_debug, "GetFloatv"); params[0] = (GLfloat)(ctx->FragmentProgram.CurrentPosition); break; case GL_VERTEX_PROGRAM_POSITION_MESA: CHECK_EXT1(MESA_program_debug, "GetFloatv"); params[0] = (GLfloat)(ctx->VertexProgram.CurrentPosition); break; case GL_MAX_DRAW_BUFFERS_ARB: CHECK_EXT1(ARB_draw_buffers, "GetFloatv"); params[0] = (GLfloat)(ctx->Const.MaxDrawBuffers); break; case GL_DRAW_BUFFER0_ARB: CHECK_EXT1(ARB_draw_buffers, "GetFloatv"); params[0] = ENUM_TO_FLOAT(ctx->DrawBuffer->ColorDrawBuffer[0]); break; case GL_DRAW_BUFFER1_ARB: CHECK_EXT1(ARB_draw_buffers, "GetFloatv"); { GLenum buffer; if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) { _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)"); return; } buffer = ctx->DrawBuffer->ColorDrawBuffer[1]; params[0] = ENUM_TO_FLOAT(buffer); } break; case GL_DRAW_BUFFER2_ARB: CHECK_EXT1(ARB_draw_buffers, "GetFloatv"); { GLenum buffer; if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) { _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)"); return; } buffer = ctx->DrawBuffer->ColorDrawBuffer[2]; params[0] = ENUM_TO_FLOAT(buffer); } break; case GL_DRAW_BUFFER3_ARB: CHECK_EXT1(ARB_draw_buffers, "GetFloatv"); { GLenum buffer; if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) { _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)"); return; } buffer = ctx->DrawBuffer->ColorDrawBuffer[3]; params[0] = ENUM_TO_FLOAT(buffer); } break; case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES: CHECK_EXT1(OES_read_format, "GetFloatv"); params[0] = (GLfloat)(ctx->Const.ColorReadType); break; case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES: CHECK_EXT1(OES_read_format, "GetFloatv"); params[0] = (GLfloat)(ctx->Const.ColorReadFormat); break; case GL_NUM_FRAGMENT_REGISTERS_ATI: CHECK_EXT1(ATI_fragment_shader, "GetFloatv"); params[0] = (GLfloat)(6); break; case GL_NUM_FRAGMENT_CONSTANTS_ATI: CHECK_EXT1(ATI_fragment_shader, "GetFloatv"); params[0] = (GLfloat)(8); break; case GL_NUM_PASSES_ATI: CHECK_EXT1(ATI_fragment_shader, "GetFloatv"); params[0] = (GLfloat)(2); break; case GL_NUM_INSTRUCTIONS_PER_PASS_ATI: CHECK_EXT1(ATI_fragment_shader, "GetFloatv"); params[0] = (GLfloat)(8); break; case GL_NUM_INSTRUCTIONS_TOTAL_ATI: CHECK_EXT1(ATI_fragment_shader, "GetFloatv"); params[0] = (GLfloat)(16); break; case GL_COLOR_ALPHA_PAIRING_ATI: CHECK_EXT1(ATI_fragment_shader, "GetFloatv"); params[0] = BOOLEAN_TO_FLOAT(GL_TRUE); break; case GL_NUM_LOOPBACK_COMPONENTS_ATI: CHECK_EXT1(ATI_fragment_shader, "GetFloatv"); params[0] = (GLfloat)(3); break; case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI: CHECK_EXT1(ATI_fragment_shader, "GetFloatv"); params[0] = (GLfloat)(3); break; case GL_STENCIL_BACK_FUNC: params[0] = ENUM_TO_FLOAT(ctx->Stencil.Function[1]); break; case GL_STENCIL_BACK_VALUE_MASK: params[0] = (GLfloat)(ctx->Stencil.ValueMask[1]); break; case GL_STENCIL_BACK_WRITEMASK: params[0] = (GLfloat)(ctx->Stencil.WriteMask[1]); break; case GL_STENCIL_BACK_REF: params[0] = (GLfloat)(ctx->Stencil.Ref[1]); break; case GL_STENCIL_BACK_FAIL: params[0] = ENUM_TO_FLOAT(ctx->Stencil.FailFunc[1]); break; case GL_STENCIL_BACK_PASS_DEPTH_FAIL: params[0] = ENUM_TO_FLOAT(ctx->Stencil.ZFailFunc[1]); break; case GL_STENCIL_BACK_PASS_DEPTH_PASS: params[0] = ENUM_TO_FLOAT(ctx->Stencil.ZPassFunc[1]); break; case GL_FRAMEBUFFER_BINDING_EXT: CHECK_EXT1(EXT_framebuffer_object, "GetFloatv"); params[0] = (GLfloat)(ctx->DrawBuffer->Name); break; case GL_RENDERBUFFER_BINDING_EXT: CHECK_EXT1(EXT_framebuffer_object, "GetFloatv"); params[0] = (GLfloat)(ctx->CurrentRenderbuffer ? ctx->CurrentRenderbuffer->Name : 0); break; case GL_MAX_COLOR_ATTACHMENTS_EXT: CHECK_EXT1(EXT_framebuffer_object, "GetFloatv"); params[0] = (GLfloat)(ctx->Const.MaxColorAttachments); break; case GL_MAX_RENDERBUFFER_SIZE_EXT: CHECK_EXT1(EXT_framebuffer_object, "GetFloatv"); params[0] = (GLfloat)(ctx->Const.MaxRenderbufferSize); break; case GL_READ_FRAMEBUFFER_BINDING_EXT: CHECK_EXT1(EXT_framebuffer_blit, "GetFloatv"); params[0] = (GLfloat)(ctx->ReadBuffer->Name); break; case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB: CHECK_EXT1(ARB_fragment_shader, "GetFloatv"); params[0] = (GLfloat)(ctx->Const.FragmentProgram.MaxUniformComponents); break; case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB: CHECK_EXT1(ARB_fragment_shader, "GetFloatv"); params[0] = ENUM_TO_FLOAT(ctx->Hint.FragmentShaderDerivative); break; case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB: CHECK_EXT1(ARB_vertex_shader, "GetFloatv"); params[0] = (GLfloat)(ctx->Const.VertexProgram.MaxUniformComponents); break; case GL_MAX_VARYING_FLOATS_ARB: CHECK_EXT1(ARB_vertex_shader, "GetFloatv"); params[0] = (GLfloat)(ctx->Const.MaxVarying * 4); break; case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB: CHECK_EXT1(ARB_vertex_shader, "GetFloatv"); params[0] = (GLfloat)(ctx->Const.MaxVertexTextureImageUnits); break; case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB: CHECK_EXT1(ARB_vertex_shader, "GetFloatv"); params[0] = (GLfloat)(MAX_COMBINED_TEXTURE_IMAGE_UNITS); break; case GL_CURRENT_PROGRAM: CHECK_EXT1(ARB_shader_objects, "GetFloatv"); params[0] = (GLfloat)(ctx->Shader.CurrentProgram ? ctx->Shader.CurrentProgram->Name : 0); break; case GL_MAX_SAMPLES: CHECK_EXT1(ARB_framebuffer_object, "GetFloatv"); params[0] = (GLfloat)(ctx->Const.MaxSamples); break; default: _mesa_error(ctx, GL_INVALID_ENUM, "glGetFloatv(pname=0x%x)", pname); } } void GLAPIENTRY _mesa_GetIntegerv( GLenum pname, GLint *params ) { GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END(ctx); if (!params) return; if (ctx->NewState) _mesa_update_state(ctx); if (ctx->Driver.GetIntegerv && ctx->Driver.GetIntegerv(ctx, pname, params)) return; switch (pname) { case GL_ACCUM_RED_BITS: params[0] = ctx->DrawBuffer->Visual.accumRedBits; break; case GL_ACCUM_GREEN_BITS: params[0] = ctx->DrawBuffer->Visual.accumGreenBits; break; case GL_ACCUM_BLUE_BITS: params[0] = ctx->DrawBuffer->Visual.accumBlueBits; break; case GL_ACCUM_ALPHA_BITS: params[0] = ctx->DrawBuffer->Visual.accumAlphaBits; break; case GL_ACCUM_CLEAR_VALUE: params[0] = FLOAT_TO_INT(ctx->Accum.ClearColor[0]); params[1] = FLOAT_TO_INT(ctx->Accum.ClearColor[1]); params[2] = FLOAT_TO_INT(ctx->Accum.ClearColor[2]); params[3] = FLOAT_TO_INT(ctx->Accum.ClearColor[3]); break; case GL_ALPHA_BIAS: params[0] = IROUND(ctx->Pixel.AlphaBias); break; case GL_ALPHA_BITS: params[0] = ctx->DrawBuffer->Visual.alphaBits; break; case GL_ALPHA_SCALE: params[0] = IROUND(ctx->Pixel.AlphaScale); break; case GL_ALPHA_TEST: params[0] = BOOLEAN_TO_INT(ctx->Color.AlphaEnabled); break; case GL_ALPHA_TEST_FUNC: params[0] = ENUM_TO_INT(ctx->Color.AlphaFunc); break; case GL_ALPHA_TEST_REF: params[0] = FLOAT_TO_INT(ctx->Color.AlphaRef); break; case GL_ATTRIB_STACK_DEPTH: params[0] = ctx->AttribStackDepth; break; case GL_AUTO_NORMAL: params[0] = BOOLEAN_TO_INT(ctx->Eval.AutoNormal); break; case GL_AUX_BUFFERS: params[0] = ctx->DrawBuffer->Visual.numAuxBuffers; break; case GL_BLEND: params[0] = BOOLEAN_TO_INT(ctx->Color.BlendEnabled); break; case GL_BLEND_DST: params[0] = ENUM_TO_INT(ctx->Color.BlendDstRGB); break; case GL_BLEND_SRC: params[0] = ENUM_TO_INT(ctx->Color.BlendSrcRGB); break; case GL_BLEND_SRC_RGB_EXT: params[0] = ENUM_TO_INT(ctx->Color.BlendSrcRGB); break; case GL_BLEND_DST_RGB_EXT: params[0] = ENUM_TO_INT(ctx->Color.BlendDstRGB); break; case GL_BLEND_SRC_ALPHA_EXT: params[0] = ENUM_TO_INT(ctx->Color.BlendSrcA); break; case GL_BLEND_DST_ALPHA_EXT: params[0] = ENUM_TO_INT(ctx->Color.BlendDstA); break; case GL_BLEND_EQUATION: params[0] = ENUM_TO_INT(ctx->Color.BlendEquationRGB ); break; case GL_BLEND_EQUATION_ALPHA_EXT: params[0] = ENUM_TO_INT(ctx->Color.BlendEquationA ); break; case GL_BLEND_COLOR_EXT: params[0] = FLOAT_TO_INT(ctx->Color.BlendColor[0]); params[1] = FLOAT_TO_INT(ctx->Color.BlendColor[1]); params[2] = FLOAT_TO_INT(ctx->Color.BlendColor[2]); params[3] = FLOAT_TO_INT(ctx->Color.BlendColor[3]); break; case GL_BLUE_BIAS: params[0] = IROUND(ctx->Pixel.BlueBias); break; case GL_BLUE_BITS: params[0] = ctx->DrawBuffer->Visual.blueBits; break; case GL_BLUE_SCALE: params[0] = IROUND(ctx->Pixel.BlueScale); break; case GL_CLIENT_ATTRIB_STACK_DEPTH: params[0] = ctx->ClientAttribStackDepth; break; case GL_CLIP_PLANE0: params[0] = BOOLEAN_TO_INT((ctx->Transform.ClipPlanesEnabled >> 0) & 1); break; case GL_CLIP_PLANE1: params[0] = BOOLEAN_TO_INT((ctx->Transform.ClipPlanesEnabled >> 1) & 1); break; case GL_CLIP_PLANE2: params[0] = BOOLEAN_TO_INT((ctx->Transform.ClipPlanesEnabled >> 2) & 1); break; case GL_CLIP_PLANE3: params[0] = BOOLEAN_TO_INT((ctx->Transform.ClipPlanesEnabled >> 3) & 1); break; case GL_CLIP_PLANE4: params[0] = BOOLEAN_TO_INT((ctx->Transform.ClipPlanesEnabled >> 4) & 1); break; case GL_CLIP_PLANE5: params[0] = BOOLEAN_TO_INT((ctx->Transform.ClipPlanesEnabled >> 5) & 1); break; case GL_COLOR_CLEAR_VALUE: params[0] = FLOAT_TO_INT(ctx->Color.ClearColor[0]); params[1] = FLOAT_TO_INT(ctx->Color.ClearColor[1]); params[2] = FLOAT_TO_INT(ctx->Color.ClearColor[2]); params[3] = FLOAT_TO_INT(ctx->Color.ClearColor[3]); break; case GL_COLOR_MATERIAL: params[0] = BOOLEAN_TO_INT(ctx->Light.ColorMaterialEnabled); break; case GL_COLOR_MATERIAL_FACE: params[0] = ENUM_TO_INT(ctx->Light.ColorMaterialFace); break; case GL_COLOR_MATERIAL_PARAMETER: params[0] = ENUM_TO_INT(ctx->Light.ColorMaterialMode); break; case GL_COLOR_WRITEMASK: params[0] = ctx->Color.ColorMask[RCOMP] ? 1 : 0; params[1] = ctx->Color.ColorMask[GCOMP] ? 1 : 0; params[2] = ctx->Color.ColorMask[BCOMP] ? 1 : 0; params[3] = ctx->Color.ColorMask[ACOMP] ? 1 : 0; break; case GL_CULL_FACE: params[0] = BOOLEAN_TO_INT(ctx->Polygon.CullFlag); break; case GL_CULL_FACE_MODE: params[0] = ENUM_TO_INT(ctx->Polygon.CullFaceMode); break; case GL_CURRENT_COLOR: { FLUSH_CURRENT(ctx, 0); params[0] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0]); params[1] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1]); params[2] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2]); params[3] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3]); } break; case GL_CURRENT_INDEX: { FLUSH_CURRENT(ctx, 0); params[0] = IROUND(ctx->Current.Attrib[VERT_ATTRIB_COLOR_INDEX][0]); } break; case GL_CURRENT_NORMAL: { FLUSH_CURRENT(ctx, 0); params[0] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][0]); params[1] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][1]); params[2] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][2]); } break; case GL_CURRENT_RASTER_COLOR: params[0] = FLOAT_TO_INT(ctx->Current.RasterColor[0]); params[1] = FLOAT_TO_INT(ctx->Current.RasterColor[1]); params[2] = FLOAT_TO_INT(ctx->Current.RasterColor[2]); params[3] = FLOAT_TO_INT(ctx->Current.RasterColor[3]); break; case GL_CURRENT_RASTER_DISTANCE: params[0] = IROUND(ctx->Current.RasterDistance); break; case GL_CURRENT_RASTER_INDEX: params[0] = IROUND(ctx->Current.RasterIndex); break; case GL_CURRENT_RASTER_POSITION: params[0] = IROUND(ctx->Current.RasterPos[0]); params[1] = IROUND(ctx->Current.RasterPos[1]); params[2] = IROUND(ctx->Current.RasterPos[2]); params[3] = IROUND(ctx->Current.RasterPos[3]); break; case GL_CURRENT_RASTER_SECONDARY_COLOR: params[0] = FLOAT_TO_INT(ctx->Current.RasterSecondaryColor[0]); params[1] = FLOAT_TO_INT(ctx->Current.RasterSecondaryColor[1]); params[2] = FLOAT_TO_INT(ctx->Current.RasterSecondaryColor[2]); params[3] = FLOAT_TO_INT(ctx->Current.RasterSecondaryColor[3]); break; case GL_CURRENT_RASTER_TEXTURE_COORDS: { const GLuint texUnit = ctx->Texture.CurrentUnit; params[0] = IROUND(ctx->Current.RasterTexCoords[texUnit][0]); params[1] = IROUND(ctx->Current.RasterTexCoords[texUnit][1]); params[2] = IROUND(ctx->Current.RasterTexCoords[texUnit][2]); params[3] = IROUND(ctx->Current.RasterTexCoords[texUnit][3]); } break; case GL_CURRENT_RASTER_POSITION_VALID: params[0] = BOOLEAN_TO_INT(ctx->Current.RasterPosValid); break; case GL_CURRENT_TEXTURE_COORDS: { const GLuint texUnit = ctx->Texture.CurrentUnit; params[0] = IROUND(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][0]); params[1] = IROUND(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][1]); params[2] = IROUND(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][2]); params[3] = IROUND(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][3]); } break; case GL_DEPTH_BIAS: params[0] = IROUND(ctx->Pixel.DepthBias); break; case GL_DEPTH_BITS: params[0] = ctx->DrawBuffer->Visual.depthBits; break; case GL_DEPTH_CLEAR_VALUE: params[0] = FLOAT_TO_INT(((GLfloat) ctx->Depth.Clear)); break; case GL_DEPTH_FUNC: params[0] = ENUM_TO_INT(ctx->Depth.Func); break; case GL_DEPTH_RANGE: params[0] = FLOAT_TO_INT(ctx->Viewport.Near); params[1] = FLOAT_TO_INT(ctx->Viewport.Far); break; case GL_DEPTH_SCALE: params[0] = IROUND(ctx->Pixel.DepthScale); break; case GL_DEPTH_TEST: params[0] = BOOLEAN_TO_INT(ctx->Depth.Test); break; case GL_DEPTH_WRITEMASK: params[0] = BOOLEAN_TO_INT(ctx->Depth.Mask); break; case GL_DITHER: params[0] = BOOLEAN_TO_INT(ctx->Color.DitherFlag); break; case GL_DOUBLEBUFFER: params[0] = BOOLEAN_TO_INT(ctx->DrawBuffer->Visual.doubleBufferMode); break; case GL_DRAW_BUFFER: params[0] = ENUM_TO_INT(ctx->DrawBuffer->ColorDrawBuffer[0]); break; case GL_EDGE_FLAG: { FLUSH_CURRENT(ctx, 0); params[0] = BOOLEAN_TO_INT((ctx->Current.Attrib[VERT_ATTRIB_EDGEFLAG][0] == 1.0)); } break; case GL_FEEDBACK_BUFFER_SIZE: params[0] = ctx->Feedback.BufferSize; break; case GL_FEEDBACK_BUFFER_TYPE: params[0] = ENUM_TO_INT(ctx->Feedback.Type); break; case GL_FOG: params[0] = BOOLEAN_TO_INT(ctx->Fog.Enabled); break; case GL_FOG_COLOR: params[0] = FLOAT_TO_INT(ctx->Fog.Color[0]); params[1] = FLOAT_TO_INT(ctx->Fog.Color[1]); params[2] = FLOAT_TO_INT(ctx->Fog.Color[2]); params[3] = FLOAT_TO_INT(ctx->Fog.Color[3]); break; case GL_FOG_DENSITY: params[0] = IROUND(ctx->Fog.Density); break; case GL_FOG_END: params[0] = IROUND(ctx->Fog.End); break; case GL_FOG_HINT: params[0] = ENUM_TO_INT(ctx->Hint.Fog); break; case GL_FOG_INDEX: params[0] = IROUND(ctx->Fog.Index); break; case GL_FOG_MODE: params[0] = ENUM_TO_INT(ctx->Fog.Mode); break; case GL_FOG_START: params[0] = IROUND(ctx->Fog.Start); break; case GL_FRONT_FACE: params[0] = ENUM_TO_INT(ctx->Polygon.FrontFace); break; case GL_GREEN_BIAS: params[0] = IROUND(ctx->Pixel.GreenBias); break; case GL_GREEN_BITS: params[0] = ctx->DrawBuffer->Visual.greenBits; break; case GL_GREEN_SCALE: params[0] = IROUND(ctx->Pixel.GreenScale); break; case GL_INDEX_BITS: params[0] = ctx->DrawBuffer->Visual.indexBits; break; case GL_INDEX_CLEAR_VALUE: params[0] = ctx->Color.ClearIndex; break; case GL_INDEX_MODE: params[0] = BOOLEAN_TO_INT(!ctx->DrawBuffer->Visual.rgbMode); break; case GL_INDEX_OFFSET: params[0] = ctx->Pixel.IndexOffset; break; case GL_INDEX_SHIFT: params[0] = ctx->Pixel.IndexShift; break; case GL_INDEX_WRITEMASK: params[0] = ctx->Color.IndexMask; break; case GL_LIGHT0: params[0] = BOOLEAN_TO_INT(ctx->Light.Light[0].Enabled); break; case GL_LIGHT1: params[0] = BOOLEAN_TO_INT(ctx->Light.Light[1].Enabled); break; case GL_LIGHT2: params[0] = BOOLEAN_TO_INT(ctx->Light.Light[2].Enabled); break; case GL_LIGHT3: params[0] = BOOLEAN_TO_INT(ctx->Light.Light[3].Enabled); break; case GL_LIGHT4: params[0] = BOOLEAN_TO_INT(ctx->Light.Light[4].Enabled); break; case GL_LIGHT5: params[0] = BOOLEAN_TO_INT(ctx->Light.Light[5].Enabled); break; case GL_LIGHT6: params[0] = BOOLEAN_TO_INT(ctx->Light.Light[6].Enabled); break; case GL_LIGHT7: params[0] = BOOLEAN_TO_INT(ctx->Light.Light[7].Enabled); break; case GL_LIGHTING: params[0] = BOOLEAN_TO_INT(ctx->Light.Enabled); break; case GL_LIGHT_MODEL_AMBIENT: params[0] = FLOAT_TO_INT(ctx->Light.Model.Ambient[0]); params[1] = FLOAT_TO_INT(ctx->Light.Model.Ambient[1]); params[2] = FLOAT_TO_INT(ctx->Light.Model.Ambient[2]); params[3] = FLOAT_TO_INT(ctx->Light.Model.Ambient[3]); break; case GL_LIGHT_MODEL_COLOR_CONTROL: params[0] = ENUM_TO_INT(ctx->Light.Model.ColorControl); break; case GL_LIGHT_MODEL_LOCAL_VIEWER: params[0] = BOOLEAN_TO_INT(ctx->Light.Model.LocalViewer); break; case GL_LIGHT_MODEL_TWO_SIDE: params[0] = BOOLEAN_TO_INT(ctx->Light.Model.TwoSide); break; case GL_LINE_SMOOTH: params[0] = BOOLEAN_TO_INT(ctx->Line.SmoothFlag); break; case GL_LINE_SMOOTH_HINT: params[0] = ENUM_TO_INT(ctx->Hint.LineSmooth); break; case GL_LINE_STIPPLE: params[0] = BOOLEAN_TO_INT(ctx->Line.StippleFlag); break; case GL_LINE_STIPPLE_PATTERN: params[0] = ctx->Line.StipplePattern; break; case GL_LINE_STIPPLE_REPEAT: params[0] = ctx->Line.StippleFactor; break; case GL_LINE_WIDTH: params[0] = IROUND(ctx->Line.Width); break; case GL_LINE_WIDTH_GRANULARITY: params[0] = IROUND(ctx->Const.LineWidthGranularity); break; case GL_LINE_WIDTH_RANGE: params[0] = IROUND(ctx->Const.MinLineWidthAA); params[1] = IROUND(ctx->Const.MaxLineWidthAA); break; case GL_ALIASED_LINE_WIDTH_RANGE: params[0] = IROUND(ctx->Const.MinLineWidth); params[1] = IROUND(ctx->Const.MaxLineWidth); break; case GL_LIST_BASE: params[0] = ctx->List.ListBase; break; case GL_LIST_INDEX: params[0] = ctx->ListState.CurrentListNum; break; case GL_LIST_MODE: { GLenum mode; if (!ctx->CompileFlag) mode = 0; else if (ctx->ExecuteFlag) mode = GL_COMPILE_AND_EXECUTE; else mode = GL_COMPILE; params[0] = ENUM_TO_INT(mode); } break; case GL_INDEX_LOGIC_OP: params[0] = BOOLEAN_TO_INT(ctx->Color.IndexLogicOpEnabled); break; case GL_COLOR_LOGIC_OP: params[0] = BOOLEAN_TO_INT(ctx->Color.ColorLogicOpEnabled); break; case GL_LOGIC_OP_MODE: params[0] = ENUM_TO_INT(ctx->Color.LogicOp); break; case GL_MAP1_COLOR_4: params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Color4); break; case GL_MAP1_GRID_DOMAIN: params[0] = IROUND(ctx->Eval.MapGrid1u1); params[1] = IROUND(ctx->Eval.MapGrid1u2); break; case GL_MAP1_GRID_SEGMENTS: params[0] = ctx->Eval.MapGrid1un; break; case GL_MAP1_INDEX: params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Index); break; case GL_MAP1_NORMAL: params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Normal); break; case GL_MAP1_TEXTURE_COORD_1: params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1TextureCoord1); break; case GL_MAP1_TEXTURE_COORD_2: params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1TextureCoord2); break; case GL_MAP1_TEXTURE_COORD_3: params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1TextureCoord3); break; case GL_MAP1_TEXTURE_COORD_4: params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1TextureCoord4); break; case GL_MAP1_VERTEX_3: params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Vertex3); break; case GL_MAP1_VERTEX_4: params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Vertex4); break; case GL_MAP2_COLOR_4: params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2Color4); break; case GL_MAP2_GRID_DOMAIN: params[0] = IROUND(ctx->Eval.MapGrid2u1); params[1] = IROUND(ctx->Eval.MapGrid2u2); params[2] = IROUND(ctx->Eval.MapGrid2v1); params[3] = IROUND(ctx->Eval.MapGrid2v2); break; case GL_MAP2_GRID_SEGMENTS: params[0] = ctx->Eval.MapGrid2un; params[1] = ctx->Eval.MapGrid2vn; break; case GL_MAP2_INDEX: params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2Index); break; case GL_MAP2_NORMAL: params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2Normal); break; case GL_MAP2_TEXTURE_COORD_1: params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2TextureCoord1); break; case GL_MAP2_TEXTURE_COORD_2: params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2TextureCoord2); break; case GL_MAP2_TEXTURE_COORD_3: params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2TextureCoord3); break; case GL_MAP2_TEXTURE_COORD_4: params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2TextureCoord4); break; case GL_MAP2_VERTEX_3: params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2Vertex3); break; case GL_MAP2_VERTEX_4: params[0] = BOOLEAN_TO_INT(ctx->Eval.Map2Vertex4); break; case GL_MAP_COLOR: params[0] = BOOLEAN_TO_INT(ctx->Pixel.MapColorFlag); break; case GL_MAP_STENCIL: params[0] = BOOLEAN_TO_INT(ctx->Pixel.MapStencilFlag); break; case GL_MATRIX_MODE: params[0] = ENUM_TO_INT(ctx->Transform.MatrixMode); break; case GL_MAX_ATTRIB_STACK_DEPTH: params[0] = MAX_ATTRIB_STACK_DEPTH; break; case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH: params[0] = MAX_CLIENT_ATTRIB_STACK_DEPTH; break; case GL_MAX_CLIP_PLANES: params[0] = ctx->Const.MaxClipPlanes; break; case GL_MAX_ELEMENTS_VERTICES: params[0] = ctx->Const.MaxArrayLockSize; break; case GL_MAX_ELEMENTS_INDICES: params[0] = ctx->Const.MaxArrayLockSize; break; case GL_MAX_EVAL_ORDER: params[0] = MAX_EVAL_ORDER; break; case GL_MAX_LIGHTS: params[0] = ctx->Const.MaxLights; break; case GL_MAX_LIST_NESTING: params[0] = MAX_LIST_NESTING; break; case GL_MAX_MODELVIEW_STACK_DEPTH: params[0] = MAX_MODELVIEW_STACK_DEPTH; break; case GL_MAX_NAME_STACK_DEPTH: params[0] = MAX_NAME_STACK_DEPTH; break; case GL_MAX_PIXEL_MAP_TABLE: params[0] = MAX_PIXEL_MAP_TABLE; break; case GL_MAX_PROJECTION_STACK_DEPTH: params[0] = MAX_PROJECTION_STACK_DEPTH; break; case GL_MAX_TEXTURE_SIZE: params[0] = 1 << (ctx->Const.MaxTextureLevels - 1); break; case GL_MAX_3D_TEXTURE_SIZE: params[0] = 1 << (ctx->Const.Max3DTextureLevels - 1); break; case GL_MAX_TEXTURE_STACK_DEPTH: params[0] = MAX_TEXTURE_STACK_DEPTH; break; case GL_MAX_VIEWPORT_DIMS: params[0] = ctx->Const.MaxViewportWidth; params[1] = ctx->Const.MaxViewportHeight; break; case GL_MODELVIEW_MATRIX: { const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m; params[0] = IROUND(matrix[0]); params[1] = IROUND(matrix[1]); params[2] = IROUND(matrix[2]); params[3] = IROUND(matrix[3]); params[4] = IROUND(matrix[4]); params[5] = IROUND(matrix[5]); params[6] = IROUND(matrix[6]); params[7] = IROUND(matrix[7]); params[8] = IROUND(matrix[8]); params[9] = IROUND(matrix[9]); params[10] = IROUND(matrix[10]); params[11] = IROUND(matrix[11]); params[12] = IROUND(matrix[12]); params[13] = IROUND(matrix[13]); params[14] = IROUND(matrix[14]); params[15] = IROUND(matrix[15]); } break; case GL_MODELVIEW_STACK_DEPTH: params[0] = ctx->ModelviewMatrixStack.Depth + 1; break; case GL_NAME_STACK_DEPTH: params[0] = ctx->Select.NameStackDepth; break; case GL_NORMALIZE: params[0] = BOOLEAN_TO_INT(ctx->Transform.Normalize); break; case GL_PACK_ALIGNMENT: params[0] = ctx->Pack.Alignment; break; case GL_PACK_LSB_FIRST: params[0] = BOOLEAN_TO_INT(ctx->Pack.LsbFirst); break; case GL_PACK_ROW_LENGTH: params[0] = ctx->Pack.RowLength; break; case GL_PACK_SKIP_PIXELS: params[0] = ctx->Pack.SkipPixels; break; case GL_PACK_SKIP_ROWS: params[0] = ctx->Pack.SkipRows; break; case GL_PACK_SWAP_BYTES: params[0] = BOOLEAN_TO_INT(ctx->Pack.SwapBytes); break; case GL_PACK_SKIP_IMAGES_EXT: params[0] = ctx->Pack.SkipImages; break; case GL_PACK_IMAGE_HEIGHT_EXT: params[0] = ctx->Pack.ImageHeight; break; case GL_PACK_INVERT_MESA: params[0] = BOOLEAN_TO_INT(ctx->Pack.Invert); break; case GL_PERSPECTIVE_CORRECTION_HINT: params[0] = ENUM_TO_INT(ctx->Hint.PerspectiveCorrection); break; case GL_PIXEL_MAP_A_TO_A_SIZE: params[0] = ctx->PixelMaps.AtoA.Size; break; case GL_PIXEL_MAP_B_TO_B_SIZE: params[0] = ctx->PixelMaps.BtoB.Size; break; case GL_PIXEL_MAP_G_TO_G_SIZE: params[0] = ctx->PixelMaps.GtoG.Size; break; case GL_PIXEL_MAP_I_TO_A_SIZE: params[0] = ctx->PixelMaps.ItoA.Size; break; case GL_PIXEL_MAP_I_TO_B_SIZE: params[0] = ctx->PixelMaps.ItoB.Size; break; case GL_PIXEL_MAP_I_TO_G_SIZE: params[0] = ctx->PixelMaps.ItoG.Size; break; case GL_PIXEL_MAP_I_TO_I_SIZE: params[0] = ctx->PixelMaps.ItoI.Size; break; case GL_PIXEL_MAP_I_TO_R_SIZE: params[0] = ctx->PixelMaps.ItoR.Size; break; case GL_PIXEL_MAP_R_TO_R_SIZE: params[0] = ctx->PixelMaps.RtoR.Size; break; case GL_PIXEL_MAP_S_TO_S_SIZE: params[0] = ctx->PixelMaps.StoS.Size; break; case GL_POINT_SIZE: params[0] = IROUND(ctx->Point.Size); break; case GL_POINT_SIZE_GRANULARITY: params[0] = IROUND(ctx->Const.PointSizeGranularity); break; case GL_POINT_SIZE_RANGE: params[0] = IROUND(ctx->Const.MinPointSizeAA); params[1] = IROUND(ctx->Const.MaxPointSizeAA); break; case GL_ALIASED_POINT_SIZE_RANGE: params[0] = IROUND(ctx->Const.MinPointSize); params[1] = IROUND(ctx->Const.MaxPointSize); break; case GL_POINT_SMOOTH: params[0] = BOOLEAN_TO_INT(ctx->Point.SmoothFlag); break; case GL_POINT_SMOOTH_HINT: params[0] = ENUM_TO_INT(ctx->Hint.PointSmooth); break; case GL_POINT_SIZE_MIN_EXT: params[0] = IROUND(ctx->Point.MinSize); break; case GL_POINT_SIZE_MAX_EXT: params[0] = IROUND(ctx->Point.MaxSize); break; case GL_POINT_FADE_THRESHOLD_SIZE_EXT: params[0] = IROUND(ctx->Point.Threshold); break; case GL_DISTANCE_ATTENUATION_EXT: params[0] = IROUND(ctx->Point.Params[0]); params[1] = IROUND(ctx->Point.Params[1]); params[2] = IROUND(ctx->Point.Params[2]); break; case GL_POLYGON_MODE: params[0] = ENUM_TO_INT(ctx->Polygon.FrontMode); params[1] = ENUM_TO_INT(ctx->Polygon.BackMode); break; case GL_POLYGON_OFFSET_BIAS_EXT: params[0] = IROUND(ctx->Polygon.OffsetUnits); break; case GL_POLYGON_OFFSET_FACTOR: params[0] = IROUND(ctx->Polygon.OffsetFactor ); break; case GL_POLYGON_OFFSET_UNITS: params[0] = IROUND(ctx->Polygon.OffsetUnits ); break; case GL_POLYGON_OFFSET_POINT: params[0] = BOOLEAN_TO_INT(ctx->Polygon.OffsetPoint); break; case GL_POLYGON_OFFSET_LINE: params[0] = BOOLEAN_TO_INT(ctx->Polygon.OffsetLine); break; case GL_POLYGON_OFFSET_FILL: params[0] = BOOLEAN_TO_INT(ctx->Polygon.OffsetFill); break; case GL_POLYGON_SMOOTH: params[0] = BOOLEAN_TO_INT(ctx->Polygon.SmoothFlag); break; case GL_POLYGON_SMOOTH_HINT: params[0] = ENUM_TO_INT(ctx->Hint.PolygonSmooth); break; case GL_POLYGON_STIPPLE: params[0] = BOOLEAN_TO_INT(ctx->Polygon.StippleFlag); break; case GL_PROJECTION_MATRIX: { const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m; params[0] = IROUND(matrix[0]); params[1] = IROUND(matrix[1]); params[2] = IROUND(matrix[2]); params[3] = IROUND(matrix[3]); params[4] = IROUND(matrix[4]); params[5] = IROUND(matrix[5]); params[6] = IROUND(matrix[6]); params[7] = IROUND(matrix[7]); params[8] = IROUND(matrix[8]); params[9] = IROUND(matrix[9]); params[10] = IROUND(matrix[10]); params[11] = IROUND(matrix[11]); params[12] = IROUND(matrix[12]); params[13] = IROUND(matrix[13]); params[14] = IROUND(matrix[14]); params[15] = IROUND(matrix[15]); } break; case GL_PROJECTION_STACK_DEPTH: params[0] = ctx->ProjectionMatrixStack.Depth + 1; break; case GL_READ_BUFFER: params[0] = ENUM_TO_INT(ctx->ReadBuffer->ColorReadBuffer); break; case GL_RED_BIAS: params[0] = IROUND(ctx->Pixel.RedBias); break; case GL_RED_BITS: params[0] = ctx->DrawBuffer->Visual.redBits; break; case GL_RED_SCALE: params[0] = IROUND(ctx->Pixel.RedScale); break; case GL_RENDER_MODE: params[0] = ENUM_TO_INT(ctx->RenderMode); break; case GL_RESCALE_NORMAL: params[0] = BOOLEAN_TO_INT(ctx->Transform.RescaleNormals); break; case GL_RGBA_MODE: params[0] = BOOLEAN_TO_INT(ctx->DrawBuffer->Visual.rgbMode); break; case GL_SCISSOR_BOX: params[0] = ctx->Scissor.X; params[1] = ctx->Scissor.Y; params[2] = ctx->Scissor.Width; params[3] = ctx->Scissor.Height; break; case GL_SCISSOR_TEST: params[0] = BOOLEAN_TO_INT(ctx->Scissor.Enabled); break; case GL_SELECTION_BUFFER_SIZE: params[0] = ctx->Select.BufferSize; break; case GL_SHADE_MODEL: params[0] = ENUM_TO_INT(ctx->Light.ShadeModel); break; case GL_SHARED_TEXTURE_PALETTE_EXT: params[0] = BOOLEAN_TO_INT(ctx->Texture.SharedPalette); break; case GL_STENCIL_BITS: params[0] = ctx->DrawBuffer->Visual.stencilBits; break; case GL_STENCIL_CLEAR_VALUE: params[0] = ctx->Stencil.Clear; break; case GL_STENCIL_FAIL: params[0] = ENUM_TO_INT(ctx->Stencil.FailFunc[ctx->Stencil.ActiveFace]); break; case GL_STENCIL_FUNC: params[0] = ENUM_TO_INT(ctx->Stencil.Function[ctx->Stencil.ActiveFace]); break; case GL_STENCIL_PASS_DEPTH_FAIL: params[0] = ENUM_TO_INT(ctx->Stencil.ZFailFunc[ctx->Stencil.ActiveFace]); break; case GL_STENCIL_PASS_DEPTH_PASS: params[0] = ENUM_TO_INT(ctx->Stencil.ZPassFunc[ctx->Stencil.ActiveFace]); break; case GL_STENCIL_REF: params[0] = ctx->Stencil.Ref[ctx->Stencil.ActiveFace]; break; case GL_STENCIL_TEST: params[0] = BOOLEAN_TO_INT(ctx->Stencil.Enabled); break; case GL_STENCIL_VALUE_MASK: params[0] = ctx->Stencil.ValueMask[ctx->Stencil.ActiveFace]; break; case GL_STENCIL_WRITEMASK: params[0] = ctx->Stencil.WriteMask[ctx->Stencil.ActiveFace]; break; case GL_STEREO: params[0] = BOOLEAN_TO_INT(ctx->DrawBuffer->Visual.stereoMode); break; case GL_SUBPIXEL_BITS: params[0] = ctx->Const.SubPixelBits; break; case GL_TEXTURE_1D: params[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D)); break; case GL_TEXTURE_2D: params[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D)); break; case GL_TEXTURE_3D: params[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_3D)); break; case GL_TEXTURE_1D_ARRAY_EXT: CHECK_EXT1(MESA_texture_array, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_1D_ARRAY_EXT)); break; case GL_TEXTURE_2D_ARRAY_EXT: CHECK_EXT1(MESA_texture_array, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_2D_ARRAY_EXT)); break; case GL_TEXTURE_BINDING_1D: params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current1D->Name; break; case GL_TEXTURE_BINDING_2D: params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current2D->Name; break; case GL_TEXTURE_BINDING_3D: params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current3D->Name; break; case GL_TEXTURE_BINDING_1D_ARRAY_EXT: CHECK_EXT1(MESA_texture_array, "GetIntegerv"); params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current1DArray->Name; break; case GL_TEXTURE_BINDING_2D_ARRAY_EXT: CHECK_EXT1(MESA_texture_array, "GetIntegerv"); params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].Current2DArray->Name; break; case GL_TEXTURE_GEN_S: params[0] = BOOLEAN_TO_INT(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & S_BIT) ? 1 : 0)); break; case GL_TEXTURE_GEN_T: params[0] = BOOLEAN_TO_INT(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & T_BIT) ? 1 : 0)); break; case GL_TEXTURE_GEN_R: params[0] = BOOLEAN_TO_INT(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & R_BIT) ? 1 : 0)); break; case GL_TEXTURE_GEN_Q: params[0] = BOOLEAN_TO_INT(((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & Q_BIT) ? 1 : 0)); break; case GL_TEXTURE_MATRIX: { const GLfloat *matrix = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m; params[0] = IROUND(matrix[0]); params[1] = IROUND(matrix[1]); params[2] = IROUND(matrix[2]); params[3] = IROUND(matrix[3]); params[4] = IROUND(matrix[4]); params[5] = IROUND(matrix[5]); params[6] = IROUND(matrix[6]); params[7] = IROUND(matrix[7]); params[8] = IROUND(matrix[8]); params[9] = IROUND(matrix[9]); params[10] = IROUND(matrix[10]); params[11] = IROUND(matrix[11]); params[12] = IROUND(matrix[12]); params[13] = IROUND(matrix[13]); params[14] = IROUND(matrix[14]); params[15] = IROUND(matrix[15]); } break; case GL_TEXTURE_STACK_DEPTH: params[0] = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Depth + 1; break; case GL_UNPACK_ALIGNMENT: params[0] = ctx->Unpack.Alignment; break; case GL_UNPACK_LSB_FIRST: params[0] = BOOLEAN_TO_INT(ctx->Unpack.LsbFirst); break; case GL_UNPACK_ROW_LENGTH: params[0] = ctx->Unpack.RowLength; break; case GL_UNPACK_SKIP_PIXELS: params[0] = ctx->Unpack.SkipPixels; break; case GL_UNPACK_SKIP_ROWS: params[0] = ctx->Unpack.SkipRows; break; case GL_UNPACK_SWAP_BYTES: params[0] = BOOLEAN_TO_INT(ctx->Unpack.SwapBytes); break; case GL_UNPACK_SKIP_IMAGES_EXT: params[0] = ctx->Unpack.SkipImages; break; case GL_UNPACK_IMAGE_HEIGHT_EXT: params[0] = ctx->Unpack.ImageHeight; break; case GL_UNPACK_CLIENT_STORAGE_APPLE: params[0] = BOOLEAN_TO_INT(ctx->Unpack.ClientStorage); break; case GL_VIEWPORT: params[0] = ctx->Viewport.X; params[1] = ctx->Viewport.Y; params[2] = ctx->Viewport.Width; params[3] = ctx->Viewport.Height; break; case GL_ZOOM_X: params[0] = IROUND(ctx->Pixel.ZoomX); break; case GL_ZOOM_Y: params[0] = IROUND(ctx->Pixel.ZoomY); break; case GL_VERTEX_ARRAY: params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->Vertex.Enabled); break; case GL_VERTEX_ARRAY_SIZE: params[0] = ctx->Array.ArrayObj->Vertex.Size; break; case GL_VERTEX_ARRAY_TYPE: params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->Vertex.Type); break; case GL_VERTEX_ARRAY_STRIDE: params[0] = ctx->Array.ArrayObj->Vertex.Stride; break; case GL_VERTEX_ARRAY_COUNT_EXT: params[0] = 0; break; case GL_NORMAL_ARRAY: params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->Normal.Enabled); break; case GL_NORMAL_ARRAY_TYPE: params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->Normal.Type); break; case GL_NORMAL_ARRAY_STRIDE: params[0] = ctx->Array.ArrayObj->Normal.Stride; break; case GL_NORMAL_ARRAY_COUNT_EXT: params[0] = 0; break; case GL_COLOR_ARRAY: params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->Color.Enabled); break; case GL_COLOR_ARRAY_SIZE: params[0] = ctx->Array.ArrayObj->Color.Size; break; case GL_COLOR_ARRAY_TYPE: params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->Color.Type); break; case GL_COLOR_ARRAY_STRIDE: params[0] = ctx->Array.ArrayObj->Color.Stride; break; case GL_COLOR_ARRAY_COUNT_EXT: params[0] = 0; break; case GL_INDEX_ARRAY: params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->Index.Enabled); break; case GL_INDEX_ARRAY_TYPE: params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->Index.Type); break; case GL_INDEX_ARRAY_STRIDE: params[0] = ctx->Array.ArrayObj->Index.Stride; break; case GL_INDEX_ARRAY_COUNT_EXT: params[0] = 0; break; case GL_TEXTURE_COORD_ARRAY: params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Enabled); break; case GL_TEXTURE_COORD_ARRAY_SIZE: params[0] = ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Size; break; case GL_TEXTURE_COORD_ARRAY_TYPE: params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Type); break; case GL_TEXTURE_COORD_ARRAY_STRIDE: params[0] = ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Stride; break; case GL_TEXTURE_COORD_ARRAY_COUNT_EXT: params[0] = 0; break; case GL_EDGE_FLAG_ARRAY: params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->EdgeFlag.Enabled); break; case GL_EDGE_FLAG_ARRAY_STRIDE: params[0] = ctx->Array.ArrayObj->EdgeFlag.Stride; break; case GL_EDGE_FLAG_ARRAY_COUNT_EXT: params[0] = 0; break; case GL_MAX_TEXTURE_UNITS_ARB: CHECK_EXT1(ARB_multitexture, "GetIntegerv"); params[0] = ctx->Const.MaxTextureUnits; break; case GL_ACTIVE_TEXTURE_ARB: CHECK_EXT1(ARB_multitexture, "GetIntegerv"); params[0] = GL_TEXTURE0_ARB + ctx->Texture.CurrentUnit; break; case GL_CLIENT_ACTIVE_TEXTURE_ARB: CHECK_EXT1(ARB_multitexture, "GetIntegerv"); params[0] = GL_TEXTURE0_ARB + ctx->Array.ActiveTexture; break; case GL_TEXTURE_CUBE_MAP_ARB: CHECK_EXT1(ARB_texture_cube_map, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB)); break; case GL_TEXTURE_BINDING_CUBE_MAP_ARB: CHECK_EXT1(ARB_texture_cube_map, "GetIntegerv"); params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentCubeMap->Name; break; case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB: CHECK_EXT1(ARB_texture_cube_map, "GetIntegerv"); params[0] = (1 << (ctx->Const.MaxCubeTextureLevels - 1)); break; case GL_TEXTURE_COMPRESSION_HINT_ARB: params[0] = ctx->Hint.TextureCompression; break; case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB: params[0] = _mesa_get_compressed_formats(ctx, NULL, GL_FALSE); break; case GL_COMPRESSED_TEXTURE_FORMATS_ARB: { GLint formats[100]; GLuint i, n = _mesa_get_compressed_formats(ctx, formats, GL_FALSE); ASSERT(n <= 100); for (i = 0; i < n; i++) params[i] = ENUM_TO_INT(formats[i]); } break; case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT: CHECK_EXT1(EXT_compiled_vertex_array, "GetIntegerv"); params[0] = ctx->Array.LockFirst; break; case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT: CHECK_EXT1(EXT_compiled_vertex_array, "GetIntegerv"); params[0] = ctx->Array.LockCount; break; case GL_TRANSPOSE_COLOR_MATRIX_ARB: { const GLfloat *matrix = ctx->ColorMatrixStack.Top->m; params[0] = IROUND(matrix[0]); params[1] = IROUND(matrix[4]); params[2] = IROUND(matrix[8]); params[3] = IROUND(matrix[12]); params[4] = IROUND(matrix[1]); params[5] = IROUND(matrix[5]); params[6] = IROUND(matrix[9]); params[7] = IROUND(matrix[13]); params[8] = IROUND(matrix[2]); params[9] = IROUND(matrix[6]); params[10] = IROUND(matrix[10]); params[11] = IROUND(matrix[14]); params[12] = IROUND(matrix[3]); params[13] = IROUND(matrix[7]); params[14] = IROUND(matrix[11]); params[15] = IROUND(matrix[15]); } break; case GL_TRANSPOSE_MODELVIEW_MATRIX_ARB: { const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m; params[0] = IROUND(matrix[0]); params[1] = IROUND(matrix[4]); params[2] = IROUND(matrix[8]); params[3] = IROUND(matrix[12]); params[4] = IROUND(matrix[1]); params[5] = IROUND(matrix[5]); params[6] = IROUND(matrix[9]); params[7] = IROUND(matrix[13]); params[8] = IROUND(matrix[2]); params[9] = IROUND(matrix[6]); params[10] = IROUND(matrix[10]); params[11] = IROUND(matrix[14]); params[12] = IROUND(matrix[3]); params[13] = IROUND(matrix[7]); params[14] = IROUND(matrix[11]); params[15] = IROUND(matrix[15]); } break; case GL_TRANSPOSE_PROJECTION_MATRIX_ARB: { const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m; params[0] = IROUND(matrix[0]); params[1] = IROUND(matrix[4]); params[2] = IROUND(matrix[8]); params[3] = IROUND(matrix[12]); params[4] = IROUND(matrix[1]); params[5] = IROUND(matrix[5]); params[6] = IROUND(matrix[9]); params[7] = IROUND(matrix[13]); params[8] = IROUND(matrix[2]); params[9] = IROUND(matrix[6]); params[10] = IROUND(matrix[10]); params[11] = IROUND(matrix[14]); params[12] = IROUND(matrix[3]); params[13] = IROUND(matrix[7]); params[14] = IROUND(matrix[11]); params[15] = IROUND(matrix[15]); } break; case GL_TRANSPOSE_TEXTURE_MATRIX_ARB: { const GLfloat *matrix = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m; params[0] = IROUND(matrix[0]); params[1] = IROUND(matrix[4]); params[2] = IROUND(matrix[8]); params[3] = IROUND(matrix[12]); params[4] = IROUND(matrix[1]); params[5] = IROUND(matrix[5]); params[6] = IROUND(matrix[9]); params[7] = IROUND(matrix[13]); params[8] = IROUND(matrix[2]); params[9] = IROUND(matrix[6]); params[10] = IROUND(matrix[10]); params[11] = IROUND(matrix[14]); params[12] = IROUND(matrix[3]); params[13] = IROUND(matrix[7]); params[14] = IROUND(matrix[11]); params[15] = IROUND(matrix[15]); } break; case GL_COLOR_MATRIX_SGI: { const GLfloat *matrix = ctx->ColorMatrixStack.Top->m; params[0] = IROUND(matrix[0]); params[1] = IROUND(matrix[1]); params[2] = IROUND(matrix[2]); params[3] = IROUND(matrix[3]); params[4] = IROUND(matrix[4]); params[5] = IROUND(matrix[5]); params[6] = IROUND(matrix[6]); params[7] = IROUND(matrix[7]); params[8] = IROUND(matrix[8]); params[9] = IROUND(matrix[9]); params[10] = IROUND(matrix[10]); params[11] = IROUND(matrix[11]); params[12] = IROUND(matrix[12]); params[13] = IROUND(matrix[13]); params[14] = IROUND(matrix[14]); params[15] = IROUND(matrix[15]); } break; case GL_COLOR_MATRIX_STACK_DEPTH_SGI: params[0] = ctx->ColorMatrixStack.Depth + 1; break; case GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI: params[0] = MAX_COLOR_STACK_DEPTH; break; case GL_POST_COLOR_MATRIX_RED_SCALE_SGI: params[0] = IROUND(ctx->Pixel.PostColorMatrixScale[0]); break; case GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI: params[0] = IROUND(ctx->Pixel.PostColorMatrixScale[1]); break; case GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI: params[0] = IROUND(ctx->Pixel.PostColorMatrixScale[2]); break; case GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI: params[0] = IROUND(ctx->Pixel.PostColorMatrixScale[3]); break; case GL_POST_COLOR_MATRIX_RED_BIAS_SGI: params[0] = IROUND(ctx->Pixel.PostColorMatrixBias[0]); break; case GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI: params[0] = IROUND(ctx->Pixel.PostColorMatrixBias[1]); break; case GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI: params[0] = IROUND(ctx->Pixel.PostColorMatrixBias[2]); break; case GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI: params[0] = IROUND(ctx->Pixel.PostColorMatrixBias[3]); break; case GL_CONVOLUTION_1D_EXT: CHECK_EXT1(EXT_convolution, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Pixel.Convolution1DEnabled); break; case GL_CONVOLUTION_2D_EXT: CHECK_EXT1(EXT_convolution, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Pixel.Convolution2DEnabled); break; case GL_SEPARABLE_2D_EXT: CHECK_EXT1(EXT_convolution, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Pixel.Separable2DEnabled); break; case GL_POST_CONVOLUTION_RED_SCALE_EXT: CHECK_EXT1(EXT_convolution, "GetIntegerv"); params[0] = IROUND(ctx->Pixel.PostConvolutionScale[0]); break; case GL_POST_CONVOLUTION_GREEN_SCALE_EXT: CHECK_EXT1(EXT_convolution, "GetIntegerv"); params[0] = IROUND(ctx->Pixel.PostConvolutionScale[1]); break; case GL_POST_CONVOLUTION_BLUE_SCALE_EXT: CHECK_EXT1(EXT_convolution, "GetIntegerv"); params[0] = IROUND(ctx->Pixel.PostConvolutionScale[2]); break; case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT: CHECK_EXT1(EXT_convolution, "GetIntegerv"); params[0] = IROUND(ctx->Pixel.PostConvolutionScale[3]); break; case GL_POST_CONVOLUTION_RED_BIAS_EXT: CHECK_EXT1(EXT_convolution, "GetIntegerv"); params[0] = IROUND(ctx->Pixel.PostConvolutionBias[0]); break; case GL_POST_CONVOLUTION_GREEN_BIAS_EXT: CHECK_EXT1(EXT_convolution, "GetIntegerv"); params[0] = IROUND(ctx->Pixel.PostConvolutionBias[1]); break; case GL_POST_CONVOLUTION_BLUE_BIAS_EXT: CHECK_EXT1(EXT_convolution, "GetIntegerv"); params[0] = IROUND(ctx->Pixel.PostConvolutionBias[2]); break; case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT: CHECK_EXT1(EXT_convolution, "GetIntegerv"); params[0] = IROUND(ctx->Pixel.PostConvolutionBias[3]); break; case GL_HISTOGRAM: CHECK_EXT1(EXT_histogram, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Pixel.HistogramEnabled); break; case GL_MINMAX: CHECK_EXT1(EXT_histogram, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Pixel.MinMaxEnabled); break; case GL_COLOR_TABLE_SGI: CHECK_EXT1(SGI_color_table, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Pixel.ColorTableEnabled[COLORTABLE_PRECONVOLUTION]); break; case GL_POST_CONVOLUTION_COLOR_TABLE_SGI: CHECK_EXT1(SGI_color_table, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCONVOLUTION]); break; case GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI: CHECK_EXT1(SGI_color_table, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Pixel.ColorTableEnabled[COLORTABLE_POSTCOLORMATRIX]); break; case GL_TEXTURE_COLOR_TABLE_SGI: CHECK_EXT1(SGI_texture_color_table, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Texture.Unit[ctx->Texture.CurrentUnit].ColorTableEnabled); break; case GL_COLOR_SUM_EXT: CHECK_EXT2(EXT_secondary_color, ARB_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Fog.ColorSumEnabled); break; case GL_CURRENT_SECONDARY_COLOR_EXT: CHECK_EXT1(EXT_secondary_color, "GetIntegerv"); { FLUSH_CURRENT(ctx, 0); params[0] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][0]); params[1] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][1]); params[2] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][2]); params[3] = FLOAT_TO_INT(ctx->Current.Attrib[VERT_ATTRIB_COLOR1][3]); } break; case GL_SECONDARY_COLOR_ARRAY_EXT: CHECK_EXT1(EXT_secondary_color, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->SecondaryColor.Enabled); break; case GL_SECONDARY_COLOR_ARRAY_TYPE_EXT: CHECK_EXT1(EXT_secondary_color, "GetIntegerv"); params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->SecondaryColor.Type); break; case GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT: CHECK_EXT1(EXT_secondary_color, "GetIntegerv"); params[0] = ctx->Array.ArrayObj->SecondaryColor.Stride; break; case GL_SECONDARY_COLOR_ARRAY_SIZE_EXT: CHECK_EXT1(EXT_secondary_color, "GetIntegerv"); params[0] = ctx->Array.ArrayObj->SecondaryColor.Size; break; case GL_CURRENT_FOG_COORDINATE_EXT: CHECK_EXT1(EXT_fog_coord, "GetIntegerv"); { FLUSH_CURRENT(ctx, 0); params[0] = IROUND(ctx->Current.Attrib[VERT_ATTRIB_FOG][0]); } break; case GL_FOG_COORDINATE_ARRAY_EXT: CHECK_EXT1(EXT_fog_coord, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->FogCoord.Enabled); break; case GL_FOG_COORDINATE_ARRAY_TYPE_EXT: CHECK_EXT1(EXT_fog_coord, "GetIntegerv"); params[0] = ENUM_TO_INT(ctx->Array.ArrayObj->FogCoord.Type); break; case GL_FOG_COORDINATE_ARRAY_STRIDE_EXT: CHECK_EXT1(EXT_fog_coord, "GetIntegerv"); params[0] = ctx->Array.ArrayObj->FogCoord.Stride; break; case GL_FOG_COORDINATE_SOURCE_EXT: CHECK_EXT1(EXT_fog_coord, "GetIntegerv"); params[0] = ENUM_TO_INT(ctx->Fog.FogCoordinateSource); break; case GL_MAX_TEXTURE_LOD_BIAS_EXT: CHECK_EXT1(EXT_texture_lod_bias, "GetIntegerv"); params[0] = IROUND(ctx->Const.MaxTextureLodBias); break; case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: CHECK_EXT1(EXT_texture_filter_anisotropic, "GetIntegerv"); params[0] = IROUND(ctx->Const.MaxTextureMaxAnisotropy); break; case GL_MULTISAMPLE_ARB: CHECK_EXT1(ARB_multisample, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Multisample.Enabled); break; case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB: CHECK_EXT1(ARB_multisample, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Multisample.SampleAlphaToCoverage); break; case GL_SAMPLE_ALPHA_TO_ONE_ARB: CHECK_EXT1(ARB_multisample, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Multisample.SampleAlphaToOne); break; case GL_SAMPLE_COVERAGE_ARB: CHECK_EXT1(ARB_multisample, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Multisample.SampleCoverage); break; case GL_SAMPLE_COVERAGE_VALUE_ARB: CHECK_EXT1(ARB_multisample, "GetIntegerv"); params[0] = IROUND(ctx->Multisample.SampleCoverageValue); break; case GL_SAMPLE_COVERAGE_INVERT_ARB: CHECK_EXT1(ARB_multisample, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Multisample.SampleCoverageInvert); break; case GL_SAMPLE_BUFFERS_ARB: CHECK_EXT1(ARB_multisample, "GetIntegerv"); params[0] = ctx->DrawBuffer->Visual.sampleBuffers; break; case GL_SAMPLES_ARB: CHECK_EXT1(ARB_multisample, "GetIntegerv"); params[0] = ctx->DrawBuffer->Visual.samples; break; case GL_RASTER_POSITION_UNCLIPPED_IBM: CHECK_EXT1(IBM_rasterpos_clip, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Transform.RasterPositionUnclipped); break; case GL_POINT_SPRITE_NV: CHECK_EXT2(NV_point_sprite, ARB_point_sprite, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Point.PointSprite); break; case GL_POINT_SPRITE_R_MODE_NV: CHECK_EXT1(NV_point_sprite, "GetIntegerv"); params[0] = ENUM_TO_INT(ctx->Point.SpriteRMode); break; case GL_POINT_SPRITE_COORD_ORIGIN: CHECK_EXT2(NV_point_sprite, ARB_point_sprite, "GetIntegerv"); params[0] = ENUM_TO_INT(ctx->Point.SpriteOrigin); break; case GL_GENERATE_MIPMAP_HINT_SGIS: CHECK_EXT1(SGIS_generate_mipmap, "GetIntegerv"); params[0] = ENUM_TO_INT(ctx->Hint.GenerateMipmap); break; case GL_VERTEX_PROGRAM_BINDING_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = (ctx->VertexProgram.Current ? ctx->VertexProgram.Current->Base.Id : 0); break; case GL_VERTEX_ATTRIB_ARRAY0_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[0].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY1_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[1].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY2_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[2].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY3_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[3].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY4_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[4].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY5_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[5].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY6_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[6].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY7_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[7].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY8_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[8].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY9_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[9].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY10_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[10].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY11_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[11].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY12_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[12].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY13_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[13].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY14_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[14].Enabled); break; case GL_VERTEX_ATTRIB_ARRAY15_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Array.ArrayObj->VertexAttrib[15].Enabled); break; case GL_MAP1_VERTEX_ATTRIB0_4_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[0]); break; case GL_MAP1_VERTEX_ATTRIB1_4_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[1]); break; case GL_MAP1_VERTEX_ATTRIB2_4_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[2]); break; case GL_MAP1_VERTEX_ATTRIB3_4_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[3]); break; case GL_MAP1_VERTEX_ATTRIB4_4_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[4]); break; case GL_MAP1_VERTEX_ATTRIB5_4_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[5]); break; case GL_MAP1_VERTEX_ATTRIB6_4_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[6]); break; case GL_MAP1_VERTEX_ATTRIB7_4_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[7]); break; case GL_MAP1_VERTEX_ATTRIB8_4_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[8]); break; case GL_MAP1_VERTEX_ATTRIB9_4_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[9]); break; case GL_MAP1_VERTEX_ATTRIB10_4_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[10]); break; case GL_MAP1_VERTEX_ATTRIB11_4_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[11]); break; case GL_MAP1_VERTEX_ATTRIB12_4_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[12]); break; case GL_MAP1_VERTEX_ATTRIB13_4_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[13]); break; case GL_MAP1_VERTEX_ATTRIB14_4_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[14]); break; case GL_MAP1_VERTEX_ATTRIB15_4_NV: CHECK_EXT1(NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Eval.Map1Attrib[15]); break; case GL_FRAGMENT_PROGRAM_NV: CHECK_EXT1(NV_fragment_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->FragmentProgram.Enabled); break; case GL_FRAGMENT_PROGRAM_BINDING_NV: CHECK_EXT1(NV_fragment_program, "GetIntegerv"); params[0] = ctx->FragmentProgram.Current ? ctx->FragmentProgram.Current->Base.Id : 0; break; case GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV: CHECK_EXT1(NV_fragment_program, "GetIntegerv"); params[0] = MAX_NV_FRAGMENT_PROGRAM_PARAMS; break; case GL_TEXTURE_RECTANGLE_NV: CHECK_EXT1(NV_texture_rectangle, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(_mesa_IsEnabled(GL_TEXTURE_RECTANGLE_NV)); break; case GL_TEXTURE_BINDING_RECTANGLE_NV: CHECK_EXT1(NV_texture_rectangle, "GetIntegerv"); params[0] = ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentRect->Name; break; case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV: CHECK_EXT1(NV_texture_rectangle, "GetIntegerv"); params[0] = ctx->Const.MaxTextureRectSize; break; case GL_STENCIL_TEST_TWO_SIDE_EXT: CHECK_EXT1(EXT_stencil_two_side, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Stencil.TestTwoSide); break; case GL_ACTIVE_STENCIL_FACE_EXT: CHECK_EXT1(EXT_stencil_two_side, "GetIntegerv"); params[0] = ENUM_TO_INT(ctx->Stencil.ActiveFace ? GL_BACK : GL_FRONT); break; case GL_MAX_SHININESS_NV: CHECK_EXT1(NV_light_max_exponent, "GetIntegerv"); params[0] = IROUND(ctx->Const.MaxShininess); break; case GL_MAX_SPOT_EXPONENT_NV: CHECK_EXT1(NV_light_max_exponent, "GetIntegerv"); params[0] = IROUND(ctx->Const.MaxSpotExponent); break; case GL_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv"); params[0] = ctx->Array.ArrayBufferObj->Name; break; case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv"); params[0] = ctx->Array.ArrayObj->Vertex.BufferObj->Name; break; case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv"); params[0] = ctx->Array.ArrayObj->Normal.BufferObj->Name; break; case GL_COLOR_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv"); params[0] = ctx->Array.ArrayObj->Color.BufferObj->Name; break; case GL_INDEX_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv"); params[0] = ctx->Array.ArrayObj->Index.BufferObj->Name; break; case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv"); params[0] = ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].BufferObj->Name; break; case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv"); params[0] = ctx->Array.ArrayObj->EdgeFlag.BufferObj->Name; break; case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv"); params[0] = ctx->Array.ArrayObj->SecondaryColor.BufferObj->Name; break; case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv"); params[0] = ctx->Array.ArrayObj->FogCoord.BufferObj->Name; break; case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB: CHECK_EXT1(ARB_vertex_buffer_object, "GetIntegerv"); params[0] = ctx->Array.ElementArrayBufferObj->Name; break; case GL_PIXEL_PACK_BUFFER_BINDING_EXT: CHECK_EXT1(EXT_pixel_buffer_object, "GetIntegerv"); params[0] = ctx->Pack.BufferObj->Name; break; case GL_PIXEL_UNPACK_BUFFER_BINDING_EXT: CHECK_EXT1(EXT_pixel_buffer_object, "GetIntegerv"); params[0] = ctx->Unpack.BufferObj->Name; break; case GL_VERTEX_PROGRAM_ARB: CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->VertexProgram.Enabled); break; case GL_VERTEX_PROGRAM_POINT_SIZE_ARB: CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->VertexProgram.PointSizeEnabled); break; case GL_VERTEX_PROGRAM_TWO_SIDE_ARB: CHECK_EXT2(ARB_vertex_program, NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->VertexProgram.TwoSideEnabled); break; case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB: CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetIntegerv"); params[0] = ctx->Const.MaxProgramMatrixStackDepth; break; case GL_MAX_PROGRAM_MATRICES_ARB: CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetIntegerv"); params[0] = ctx->Const.MaxProgramMatrices; break; case GL_CURRENT_MATRIX_STACK_DEPTH_ARB: CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_vertex_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->CurrentStack->Depth + 1); break; case GL_CURRENT_MATRIX_ARB: CHECK_EXT3(ARB_vertex_program, ARB_fragment_program, NV_fragment_program, "GetIntegerv"); { const GLfloat *matrix = ctx->CurrentStack->Top->m; params[0] = IROUND(matrix[0]); params[1] = IROUND(matrix[1]); params[2] = IROUND(matrix[2]); params[3] = IROUND(matrix[3]); params[4] = IROUND(matrix[4]); params[5] = IROUND(matrix[5]); params[6] = IROUND(matrix[6]); params[7] = IROUND(matrix[7]); params[8] = IROUND(matrix[8]); params[9] = IROUND(matrix[9]); params[10] = IROUND(matrix[10]); params[11] = IROUND(matrix[11]); params[12] = IROUND(matrix[12]); params[13] = IROUND(matrix[13]); params[14] = IROUND(matrix[14]); params[15] = IROUND(matrix[15]); } break; case GL_TRANSPOSE_CURRENT_MATRIX_ARB: CHECK_EXT2(ARB_vertex_program, ARB_fragment_program, "GetIntegerv"); { const GLfloat *matrix = ctx->CurrentStack->Top->m; params[0] = IROUND(matrix[0]); params[1] = IROUND(matrix[4]); params[2] = IROUND(matrix[8]); params[3] = IROUND(matrix[12]); params[4] = IROUND(matrix[1]); params[5] = IROUND(matrix[5]); params[6] = IROUND(matrix[9]); params[7] = IROUND(matrix[13]); params[8] = IROUND(matrix[2]); params[9] = IROUND(matrix[6]); params[10] = IROUND(matrix[10]); params[11] = IROUND(matrix[14]); params[12] = IROUND(matrix[3]); params[13] = IROUND(matrix[7]); params[14] = IROUND(matrix[11]); params[15] = IROUND(matrix[15]); } break; case GL_MAX_VERTEX_ATTRIBS_ARB: CHECK_EXT1(ARB_vertex_program, "GetIntegerv"); params[0] = ctx->Const.VertexProgram.MaxAttribs; break; case GL_PROGRAM_ERROR_POSITION_ARB: CHECK_EXT4(NV_vertex_program, ARB_vertex_program, NV_fragment_program, ARB_fragment_program, "GetIntegerv"); params[0] = ctx->Program.ErrorPos; break; case GL_FRAGMENT_PROGRAM_ARB: CHECK_EXT1(ARB_fragment_program, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->FragmentProgram.Enabled); break; case GL_MAX_TEXTURE_COORDS_ARB: CHECK_EXT2(ARB_fragment_program, NV_fragment_program, "GetIntegerv"); params[0] = ctx->Const.MaxTextureCoordUnits; break; case GL_MAX_TEXTURE_IMAGE_UNITS_ARB: CHECK_EXT2(ARB_fragment_program, NV_fragment_program, "GetIntegerv"); params[0] = ctx->Const.MaxTextureImageUnits; break; case GL_DEPTH_BOUNDS_TEST_EXT: CHECK_EXT1(EXT_depth_bounds_test, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->Depth.BoundsTest); break; case GL_DEPTH_BOUNDS_EXT: CHECK_EXT1(EXT_depth_bounds_test, "GetIntegerv"); params[0] = IROUND(ctx->Depth.BoundsMin); params[1] = IROUND(ctx->Depth.BoundsMax); break; case GL_FRAGMENT_PROGRAM_CALLBACK_MESA: CHECK_EXT1(MESA_program_debug, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->FragmentProgram.CallbackEnabled); break; case GL_VERTEX_PROGRAM_CALLBACK_MESA: CHECK_EXT1(MESA_program_debug, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(ctx->VertexProgram.CallbackEnabled); break; case GL_FRAGMENT_PROGRAM_POSITION_MESA: CHECK_EXT1(MESA_program_debug, "GetIntegerv"); params[0] = ctx->FragmentProgram.CurrentPosition; break; case GL_VERTEX_PROGRAM_POSITION_MESA: CHECK_EXT1(MESA_program_debug, "GetIntegerv"); params[0] = ctx->VertexProgram.CurrentPosition; break; case GL_MAX_DRAW_BUFFERS_ARB: CHECK_EXT1(ARB_draw_buffers, "GetIntegerv"); params[0] = ctx->Const.MaxDrawBuffers; break; case GL_DRAW_BUFFER0_ARB: CHECK_EXT1(ARB_draw_buffers, "GetIntegerv"); params[0] = ENUM_TO_INT(ctx->DrawBuffer->ColorDrawBuffer[0]); break; case GL_DRAW_BUFFER1_ARB: CHECK_EXT1(ARB_draw_buffers, "GetIntegerv"); { GLenum buffer; if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) { _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)"); return; } buffer = ctx->DrawBuffer->ColorDrawBuffer[1]; params[0] = ENUM_TO_INT(buffer); } break; case GL_DRAW_BUFFER2_ARB: CHECK_EXT1(ARB_draw_buffers, "GetIntegerv"); { GLenum buffer; if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) { _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)"); return; } buffer = ctx->DrawBuffer->ColorDrawBuffer[2]; params[0] = ENUM_TO_INT(buffer); } break; case GL_DRAW_BUFFER3_ARB: CHECK_EXT1(ARB_draw_buffers, "GetIntegerv"); { GLenum buffer; if (pname - GL_DRAW_BUFFER0_ARB >= ctx->Const.MaxDrawBuffers) { _mesa_error(ctx, GL_INVALID_ENUM, "glGet(GL_DRAW_BUFFERx_ARB)"); return; } buffer = ctx->DrawBuffer->ColorDrawBuffer[3]; params[0] = ENUM_TO_INT(buffer); } break; case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES: CHECK_EXT1(OES_read_format, "GetIntegerv"); params[0] = ctx->Const.ColorReadType; break; case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES: CHECK_EXT1(OES_read_format, "GetIntegerv"); params[0] = ctx->Const.ColorReadFormat; break; case GL_NUM_FRAGMENT_REGISTERS_ATI: CHECK_EXT1(ATI_fragment_shader, "GetIntegerv"); params[0] = 6; break; case GL_NUM_FRAGMENT_CONSTANTS_ATI: CHECK_EXT1(ATI_fragment_shader, "GetIntegerv"); params[0] = 8; break; case GL_NUM_PASSES_ATI: CHECK_EXT1(ATI_fragment_shader, "GetIntegerv"); params[0] = 2; break; case GL_NUM_INSTRUCTIONS_PER_PASS_ATI: CHECK_EXT1(ATI_fragment_shader, "GetIntegerv"); params[0] = 8; break; case GL_NUM_INSTRUCTIONS_TOTAL_ATI: CHECK_EXT1(ATI_fragment_shader, "GetIntegerv"); params[0] = 16; break; case GL_COLOR_ALPHA_PAIRING_ATI: CHECK_EXT1(ATI_fragment_shader, "GetIntegerv"); params[0] = BOOLEAN_TO_INT(GL_TRUE); break; case GL_NUM_LOOPBACK_COMPONENTS_ATI: CHECK_EXT1(ATI_fragment_shader, "GetIntegerv"); params[0] = 3; break; case GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI: CHECK_EXT1(ATI_fragment_shader, "GetIntegerv"); params[0] = 3; break; case GL_STENCIL_BACK_FUNC: params[0] = ENUM_TO_INT(ctx->Stencil.Function[1]); break; case GL_STENCIL_BACK_VALUE_MASK: params[0] = ctx->Stencil.ValueMask[1]; break; case GL_STENCIL_BACK_WRITEMASK: params[0] = ctx->Stencil.WriteMask[1]; break; case GL_STENCIL_BACK_REF: params[0] = ctx->Stencil.Ref[1]; break; case GL_STENCIL_BACK_FAIL: params[0] = ENUM_TO_INT(ctx->Stencil.FailFunc[1]); break; case GL_STENCIL_BACK_PASS_DEPTH_FAIL: params[0] = ENUM_TO_INT(ctx->Stencil.ZFailFunc[1]); break; case GL_STENCIL_BACK_PASS_DEPTH_PASS: params[0] = ENUM_TO_INT(ctx->Stencil.ZPassFunc[1]); break; case GL_FRAMEBUFFER_BINDING_EXT: CHECK_EXT1(EXT_framebuffer_object, "GetIntegerv"); params[0] = ctx->DrawBuffer->Name; break; case GL_RENDERBUFFER_BINDING_EXT: CHECK_EXT1(EXT_framebuffer_object, "GetIntegerv"); params[0] = ctx->CurrentRenderbuffer ? ctx->CurrentRenderbuffer->Name : 0; break; case GL_MAX_COLOR_ATTACHMENTS_EXT: CHECK_EXT1(EXT_framebuffer_object, "GetIntegerv"); params[0] = ctx->Const.MaxColorAttachments; break; case GL_MAX_RENDERBUFFER_SIZE_EXT: CHECK_EXT1(EXT_framebuffer_object, "GetIntegerv"); params[0] = ctx->Const.MaxRenderbufferSize; break; case GL_READ_FRAMEBUFFER_BINDING_EXT: CHECK_EXT1(EXT_framebuffer_blit, "GetIntegerv"); params[0] = ctx->ReadBuffer->Name; break; case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB: CHECK_EXT1(ARB_fragment_shader, "GetIntegerv"); params[0] = ctx->Const.FragmentProgram.MaxUniformComponents; break; case GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB: CHECK_EXT1(ARB_fragment_shader, "GetIntegerv"); params[0] = ENUM_TO_INT(ctx->Hint.FragmentShaderDerivative); break; case GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB: CHECK_EXT1(ARB_vertex_shader, "GetIntegerv"); params[0] = ctx->Const.VertexProgram.MaxUniformComponents; break; case GL_MAX_VARYING_FLOATS_ARB: CHECK_EXT1(ARB_vertex_shader, "GetIntegerv"); params[0] = ctx->Const.MaxVarying * 4; break; case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB: CHECK_EXT1(ARB_vertex_shader, "GetIntegerv"); params[0] = ctx->Const.MaxVertexTextureImageUnits; break; case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB: CHECK_EXT1(ARB_vertex_shader, "GetIntegerv"); params[0] = MAX_COMBINED_TEXTURE_IMAGE_UNITS; break; case GL_CURRENT_PROGRAM: CHECK_EXT1(ARB_shader_objects, "GetIntegerv"); params[0] = ctx->Shader.CurrentProgram ? ctx->Shader.CurrentProgram->Name : 0; break; case GL_MAX_SAMPLES: CHECK_EXT1(ARB_framebuffer_object, "GetIntegerv"); params[0] = ctx->Const.MaxSamples; break; default: _mesa_error(ctx, GL_INVALID_ENUM, "glGetIntegerv(pname=0x%x)", pname); } } void GLAPIENTRY _mesa_GetDoublev( GLenum pname, GLdouble *params ) { const GLfloat magic = -1234.5F; GLfloat values[16]; GLuint i; if (!params) return; /* Init temp array to magic numbers so we can figure out how many values * are returned by the GetFloatv() call. */ for (i = 0; i < 16; i++) values[i] = magic; _mesa_GetFloatv(pname, values); for (i = 0; i < 16 && values[i] != magic; i++) params[i] = (GLdouble) values[i]; }