Game Control: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
Hitcher (talk | contribs)
No edit summary
Hitcher (talk | contribs)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
__NOTOC__<section begin="main content" />
{{mininav| [[Skinning]] | [[Controls|Available controls]] }}
<section begin="main content" />
'''Used to display the currently playing game, with optional effects, while playing a game.'''
'''Used to display the currently playing game, with optional effects, while playing a game.'''


Line 17: Line 18:
</syntaxhighlight>
</syntaxhighlight>
=== Available tags ===
=== Available tags ===
In addition to the [[Default_control_tags]] the following tags are available. Note that each tag is '''lower case''' only. This is important, as xml tags are case-sensitive.
In addition to the '''[[Default Control Tags]]''' the following tags are available. Note that each tag is '''lower case''' only. This is important, as xml tags are case-sensitive.
{| class="prettytable"
{| class="prettytable"
! Tag !! Description
! Tag !! Description
Line 33: Line 34:
| A path to a v20 savestate, whose pixels will be rendered instead of the active game. A value of - will disable rendering of any pixels.
| A path to a v20 savestate, whose pixels will be rendered instead of the active game. A value of - will disable rendering of any pixels.
|}
|}
=== List item info ===
=== List item info ===
List item info can be used for all tag values. For example, if the control definition looks like:
List item info can be used for all tag values. For example, if the control definition looks like:

Latest revision as of 19:04, 22 June 2026

  ▶ Skinning ▶ Available controls ▶ Game Control

Used to display the currently playing game, with optional effects, while playing a game.

The gamewindow control is used for displaying the currently playing game elsewhere in the Kodi GUI. You can choose the position, and size of the game displayed, as well as various effects. Note that the control is only rendered if game is being played.

Example

<control type="gamewindow" id="2">
      <description>My first game control</description>
      <posx>80</posx>
      <posy>60</posy>
      <width>250</width>
      <height>200</height>
      <videofilter>nearest</videofilter>
      <stretchmode>normal</stretchmode>
      <rotation>0</rotation>
</control>

Available tags

In addition to the Default Control Tags the following tags are available. Note that each tag is lower case only. This is important, as xml tags are case-sensitive.

Tag Description
videofilter The filter to use, see RetroPlayer.VideoFilter for supported values. If empty, the value of the RetroPlayer.VideoFilter info label is used.
stretchmode The stretch mode, see RetroPlayer.StretchMode for supported values. If empty, the value of the RetroPlayer.StretchMode info label is used.
rotation The rotation, in degrees counter-clockwise, see RetroPlayer.VideoRotation for supported values. If empty, the value of the RetroPlayer.VideoRotation info label is used.
pixels A path to a v20 savestate, whose pixels will be rendered instead of the active game. A value of - will disable rendering of any pixels.

List item info

List item info can be used for all tag values. For example, if the control definition looks like:

<itemlayout width="444" height="250">
      <control type="gamewindow">
            <videofilter>$INFO[ListItem.Property(game.videofilter)]</videofilter>
            <stretchmode>$INFO[ListItem.Property(game.stretchmode)]</stretchmode>
            <rotation>$INFO[ListItem.Property(game.videorotation)]</rotation>
      </control>
</itemlayout>

Static list items can be provided. Each gamewindow will inherit the properties:

<content>
      <item>
            <property name="game.videofilter">nearest</property>
            <property name="game.stretchmode">normal</property>
            <property name="game.videorotation">0</property>
      </item>
</content>

The in-game dialogs with a gamewindow control (GameVideoFilter, GameStretchMode, GameVideoRotation and InGameSaves) use a similar strategy with list items populated by core.

See also

Development: