APT:SendCaptureBufferInfo: Difference between revisions

Steveice10 (talk | contribs)
mNo edit summary
 
(2 intermediate revisions by 2 users not shown)
Line 12: Line 12:
|-
|-
| 2
| 2
| <nowiki>(Size<<14) | 2</nowiki>
| <nowiki>(Size << 14) | 2</nowiki>
|-
|-
| 3
| 3
| Input buffer ptr
| void*, [[NS_and_APT_Services#CaptureBufferInfo|CaptureBufferInfo]]
|}
|}


Line 30: Line 30:
| Result code
| Result code
|}
|}
=Capture info structure=
{| class="wikitable" border="1"
|-
!  Index Word
!  Description
|-
| 0
| Pixel bytesize * 0x7000 + base0. (main-screen. base0 = Pixel bytesize * 0x19000 + base1, base1 = indexword3 value)
|-
| 1
| u8: 0 = framebuffer addresses from [[GSPGPU:ImportDisplayCaptureInfo|GSP]] captureinfo+0 / captureinfo+4 match, otherwise this is value 1 when those addresses don't match.
|-
| 2
| Pixel bytesize * 0x14000 + base. (base = 0, sub-screen)
|-
| 3
| Same as wordindex 2. When the above u8 flag!=0, this is: Pixel bytesize * 0x19000 + base. (base = indexword2 value, main-screen)
|-
| 4
| Main-screen [[LCD|0x1EF00X70]] value.
|-
| 5
| Normally zero.
|-
| 6
| Normally zero.
|-
| 7
| Sub-screen [[LCD|0x1EF00X70]] value.
|}
The user process initializes this structure using data from [[GSPGPU:ImportDisplayCaptureInfo]]. The pixel bytesize is determined by the [[LCD|0x1EF00X70]] color format for that screen. When the color-format is RGBA, the pixel bytesize used is value 3.


=Description=
=Description=
The input size is clamped to 0x20-bytes by NS. The input buffer with the clamped size is then copied to a NS state buffer. The size field for this state buffer is also set to this clamped size.
The input size is clamped to 0x20-bytes by NS. The input buffer with the clamped size is then copied to a NS state buffer. The size field for this state buffer is also set to this clamped size.