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
(added Cargo handling--store only called when table has content and is in the main namespace)
m (Removed "Shader_Model_versions" from Cargo)
 
(12 intermediate revisions by 3 users not shown)
Line 11: Line 11:
 
|Vulkan_versions=List (,) of String
 
|Vulkan_versions=List (,) of String
 
|DOS_video_modes=List (,) of String
 
|DOS_video_modes=List (,) of String
|Shader_Model_versions=List (,) of String
+
|Windows_16bit_executable=String
|Windows_16-bit_executable=String
+
|Windows_32bit_executable=String
|Windows_32-bit_executable=String
+
|Windows_64bit_executable=String
|Windows_64-bit_executable=String
 
 
|Windows_ARM_app=String
 
|Windows_ARM_app=String
 
|Mac_OS_X_PowerPC_app=String
 
|Mac_OS_X_PowerPC_app=String
|macOS_Intel_32-bit_app=String
+
|macOS_Intel_32bit_app=String
|macOS_Intel_64-bit_app=String
+
|macOS_Intel_64bit_app=String
 
|macOS_ARM_app=String
 
|macOS_ARM_app=String
 
|Linux_PowerPC_app=String
 
|Linux_PowerPC_app=String
|Linux_32-bit_executable=String
+
|Linux_32bit_executable=String
|Linux_64-bit_executable=String
+
|Linux_64bit_executable=String
 
|Linux_ARM_app=String
 
|Linux_ARM_app=String
 +
|Linux_68k_app=String
 +
|Mac_OS_68K_app=String
 +
|Mac_OS_PowerPC_app=String
 
}}</noinclude><includeonly>{{#switch:{{#var:section}}
 
}}</noinclude><includeonly>{{#switch:{{#var:section}}
 
|Audio
 
|Audio
Line 31: Line 33:
 
|Network/Ports
 
|Network/Ports
 
|VR support={{#vardefine:section|API}}
 
|VR support={{#vardefine:section|API}}
|#Default = [[Category:Invalid section order]]
+
|#Default = {{#ifeq:{{NAMESPACE}}||[[Category:Invalid section order]]}}
}}{{#vardefine:API|present}}{{#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 native}}{{{macos app notes|}}}{{#var:Linux native}}{{{linux executable notes|}}}|
+
}}{{#vardefine:API|present}}{{#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 native}}{{{macos app notes|}}}{{#var:Linux native}}{{{linux executable notes|}}}{{#var:Mac OS}}{{{mac os 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|}}}
 
{{#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">
 
|<div class="container-pcgwikitable"><table class="pcgwikitable template-infotable" id="table-api">
Line 47: Line 49:
 
<td class="table-api-body-support">{{#switch:{{lc:{{{direct3d versions|}}}}}
 
<td class="table-api-body-support">{{#switch:{{lc:{{{direct3d versions|}}}}}
 
|true
 
|true
|unknown={{Tickcross|{{{direct3d versions|}}}|Direct3D versions|unknown}}
+
|unknown={{Tickcross|{{{direct3d versions|}}}||unknown}}
|hackable={{Tickcross|hackable|Direct3D versions|{{{direct3d notes|}}}}}
+
|hackable={{Tickcross|hackable||{{{direct3d notes|}}}}}
 
|#default={{#arraymaptemplate:{{{direct3d versions}}}|API/switch Direct3D|,|,&#32;}} }}</td>
 
|#default={{#arraymaptemplate:{{{direct3d versions}}}|API/switch Direct3D|,|,&#32;}} }}</td>
 
<td class="table-api-body-notes">{{{direct3d notes|}}}</td>
 
<td class="table-api-body-notes">{{{direct3d notes|}}}</td>
Line 60: Line 62:
 
<td class="table-api-body-support">{{#switch:{{lc:{{{directdraw versions|}}}}}
 
<td class="table-api-body-support">{{#switch:{{lc:{{{directdraw versions|}}}}}
 
|true
 
|true
|unknown={{Tickcross|{{{directdraw versions|}}}|DirectDraw versions|unknown}}
+
|unknown={{Tickcross|{{{directdraw versions|}}}||unknown}}
|hackable={{Tickcross|hackable|DirectDraw versions|{{{directdraw notes|}}}}}
+
|hackable={{Tickcross|hackable||{{{directdraw notes|}}}}}
|#default={{{directdraw versions|}}}{{#arraymap:{{{directdraw versions|}}}|,|var|[[DirectDraw versions::var| ]]|&#32;}} }}</td>
+
|#default={{{directdraw versions|}}}
 +
}}</td>
 
<td class="table-api-body-notes">{{{directdraw notes|}}}</td>
 
<td class="table-api-body-notes">{{{directdraw notes|}}}</td>
 
</tr>
 
</tr>
Line 73: Line 76:
 
<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">WinG</th>
 
<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-support">{{Tickcross|{{{wing|}}}||{{{wing notes|}}}}}</td>
 
<td class="table-api-body-notes">{{{wing notes|}}}</td>
 
<td class="table-api-body-notes">{{{wing notes|}}}</td>
 
</tr>
 
</tr>
Line 86: Line 89:
 
<td class="table-api-body-support">{{#switch:{{lc:{{{opengl versions|}}}}}
 
<td class="table-api-body-support">{{#switch:{{lc:{{{opengl versions|}}}}}
 
|true
 
|true
|unknown={{Tickcross|{{{opengl versions|}}}|OpenGL versions|unknown}}
+
|unknown={{Tickcross|{{{opengl versions|}}}||unknown}}
|hackable={{Tickcross|hackable|OpenGL versions|{{{opengl notes|}}}}}
+
|hackable={{Tickcross|hackable||{{{opengl notes|}}}}}
|#default={{{opengl versions|}}}{{#arraymap:{{{opengl versions|}}}|,|var|[[OpenGL versions::var| ]]|&#32;}} }}</td>
+
|#default={{{opengl versions|}}}
 +
}}</td>
 
<td class="table-api-body-notes">{{{opengl notes|}}}</td>
 
<td class="table-api-body-notes">{{{opengl notes|}}}</td>
 
</tr>
 
</tr>
Line 100: Line 104:
 
|true
 
|true
 
|unknown
 
|unknown
|hackable={{Tickcross|{{{glide versions|}}}|Glide versions|{{{glide notes|}}}}}
+
|hackable={{Tickcross|{{{glide versions|}}}||{{{glide notes|}}}}}
|#default={{{glide versions|}}}{{#arraymap:{{{glide versions|}}}|,|var|[[Glide versions::var| ]]|&#32;}} }}</td>
+
|#default={{{glide versions|}}}
 +
}}</td>
 
<td class="table-api-body-notes">{{{glide notes|}}}</td>
 
<td class="table-api-body-notes">{{{glide notes|}}}</td>
 
</tr>
 
</tr>
Line 111: Line 116:
 
<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">Software renderer</th>
 
<th scope="row" class="table-api-body-parameter">Software renderer</th>
<td class="table-api-body-support">{{Tickcross|{{{software mode|}}}|Software renderer|{{{software mode notes|}}}}}</td>
+
<td class="table-api-body-support">{{Tickcross|{{{software mode|}}}||{{{software mode notes|}}}}}</td>
 
<td class="table-api-body-notes">{{{software mode notes|}}}</td>
 
<td class="table-api-body-notes">{{{software mode notes|}}}</td>
 
</tr>
 
</tr>
Line 123: Line 128:
 
<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"><abbr title="Only supported on compatible AMD video cards">Mantle support</abbr></th>
 
<th scope="row" class="table-api-body-parameter"><abbr title="Only supported on compatible AMD video cards">Mantle support</abbr></th>
<td class="table-api-body-support">{{Tickcross|{{{mantle support|}}}|Mantle support|{{{mantle support notes|}}}}}{{#vardefine:Warnings|true}}</td>
+
<td class="table-api-body-support">{{Tickcross|{{{mantle support|}}}||{{{mantle support notes|}}}}}{{#vardefine:Warnings|{{#if:{{#var:Warnings}}|{{#var:Warnings}},Mantle|Mantle}}}}</td>
 
<td class="table-api-body-notes">{{#if:{{{mantle support notes|}}}|{{{mantle support notes|}}}|''Requires an AMD video card with a driver version earlier than 19.5.1 (2019).''<ref name="Mantle support"/>}}</td>
 
<td class="table-api-body-notes">{{#if:{{{mantle support notes|}}}|{{{mantle support notes|}}}|''Requires an AMD video card with a driver version earlier than 19.5.1 (2019).''<ref name="Mantle support"/>}}</td>
 
</tr>
 
</tr>
Line 135: Line 140:
 
<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"><abbr title="Only supported on macOS (OS X)">Metal support</abbr></th>
 
<th scope="row" class="table-api-body-parameter"><abbr title="Only supported on macOS (OS X)">Metal support</abbr></th>
<td class="table-api-body-support">{{Tickcross|{{{metal support|}}}|Metal support|{{{metal support notes|}}}}}</td>
+
<td class="table-api-body-support">{{Tickcross|{{{metal support|}}}||{{{metal support notes|}}}}}</td>
 
<td class="table-api-body-notes">{{{metal support notes|}}}</td>
 
<td class="table-api-body-notes">{{{metal support notes|}}}</td>
 
</tr>
 
</tr>
Line 148: Line 153:
 
<th scope="row" class="table-api-body-parameter">Vulkan</th>
 
<th scope="row" class="table-api-body-parameter">Vulkan</th>
 
<td class="table-api-body-support">{{#switch:{{lc:{{{vulkan versions|}}}}}
 
<td class="table-api-body-support">{{#switch:{{lc:{{{vulkan versions|}}}}}
|true={{Tickcross|true|Vulkan versions|true}}
+
|true={{Tickcross|true||true}}{{#vardefine:Vulkan versions|true}}
|hackable={{Tickcross|hackable|Vulkan versions|{{{vulkan notes|}}}}}
+
|hackable={{Tickcross|hackable||{{{vulkan notes|}}}}}{{#vardefine:Vulkan versions|hackable}}
 
|#default={{#arraymaptemplate:{{{vulkan versions}}}|API/switch Vulkan|,|,&#32;}} }}</td>
 
|#default={{#arraymaptemplate:{{{vulkan versions}}}|API/switch Vulkan|,|,&#32;}} }}</td>
 
<td class="table-api-body-notes">{{{vulkan notes|}}}</td>
 
<td class="table-api-body-notes">{{{vulkan notes|}}}</td>
Line 159: Line 164:
 
<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"><abbr title="Only applies to DOS and/or PC booter versions">DOS video modes</abbr></th>
 
<th scope="row" class="table-api-body-parameter"><abbr title="Only applies to DOS and/or PC booter versions">DOS video modes</abbr></th>
<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>
+
<td class="table-api-body-support">{{#if: {{{dos modes|}}} | {{#ifeq: {{{dos modes|}}} | unknown | {{tickcross|unknown}}{{#vardefine:DOS modes|unknown}} | {{#arraymaptemplate:{{{dos modes}}}|API/switch DOS|,|,&#32;}} }} | {{tickcross|unknown}}{{#vardefine:DOS modes|unknown}} }}</td></td>
 
<td class="table-api-body-notes">{{{dos modes notes|}}}</td>
 
<td class="table-api-body-notes">{{{dos modes notes|}}}</td>
 
</tr>
 
</tr>
Line 178: Line 183:
 
}}
 
}}
 
}}
 
}}
</table></div>}}{{#if:{{#var:Windows 3.x native}}{{#var:Windows native}}{{{windows exe notes|}}}{{#var:OS X native}}{{{macos app notes|}}}{{#var:Linux native}}{{{linux executable notes|}}}|<div class="container-pcgwikitable"><table class="pcgwikitable template-infotable" id="table-api-executable">
+
</table></div>}}{{#if:{{#var:Windows 3.x native}}{{#var:Windows native}}{{{windows exe notes|}}}{{#var:OS X native}}{{{macos app notes|}}}{{#var:Linux native}}{{{linux executable notes|}}}{{#var:Windows 3.x}}{{{mac os executable notes|}}}|<div class="container-pcgwikitable"><table class="pcgwikitable template-infotable" id="table-api-executable">
 
<tr class="template-infotable-head table-api-head-row"><!--
 
<tr class="template-infotable-head table-api-head-row"><!--
 
-->{{#switch:{{{mac os x powerpc app|}}}|true|hackable={{#vardefine:powerpc app|true}}}}<!--
 
-->{{#switch:{{{mac os x powerpc app|}}}|true|hackable={{#vardefine:powerpc app|true}}}}<!--
 
-->{{#switch:{{{linux powerpc app|}}}|true|hackable={{#vardefine:powerpc app|true}}}}<!--
 
-->{{#switch:{{{linux powerpc app|}}}|true|hackable={{#vardefine:powerpc app|true}}}}<!--
 +
-->{{#switch:{{{mac os powerpc app|}}}|true|hackable={{#vardefine:powerpc app|true}}}}<!--
 
-->{{#switch:{{{windows arm app|}}}|true|hackable={{#vardefine:arm app|true}}}}<!--
 
-->{{#switch:{{{windows arm app|}}}|true|hackable={{#vardefine:arm app|true}}}}<!--
 
-->{{#switch:{{{macos arm app|}}}|true|hackable={{#vardefine:arm app|true}}}}<!--
 
-->{{#switch:{{{macos arm app|}}}|true|hackable={{#vardefine:arm app|true}}}}<!--
 
-->{{#switch:{{{linux arm app|}}}|true|hackable|limited={{#vardefine:arm app|true}}}}<!--
 
-->{{#switch:{{{linux arm app|}}}|true|hackable|limited={{#vardefine:arm app|true}}}}<!--
 +
-->{{#switch:{{{mac os 68k app|}}}|true|hackable|limited={{#vardefine:16-bit app|true}}}}<!--
 +
-->{{#switch:{{{linux 68k app|}}}|true|hackable|limited={{#vardefine:16-bit app|true}}}}<!--
 
-->{{#vardefine:api notes width|490}}<!--
 
-->{{#vardefine:api notes width|490}}<!--
 
-->{{#if:{{#var:Windows 3.x native}}|{{#vardefine:api notes width|{{#expr: {{#var:api notes width}} - 50}}}}}}<!--
 
-->{{#if:{{#var:Windows 3.x native}}|{{#vardefine:api notes width|{{#expr: {{#var:api notes width}} - 50}}}}}}<!--
Line 190: Line 198:
 
-->{{#if:{{#var:arm app}}|{{#vardefine:api notes width|{{#expr: {{#var:api notes width}} - 50}}}}}}
 
-->{{#if:{{#var:arm app}}|{{#vardefine:api notes width|{{#expr: {{#var:api notes width}} - 50}}}}}}
 
<th scope="col" style="width: 230px;" class="table-api-head-parameter">Executable</th><!--
 
<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:powerpc app}}{{#var:Mac OS}}|<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"><abbr title="Intel 16-bit">16-bit</abbr></th>}}
+
-->{{#if:{{#var:Windows 3.x native}}{{#var:Mac OS}}{{#var:16-bit app}}|<th scope="col" style="width: 50px;" class="table-api-head-support"><abbr title="Windows: Intel 16-bit. Mac OS Classic and Linux: Motorola 68K.">16-bit</abbr></th>}}
<th scope="col" style="width: 50px;" class="table-api-head-support"><abbr title="Intel 32-bit (x86)">32-bit</abbr></th>
+
<th scope="col" style="width: 50px;" class="table-api-head-support"><abbr title="Intel 32-bit (x86 / IA-32)">32-bit</abbr></th>
<th scope="col" style="width: 50px;" class="table-api-head-support"><abbr title="Intel 64-bit (x64 / x86-64)">64-bit</abbr></th><!--
+
<th scope="col" style="width: 50px;" class="table-api-head-support"><abbr title="Intel 64-bit (x64 / x86-64 / AMD64)">64-bit</abbr></th><!--
 
-->{{#if:{{#var:arm app}}|<th scope="col" style="width: 50px;" class="table-api-head-support">ARM</th>}}
 
-->{{#if:{{#var:arm app}}|<th scope="col" style="width: 50px;" class="table-api-head-support">ARM</th>}}
 
<th scope="col" style="width: {{#var:api notes width}}px;" class="table-api-head-notes">Notes</th>
 
<th scope="col" style="width: {{#var:api notes width}}px;" class="table-api-head-notes">Notes</th>
Line 200: Line 208:
 
<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">Windows</th><!--
 
<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:powerpc app}}{{#var:Mac OS}}|<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>}}
+
-->{{#if:{{#var:Windows 3.x native}}|<td class="table-api-body-support">{{Tickcross|true}}|{{#if:{{#var:Mac OS}}{{#var:16-bit app}}|<td class="table-api-body-support">{{Tickcross|false}}}}</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 32-bit exe|}}}||{{{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-support">{{Tickcross|{{{windows 64-bit exe|}}}||{{{windows exe notes|}}}}}</td><!--
-->{{#if:{{#var:arm app}}|<td class="table-api-body-support">{{Tickcross|{{{windows arm app|}}}|Windows ARM app|{{{windows exe notes|}}}}}</td>}}
+
-->{{#if:{{#var:arm app}}|<td class="table-api-body-support">{{Tickcross|{{{windows arm app|}}}||{{{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>
 
<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>
 
</tr>
Line 213: Line 221:
 
<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">macOS (OS X)</th><!--
 
<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><!--
+
-->{{#if:{{#var:powerpc app}}|<td class="table-api-body-support">{{Tickcross|{{{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|{{#ifeq:{{{macos arm app|}}}|true||{{#vardefine:Warnings|true}}}}}}}}<!--
+
-->{{#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|{{#ifeq:{{{macos arm app|}}}|true||{{#vardefine:Warnings|{{#if:{{#var:Warnings}}|{{#var:Warnings}},macOS PowerPC only|macOS PowerPC only}}}}}}}}}}<!--
-->{{#if:{{#var:Windows 3.x native}}|<td class="table-api-body-support">{{Tickcross-na|n/a}}</td>}}
+
-->{{#if:{{#var:Windows 3.x native}}{{#var:Mac OS}}{{#var:16-bit app}}|<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 32-bit app|{{{macos 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-support">{{Tickcross|{{{macos intel 64-bit app|{{{macos 64-bit app|}}}}}}||{{{macos app notes|}}}}}</td><!--
-->{{#if:{{#var:arm app}}|<td class="table-api-body-support">{{Tickcross|{{{macos arm app|}}}|MacOS ARM app|{{{macos app notes|}}}}}</td>}}
+
-->{{#if:{{#var:arm app}}|<td class="table-api-body-support">{{Tickcross|{{{macos arm 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|{{#ifeq:{{{macos arm app|}}}|true||{{#if:{{{macos app notes|}}}{{{macos arm notes|}}}|{{{macos app notes|}}} {{{macos arm notes|}}}|''This 32-bit-only macOS game '''does not work''' on macOS Catalina (10.15) or later.''}}}}|{{{macos app notes|}}} {{{macos arm 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|{{#ifeq:{{{macos arm app|}}}|true||{{#if:{{{macos app notes|}}}{{{macos arm notes|}}}|{{{macos app notes|}}} {{{macos arm notes|}}}|''This 32-bit-only macOS game '''does not work''' on macOS Catalina (10.15) or later.''}}}}|{{{macos app notes|}}} {{{macos arm notes|}}}}}</td>
 
</tr>
 
</tr>
 
{{#switch:{{{macos intel 32-bit app|{{{macos 32-bit app|}}}}}}{{{macos intel 64-bit app|{{{macos 64-bit app|}}}}}}
 
{{#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}}
 
|falsetrue={{#vardefine:OS X 64-bit only|true}}
|truefalse
+
|truefalse={{#ifeq:{{{macos arm app|}}}|true||{{#vardefine:Warnings|{{#if:{{#var:Warnings}}|{{#var:Warnings}},macOS 64-bit false|macOS 64-bit false}}}}}}
|truehackable={{#ifeq:{{{macos arm app|}}}|true||{{#vardefine:Warnings|true}}}}
+
|truehackable={{#ifeq:{{{macos arm app|}}}|true||{{#vardefine:Warnings|{{#if:{{#var:Warnings}}|{{#var:Warnings}},macOS 64-bit hackable|macOS 64-bit hackable}}}}}}
 
|falsefalse={{#ifeq:{{{mac os x powerpc app|}}}|true||{{#ifeq:{{{macos arm app|}}}|true||[[Category:Invalid template usage (API)]]}}}}
 
|falsefalse={{#ifeq:{{{mac os x powerpc app|}}}|true||{{#ifeq:{{{macos arm app|}}}|true||[[Category:Invalid template usage (API)]]}}}}
 
}}
 
}}
Line 231: Line 239:
 
<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">Linux</th><!--
 
<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:powerpc app}}|<td class="table-api-body-support">{{Tickcross|{{{linux powerpc app|}}}||{{{linux executable notes|}}}}}</td>}}<!--
-->{{#if:{{#var:Windows 3.x native}}|<td class="table-api-body-support">{{Tickcross-na|n/a}}</td>}}
+
-->{{#if:{{#var:Windows 3.x native}}{{#var:Mac OS}}{{#var:16-bit app}}|<td class="table-api-body-support">{{Tickcross|{{{linux 68k app|}}}||{{{linux executable notes|}}}}}</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 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-support">{{Tickcross|{{{linux 64-bit executable|}}}||{{{linux executable notes|}}}}}</td><!--
-->{{#if:{{#var:arm app}}|<td class="table-api-body-support">{{Tickcross|{{{linux arm app|}}}|Linux ARM app|{{{linux executable notes|}}}}}</td>}}
+
-->{{#if:{{#var:arm app}}|<td class="table-api-body-support">{{Tickcross|{{{linux arm app|}}}||{{{linux executable notes|}}}}}</td>}}
 
<td class="table-api-body-notes">{{{linux executable notes|}}}</td>
 
<td class="table-api-body-notes">{{{linux executable notes|}}}</td>
 
</tr>
 
</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|}}}|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)]]}}}}
 
{{#ifeq:{{{linux 32-bit executable|}}}{{{linux 64-bit executable|}}}|falsefalse|{{#ifeq:{{{linux powerpc app|}}}|true||[[Category:Invalid template usage (API)]]}}}}
 +
}}
 +
{{#if:{{#var:Mac OS}}{{{mac os executable notes|}}}|
 +
<tr class="template-infotable-body table-api-body-row">
 +
<th scope="row" class="table-api-body-parameter">Mac OS (Classic)</th><!--
 +
-->{{#if:{{#var:powerpc app}}{{#var:Mac OS}}|<td class="table-api-body-support">{{Tickcross|{{{mac os powerpc app|}}}||{{{mac os executable notes|}}}}}</td>}}<!--
 +
-->{{#if:{{#var:Windows 3.x native}}{{#var:Mac OS}}{{#var:16-bit app}}|<td class="table-api-body-support">{{Tickcross|{{{mac os 68k app|}}}||{{{mac os executable notes|}}}}}</td>}}<!--
 +
--><td class="table-api-body-support">{{Tickcross-na|n/a}}</td>
 +
<td class="table-api-body-support">{{Tickcross-na|n/a}}</td>
 +
{{#if:{{#var:arm app}}|<td class="table-api-body-support">{{Tickcross-na|n/a}}</td>}}
 +
<td class="table-api-body-notes">{{{mac os executable notes|}}}</td>
 +
</tr>
 
}}
 
}}
 
</table></div> }}{{#ifeq: {{NAMESPACE}} | | {{#cargo_store:
 
</table></div> }}{{#ifeq: {{NAMESPACE}} | | {{#cargo_store:
Line 253: Line 272:
 
|Vulkan_versions={{#var:Vulkan versions}}
 
|Vulkan_versions={{#var:Vulkan versions}}
 
|DOS_video_modes={{#var:DOS modes}}
 
|DOS_video_modes={{#var:DOS modes}}
|Shader_Model_versions={{{shader model versions|}}}
+
|Windows_16bit_executable={{#var:Windows 3.x}}
|Windows_16-bit_executable={{#var:Windows 3.x}}
+
|Windows_32bit_executable={{{windows 32-bit exe|}}}
|Windows_32-bit_executable={{{windows 32-bit exe|}}}
+
|Windows_64bit_executable={{{windows 64-bit exe|}}}
|Windows_64-bit_executable={{{windows 64-bit exe|}}}
 
 
|Windows_ARM_app={{{windows arm app|}}}
 
|Windows_ARM_app={{{windows arm app|}}}
 
|Mac_OS_X_PowerPC_app={{{mac os x powerpc app|}}}
 
|Mac_OS_X_PowerPC_app={{{mac os x powerpc app|}}}
|macOS_Intel_32-bit_app={{{macos intel 32-bit app|}}}
+
|macOS_Intel_32bit_app={{{macos intel 32-bit app|{{{macos 32-bit app|}}}}}}
|macOS_Intel_64-bit_app={{{macos intel 64-bit app|}}}
+
|macOS_Intel_64bit_app={{{macos intel 64-bit app|{{{macos 64-bit app|}}}}}}
 
|macOS_ARM_app={{{macos arm app|}}}
 
|macOS_ARM_app={{{macos arm app|}}}
 
|Linux_PowerPC_app={{{linux powerpc app|}}}
 
|Linux_PowerPC_app={{{linux powerpc app|}}}
|Linux_32-bit_executable={{{linux 32-bit executable|}}}
+
|Linux_32bit_executable={{{linux 32-bit executable|}}}
|Linux_64-bit_executable={{{linux 64-bit executable|}}}
+
|Linux_64bit_executable={{{linux 64-bit executable|}}}
 
|Linux_ARM_app={{{linux arm app|}}}
 
|Linux_ARM_app={{{linux arm app|}}}
 +
|Linux_68k_app={{{linux 68k app|}}}
 +
|Mac_OS_68K_app={{{mac os 68k app|}}}
 +
|Mac_OS_PowerPC_app={{{mac os powerpc app|}}}
 
}}}}|{{ii}} ''No API information; <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>
 
}}}}|{{ii}} ''No API information; <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>

Latest revision as of 20:38, 21 April 2023

This template defines the table "API". View table.

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."