Anonymous edits have been disabled on the wiki. If you want to contribute please login or create an account.

Difference between revisions of "Template:API"

From PCGamingWiki, the wiki about fixing PC games
(updated tickcross handling for settings)
m (removed support for the old 64-bit executable property)
(23 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<includeonly><div class="container-pcgwikitable"><table class="pcgwikitable template-infotable" id="table-api">{{#vardefine:section|Other_information}}
+
<includeonly>{{#vardefine:section|Other_information}}{{#if:{{{direct3d versions|}}}{{{directdraw versions|}}}{{{wing|}}}{{{opengl versions|}}}{{{glide versions|}}}{{{software mode|}}}{{{mantle support|}}}{{{metal support|}}}{{{vulkan versions|}}}{{#var:DOS}}{{#var:PC booter}}{{{shader model versions|}}}{{#var:Windows 3.x}}{{#var:Windows native}}{{{windows exe notes|}}}{{#var:OS X}}{{{macos app notes|}}}{{#var:Linux native}}{{{linux executable notes|}}}|
 +
{{#if:{{{direct3d versions|}}}{{{directdraw versions|}}}{{{wing|}}}{{{opengl versions|}}}{{{glide versions|}}}{{{software mode|}}}{{{mantle support|}}}{{{metal support|}}}{{{vulkan versions|}}}{{#var:DOS}}{{#var:PC booter}}{{{shader model versions|}}}
 +
|<div class="container-pcgwikitable"><table class="pcgwikitable template-infotable" id="table-api">
 
<tr class="template-infotable-head table-api-head-row">
 
<tr class="template-infotable-head table-api-head-row">
 
<th scope="col" style="width: 230px;" class="table-api-head-parameter">Technical specs</th>
 
<th scope="col" style="width: 230px;" class="table-api-head-parameter">Technical specs</th>
Line 9: Line 11:
 
{{#ifeq: {{lc:{{{direct3d versions|}}}}} | false ||
 
{{#ifeq: {{lc:{{{direct3d versions|}}}}} | false ||
 
<tr class="template-infotable-body table-api-body-row">
 
<tr class="template-infotable-body table-api-body-row">
<th scope="row" class="table-api-body-parameter">Direct3D</th>
+
<th scope="row" class="table-api-body-parameter"><abbr title="Only supported on Windows">Direct3D</abbr></th>
 
<td class="table-api-body-support">{{#switch:{{lc:{{{direct3d versions|}}}}}
 
<td class="table-api-body-support">{{#switch:{{lc:{{{direct3d versions|}}}}}
 
|true
 
|true
Line 22: Line 24:
 
{{#ifeq: {{lc:{{{directdraw versions|}}}}} | false ||
 
{{#ifeq: {{lc:{{{directdraw versions|}}}}} | false ||
 
<tr class="template-infotable-body table-api-body-row">
 
<tr class="template-infotable-body table-api-body-row">
<th scope="row" class="table-api-body-parameter">DirectDraw</th>
+
<th scope="row" class="table-api-body-parameter"><abbr title="Only supported on Windows">DirectDraw</abbr></th>
 
<td class="table-api-body-support">{{#switch:{{lc:{{{directdraw versions|}}}}}
 
<td class="table-api-body-support">{{#switch:{{lc:{{{directdraw versions|}}}}}
 
|true
 
|true
Line 30: Line 32:
 
<td class="table-api-body-notes">{{{directdraw notes|}}}</td>
 
<td class="table-api-body-notes">{{{directdraw notes|}}}</td>
 
</tr>
 
</tr>
 +
}}
 +
}}
 +
{{#if: {{{wing|}}} |
 +
{{#if: {{#var:Windows native}}{{#var:Windows 3.x}} |
 +
{{#ifeq: {{lc:{{{wing|}}}}} | false ||
 +
{{#ifeq: {{lc:{{{wing|}}}}} | unknown ||
 +
<tr class="template-infotable-body table-api-body-row">
 +
<th scope="row" class="table-api-body-parameter">WinG</th>
 +
<td class="table-api-body-support">{{Tickcross|{{{wing|}}}|WinG|{{{wing notes|}}}}}</td>
 +
<td class="table-api-body-notes">{{{wing notes|}}}</td>
 +
</tr>
 +
}}
 +
}}
 
}}
 
}}
 
}}
 
}}
Line 51: Line 66:
 
<td class="table-api-body-support">{{#switch:{{lc:{{{glide versions|}}}}}
 
<td class="table-api-body-support">{{#switch:{{lc:{{{glide versions|}}}}}
 
|true
 
|true
|unknown={{Tickcross|{{{glide versions|}}}|Glide versions|unknown}}
+
|unknown
|hackable={{Tickcross|hackable|Glide versions|{{{glide notes|}}}}}
+
|hackable={{Tickcross|{{{glide versions|}}}|Glide versions|{{{glide notes|}}}}}
|#default={{#arraymaptemplate:{{{glide versions}}}|API/switch Glide|,|,&#32;}} }}</td>
+
|#default={{{glide versions|}}}{{#arraymap:{{{glide versions|}}}|,|var|[[Glide versions::var| ]]|&#32;}} }}</td>
 
<td class="table-api-body-notes">{{{glide notes|}}}</td>
 
<td class="table-api-body-notes">{{{glide notes|}}}</td>
 
</tr>
 
</tr>
Line 68: Line 83:
 
}}
 
}}
 
}}
 
}}
 +
{{#ifeq:{{{software mode|}}}|true|{{#if:{{#var:Windows 3.x}}{{#var:Windows native}}{{#var:Mac OS}}{{#var:OS X native}}{{#var:Linux native}}||[[Category:Invalid template usage (API)]]}}}}
 
}}
 
}}
 
{{#if: {{{mantle support|}}} |
 
{{#if: {{{mantle support|}}} |
Line 107: Line 123:
 
}}
 
}}
 
}}
 
}}
{{#if: {{{dos modes|}}} |
+
{{#if: {{#var:DOS}}{{#var:PC booter}} |
{{#if: {{#var:DOS}}{{#var:Booter}} |
+
<tr class="template-infotable-body table-api-body-row">
{{#ifeq: {{lc:{{{dos modes|}}}}} | unknown ||
+
<th scope="row" class="table-api-body-parameter"><abbr title="Only applies to DOS and/or PC booter versions">DOS video modes</abbr></th>
<tr class="template-infotable-body table-api-body-row">
+
<td class="table-api-body-support">{{#if: {{{dos modes|}}} | {{#ifeq: {{{dos modes|}}} | unknown | {{tickcross|unknown|DOS video modes}} | {{#arraymaptemplate:{{{dos modes}}}|API/switch DOS|,|,&#32;}} }} | {{tickcross|unknown|DOS video modes}} }}</td></td>
<th scope="row" class="table-api-body-parameter"><abbr title="Only applies to DOS version or DOSBox">DOS video modes</abbr></th>
+
<td class="table-api-body-notes">{{{dos modes notes|}}}</td>
<td class="table-api-body-support">{{#arraymaptemplate:{{{dos modes}}}|API/switch DOS|,|,&#32;}}</td>
+
</tr>
<td class="table-api-body-notes">{{{dos modes notes|}}}</td>
 
</tr>
 
}}
 
}}
 
 
}}
 
}}
 
{{#if: {{{shader model versions|}}} |
 
{{#if: {{{shader model versions|}}} |
Line 133: Line 145:
 
}}
 
}}
 
}}
 
}}
<tr class="template-infotable-body table-api-body-row">
+
</table></div>}}{{#if:{{#var:Windows 3.x native}}{{#var:Windows native}}{{{windows exe notes|}}}{{#var:OS X}}{{{macos app notes|}}}{{#var:Linux native}}{{{linux executable notes|}}}|<div class="container-pcgwikitable"><table class="pcgwikitable template-infotable">
<th scope="row" class="table-api-body-parameter"><abbr title="Compiled for 64-bit">64-bit executable</abbr></th>
+
<tr class="template-infotable-head table-api-head-row"><!--
<td class="table-api-body-support">{{Tickcross|{{{64-bit executable|}}}|64-bit executable|{{{64-bit executable notes|}}}}}</td>
+
-->{{#switch:{{{mac os x powerpc app|}}}|true|hackable={{#vardefine:powerpc app|true}}}}<!--
<td class="table-api-body-notes">{{{64-bit executable notes|}}}</td>
+
-->{{#switch:{{{linux powerpc app|}}}|true|hackable={{#vardefine:powerpc app|true}}}}
 +
<th scope="col" style="width: 230px;" class="table-api-head-parameter">Executable</th><!--
 +
-->{{#if:{{#var:powerpc app}}|<th scope="col" style="width: 50px;" class="table-api-head-support"><abbr title="PowerPC">PPC</abbr></th>}}<!--
 +
-->{{#if:{{#var:Windows 3.x native}}|<th scope="col" style="width: 50px;" class="table-api-head-support">16-bit</th>}}
 +
<th scope="col" style="width: 50px;" class="table-api-head-support">32-bit</th>
 +
<th scope="col" style="width: 50px;" class="table-api-head-support">64-bit</th>
 +
<th scope="col" style="width: {{#if:{{#var:powerpc app}} | 440px | 490px }};" class="table-api-head-notes">Notes</th>
 
</tr>
 
</tr>
</table>{{#if: {{{vulkan support|}}} |[[Category:Invalid template usage (API)]]}}</div></includeonly><noinclude>{{Documentation}}</noinclude>
+
{{#if:{{#var:Windows 3.x native}}{{#var:Windows native}}{{{windows exe notes|}}}|
 +
<tr class="template-infotable-body table-api-body-row">
 +
<th scope="row" class="table-api-body-parameter">Windows</th><!--
 +
-->{{#if:{{#var:powerpc app}}|<td class="table-api-body-support">{{Tickcross-na|n/a}}</td>}}<!--
 +
-->{{#if:{{#var:Windows 3.x native}}|<td class="table-api-body-support">{{Tickcross|true}}</td>}}
 +
<td class="table-api-body-support">{{Tickcross|{{{windows 32-bit exe|}}}|Windows 32-bit executable|{{{windows exe notes|}}}}}</td>
 +
<td class="table-api-body-support">{{Tickcross|{{{windows 64-bit exe|}}}|Windows 64-bit executable|{{{windows exe notes|}}}}}</td>
 +
<td class="table-api-body-notes">{{#if: {{{windows exe notes|}}}|{{{windows exe notes|}}}|{{#if:{{#var:Windows 3.x native}}|''Windows 3.x version might be playable on a 64-bit OS using {{#if:{{#var:ScummVM}}|[[ScummVM]]|[https://github.com/otya128/winevdm winevdm]}}.''}}}}</td>
 +
</tr>
 +
{{#ifeq:{{{windows 32-bit exe|}}}{{{windows 64-bit exe|}}}|falsetrue|{{#vardefine:Windows 64-bit only|true}}}}
 +
{{#if:{{#var:Windows native}}|{{#ifeq:{{{windows 32-bit exe|}}}{{{windows 64-bit exe|}}}|falsefalse|[[Category:Invalid template usage (API)]]}}}}
 +
}}
 +
{{#if:{{#var:OS X}}{{{macos app notes|}}}|
 +
<tr class="template-infotable-body table-api-body-row">
 +
<th scope="row" class="table-api-body-parameter">macOS (OS X)</th><!--
 +
-->{{#if:{{#var:powerpc app}}|<td class="table-api-body-support">{{Tickcross|{{{mac os x powerpc app|}}}|Mac OS X PowerPC app|{{{macos app notes|}}}}}</td><!--
 +
-->{{#ifeq:{{{mac os x powerpc app|}}}{{{macos intel 32-bit app|}}}{{{macos 32-bit app|}}}{{{macos intel 64-bit app|}}}{{{macos 64-bit app|}}}|truefalsefalse|{{#vardefine:Warnings|true}}}}}}<!--
 +
-->{{#if:{{#var:Windows 3.x native}}|<td class="table-api-body-support">{{Tickcross-na|n/a}}</td>}}
 +
<td class="table-api-body-support">{{Tickcross|{{{macos intel 32-bit app|{{{macos 32-bit app|}}}}}}|macOS Intel 32-bit app|{{{macos app notes|}}}}}</td>
 +
<td class="table-api-body-support">{{Tickcross|{{{macos intel 64-bit app|{{{macos 64-bit app|}}}}}}|macOS Intel 64-bit app|{{{macos app notes|}}}}}</td>
 +
<td class="table-api-body-notes">{{#ifeq:{{{macos intel 32-bit app|{{{macos 32-bit app|}}}}}}{{{macos intel 64-bit app|{{{macos 64-bit app|}}}}}}|truefalse|{{#if:{{{macos app notes|}}}|{{{macos app notes|}}}|''This 32-bit-only macOS game '''does not work''' on macOS Catalina (10.15) or later.''}}|{{{macos app notes|}}}}}</td>
 +
</tr>
 +
{{#switch:{{{macos intel 32-bit app|{{{macos 32-bit app|}}}}}}{{{macos intel 64-bit app|{{{macos 64-bit app|}}}}}}
 +
|falsetrue={{#vardefine:OS X 64-bit only|true}}
 +
|truefalse
 +
|truehackable={{#vardefine:Warnings|true}}
 +
|falsefalse={{#ifeq:{{{mac os x powerpc app|}}}|true||[[Category:Invalid template usage (API)]]}}
 +
}}
 +
}}
 +
{{#if:{{#var:Linux native}}{{{linux executable notes|}}}|
 +
<tr class="template-infotable-body table-api-body-row">
 +
<th scope="row" class="table-api-body-parameter">Linux</th><!--
 +
-->{{#if:{{#var:powerpc app}}|<td class="table-api-body-support">{{Tickcross|{{{linux powerpc app|}}}|Linux PowerPC app|{{{linux executable notes|}}}}}</td>}}<!--
 +
-->{{#if:{{#var:Windows 3.x native}}|<td class="table-api-body-support">{{Tickcross-na|n/a}}</td>}}
 +
<td class="table-api-body-support">{{Tickcross|{{{linux 32-bit executable|}}}|Linux 32-bit executable|{{{linux executable notes|}}}}}</td>
 +
<td class="table-api-body-support">{{Tickcross|{{{linux 64-bit executable|}}}|Linux 64-bit executable|{{{linux executable notes|}}}}}</td>
 +
<td class="table-api-body-notes">{{{linux executable notes|}}}</td>
 +
</tr>
 +
{{#ifeq:{{{linux 32-bit executable|}}}{{{linux 64-bit executable|}}}|falsetrue|{{#vardefine:Linux 64-bit only|true}}}}
 +
{{#ifeq:{{{linux 32-bit executable|}}}{{{linux 64-bit executable|}}}|falsefalse|{{#ifeq:{{{linux powerpc app|}}}|true||[[Category:Invalid template usage (API)]]}}}}
 +
}}
 +
</table></div> }}|{{ii}} ''No API information; you can <span class="plainlinks">[{{fullurl:{{FULLPAGENAME}}|action=edit}} edit this page]</span> to add it.''}}{{#if: {{{vulkan support|}}} |[[Category:Invalid template usage (API)]]}}</includeonly><noinclude>{{Documentation}}</noinclude>

Revision as of 13:07, 9 February 2020

Documentation for the above template (sometimes hidden from view).
Description

The API template contains information on what APIs and additional features does the game support.


Related templates
{{API/switch Direct3D}}
{{API/switch DOS}}


Supported values

Direct3D versions

Direct3D versions Notable new features Notes
2 Initial version
3 MMX-enabled rasterizer, new RAMP color allocation algorithm[1]
5 Easier-to-use immediate mode
6 Multitexturing, bump mapping, vertex buffers, stencil planes, texture compression
7 Hardware Transformation, Clipping and Lighting (TCL/T&L)
8 Pixel Shader 1.0 & Vertex Shader 1.0
8.0a Pixel Shader 1.1, Pixel Shader 1.2, Pixel Shader 1.3
8.1 Pixel Shader 1.4 & Vertex Shader 1.1
9 Shader Model 2.0 (Pixel Shader 2.0 & Vertex Shader 2.0)
9.0b Pixel Shader 2.0b
9.0c Shader Model 3.0 (Pixel Shader 3.0 & Vertex Shader 3.0), GPGPU
9Ex Windows Graphics Foundation 1.0, DXVA 1.0 Also known as 9.L or 9.0L.
10 Shader Model 4.0, Windows Graphics Foundation 2.0, DXVA 2.0
10.1 Shader Model 4.1, Windows Graphics Foundation 2.1, DXVA 2.1
11 Shader Model 5.0, Tessellation, Multithreaded rendering, Compute shaders
11.1 Stereoscopic 3D Rendering
11.2 Tiled resources
11.3 Conservative rasterization
11.4 OS-managed shader caching, extended NV12 texture support
12 Low-level rendering API, Shader Model 5.1 and 6.0
The parameter will automatically map DirectX versions over to the appropriate Direct3D version; e.g. 8.2 is mapped to 8.1 as DirectX 8.2 did not bring a new version of Direct3D.

OpenGL versions

OpenGL versions
true
1.0
1.1
1.2
1.2.1
1.3
1.4
1.5
2.0
2.1
3.0
3.1
3.2
3.3
4.0
4.1
4.2
4.3
4.4
4.5
4.6

Vulkan versions

Vulkan versions
true
1.0
1.1

DOS modes

DOS modes Mode description
text Output drawn by characters rather than pixels.
hgc Hercules Graphics Card
cga Color Graphics Adapter
mcga Multi-Color Graphics Array
ega Enhanced Graphics Adapter
tga Tandy Graphics Adapter
vga Video Graphics Array
svga Super Video Graphics Array
The DOS row is only shown in the article when a DOS or PC booter release date row is also present in the Infobox.


Syntax
{{API
|direct3d versions      = 
|direct3d notes         = 
|directdraw versions    = 
|directdraw notes       = 
|wing                   = 
|wing notes             = 
|opengl versions        = 
|opengl notes           = 
|glide versions         = 
|glide notes            = 
|software mode          = 
|software mode notes    = 
|mantle support         = 
|mantle support notes   = 
|metal support          = 
|metal support notes    = 
|vulkan versions        = 
|vulkan notes           = 
|dos modes              = 
|dos modes notes        = 
|windows 32-bit exe     = 
|windows 64-bit exe     = 
|windows arm app        = 
|windows exe notes      = 
|mac os x powerpc app   = 
|macos intel 32-bit app = 
|macos intel 64-bit app = 
|macos arm app          = 
|macos app notes        = 
|linux powerpc app      = 
|linux 32-bit executable= 
|linux 64-bit executable= 
|linux arm app          = 
|linux 68k app          = 
|linux executable notes = 
|mac os powerpc app     =
|mac os 68k app         = 
|mac os executable notes= 
}}


Parameters marked as obsolete

Shader model

As of November 27, 2022 both shader model versions and shader model notes was marked as obsolete due to its unreliable nature, with games often providing fallbacks automatically to older versions, and irrelevance in modern gaming landscape. Support for the parameters may or may not be removed entirely in the future. The documentation is stored below for historical purposes:

Field Definition How to find Notes
Shader model versions The versions of the High-level shader language the game supports. Check the system requirements for the game. The DirectX version required can determine the Shader model used (see DirectX and associated Shader model versions). Also called the High-level shading language (HLSL) or Shader model. Only for games using Direct3D 8 or newer. Most games use just one version, but some have support for multiple.
DirectX and associated Shader model versions

For 3D games using DirectX, the Shader model field must be filled in. However, the Shader model version used may not be provided by the developer.

Unless otherwise specified, the associated Shader model version is what that version of DirectX is using.

DirectX version Associated Shader model version
8.0 1.0 and 1.1
8.0a 1.3
8.1 1.4
9.0 2.0
9.0a 2.0a
9.0b 2.0b
9.0c 3.0
10.0 4.0
10.1 4.1
11.x 5.0
12.x 5.1, 6.x


References

  1. Microsoft Stories - Microsoft Ships DirectX Version 3.0 - last accessed on 2022-11-27
    "The Direct3D API is a rendering engine for real-time 3-D graphics that integrates both a low-level API for polygon and vertex rendering, and a high-level API for manipulation of complex 3-D scenes. Direct3D now includes an MMX-enabled rasterizer for Intel’s next generation of multimedia-enabled CPUs, as well as a new RAMP color allocation algorithm that improves the visual quality of RAMP rasterization."