# Target setup for NXP RT117X

This document provides a detailed guide on setting up and using the NXP RT117X hardware with CGI Studio.  
It explains the steps for environment setup, flashing the hardware, building applications, and running tests.

# Hardware setup for NXP RT117X

#### Required Tools and Equipment

The following tools and equipment are needed to set up and run the project:

- NXP RT117X hardware board with display
- CGI Studio (Minimum version 3.15.1)
- CMake GUI
- Visual Studio Code
- Ninja Build Tool
- Required binary files (.bin)
- IAR Embedded Workbench
- Board Support Packages
- Hardware Variants  
    <table style="border-collapse:collapse;width:100%;height:89.3907px;"><colgroup><col style="width:20.3871%;"></col><col style="width:25.6774%;"></col><col style="width:24.7732%;"></col><col style="width:29.2913%;"></col></colgroup><tbody><tr style="height:29.7969px;"><td class="align-center" style="height:29.7969px;">**Hardware Revision**</td><td class="align-center" style="height:29.7969px;">**Supported Display**</td><td class="align-center" style="height:29.7969px;">**Supported BSP versions**</td><td class="align-center" style="height:29.7969px;">**Notes**</td></tr><tr style="height:29.7969px;"><td class="align-center" style="height:29.7969px;">Rev\_a </td><td class="align-center" style="height:29.7969px;">720 × 1280 only</td><td class="align-center" style="height:29.7969px;">Up to BSP 2.16</td><td class="align-center" style="height:29.7969px;">BSP versions higher than 2.16 are not supported</td></tr><tr style="height:29.7969px;"><td class="align-center" style="height:29.7969px;">Rev\_b</td><td class="align-center" style="height:29.7969px;">720 × 1280 or 800 × 480 (Raspberry Pi Display)</td><td class="align-center" style="height:29.7969px;">2.16 and newer  
    (e.g., 25\_06\_00)</td><td class="align-center" style="height:29.7969px;">Supports newer BSP versions</td></tr></tbody></table>

#### Hardware Connection Setup

1. Connect the **power cable** to the NXP RT117X board.
2. Connect the **Micro-USB port** on the board to a **USB-A port** on your laptop or PC.
3. Make sure the Micro-USB is connected to the **USB Debug port**.
4. Power on the board.
5. Check if the **power LEDs** on the board are glowing.
6. Wait for your system to detect the board. You can verify this by checking **Device Manager → Ports (COM &amp; LPT)** — a new **COM port** should appear for the NXP RT117X board

#### Verification after completing the flashing

1. Confirm that the display output matches the expected layout from Scene Composer.
2. Check that images, colors, and animations render correctly.
3. Validate Bitmap Stride behavior for both aligned and unaligned images.
4. Ensure there are no visual distortions or flickering.

---

# Software Setup for Flashing NXPRT117X

#### Scene Composer Configuration

1. Open Scene Composer and create a new solution using the Empty Sample Solution template.
2. Select and import multiple images into Scene Composer from the following path:  
    (CGI-ROOT/cgi\_studio\_content/2D/Paid\_Stock\_Images)
3. Drag and drop the imported images into the Scene Editor.
4. In the Scene Editor, adjust the images by scaling and rotating them as needed.
5. Add the following elements to the Scene Editor: 
    1. One Solid Color Node
    2. One Text Node
    3. One Button
6. Open the Render Target tab (next to the toolbox) and select an available render target.
7. In the Properties panel, set the following values: 
    1. Orientation: 
        1. 90 ° for 720x1280/Portrait mode displays.
        2. 0° for 800 x 480/ Landscape mode displays.
    2. Width: 720
    3. Height: 1280
8. Click on Display (0) under the Render Target tab.
9. In the Display properties, set the X and Y resolution to match the Render Target resolution.
10. Navigate to File → Solution Options → General Configuration.
11. Finally, generate the Target Asset.

#### VS Code Configuration

1. Open Visual Studio Code (VS Code) from the CGI root directory.
2. Navigate to the toolchain file as per the hardware revision (rev\_a/rev\_b) and BSP version used, refer the following table to select the necessary toolchain file:  
    **Toolchain Table:**<table><colgroup><col></col><col></col><col></col></colgroup><tbody><tr><td class="align-center">**Hardware Revision**</td><td class="align-center">**Toolchain file**</td><td class="align-center">**Description** </td></tr><tr><td rowspan="2">Rev\_a </td><td>IAR-toolchain-RT117X\_Native2D.txt</td><td>Rev\_a without Touch</td></tr><tr><td>IAR-toolchain-RT117X\_Native2D\_Touch.txt</td><td>Rev\_a with touch enabled display</td></tr><tr><td rowspan="3">Rev\_b</td><td>IAR-toolchain-RT117X\_Native2D\_B.txt</td><td>Rev\_b without Touch support</td></tr><tr><td>IAR-toolchain-RT117X\_Native2D\_B\_Touch.txt</td><td>Rev\_b with Touch enabled display</td></tr><tr><td>IAR-toolchain-RT117X\_Native2D\_B\_Touch\_2.16.txt</td><td>Rev\_b with Touch enabled display
    
    and BSP version 2.16
    
    </td></tr></tbody></table>
    
    For Eg: If using a Rev\_b hardware version with BSP version 2.16, navigate to the following file.  
    (CGI-ROOT/cgi\_studio\_devices/src/RT117X/ToolchainFiles/IAR-toolchain-RT117X\_Native2D\_B\_Touch\_2.16.txt)
3. Open the file and make the following edits: 
    1. Disable touch (only if the display does not support touch)  
        set (CGIDEVICE\_TOUCH\_ENABLED OFF CACHE BOOL "Enable Touch support").
    2. Update the **BSP path** to match the local directory.
4. Next, open the following file and update the display configurations as required:  
    (CGI-ROOT/cgi\_studio\_devices/src/RT117X/CourierPlatformDefs/Target\_FreeRTOS\_RT117X  
    /KernelTargets/iar/bsp\_cm7\_B216\_cgi/vglite/cm7/display\_support.h)
5. In this file, go to line 28 and update the display panel configuration as shown below: 
    1. **Before:**  
        \#define DEMO\_PANEL DEMO\_PANEL\_RASPI\_7INCH //DEMO\_PANEL\_RK055MHD091
    2. **After:**  
        \#define DEMO\_PANEL DEMO\_PANEL\_RK055MHD091  
        This removes the commented-out section and sets the display to **RK055MHD091**.

#### Project Configuration using Cmake GUI

1. Open **CMake GUI**.
2. Set the **source code folder** to:  
     (CGI-ROOT\\cmake\\Apps\\Courier\\CourierSampleAppLight)
3. Set the **build folder** (the location where build files will be generated).
4. Click **Configure**.
5. When prompted, select **Ninja** as the generator.
6. Specify the **toolchain file** for cross-compiling refer the toolchain table, select the appropriate toolchain file as per the hardware version.
7. Click **Finish → Next**.
8. Click **Configure** again until all red entries disappear, then click **Generate**.
9. Close **CMake GUI**.
10. Open terminal in the **build folder** and give a **ninja** build.
11. Run the following command  
    **ninja**

#### Adding Assets

1. Create an **Assets** folder in:  
     CGI-ROOT\\cgi\_studio\_courier\_apps\\src\\CourierSampleAppLight
2. Add the generated asset file to this folder.
3. Rename it to:  
     AssetLibCff\_RT117X\_Target.bin

#### Flashing and Execution

1. Open the generated project from the following path:   
    BUILD-ROOT\\iar\_project\\debug\_cm7\_B\_cgi\\CGI\_RT117X.ew
2. **IAR Embedded Workbench IDE** will launch automatically.
3. Click **Download and Debug** to flash the binary to the hardware.
4. After flashing, click **GO** in IAR to start execution.
5. Observe the output on the display connected to the NXP RT117X board.

# Blend Mode Mapping

<span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SCXW81732228 BCX8">Following are the </span><span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW81732228 BCX8">mapping</span><span class="NormalTextRun SCXW81732228 BCX8"> from </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">OpenGLES</span><span class="NormalTextRun SCXW81732228 BCX8"> blend mode to NXP-RT supported blend modes.</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW81732228 BCX8"><span class="SCXW81732228 BCX8"> </span>  
</span><span class="EOP SCXW81732228 BCX8"> </span>

#### <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SCXW81732228 BCX8">VG Image blend mode mapping (</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">VGLite</span><span class="NormalTextRun SCXW81732228 BCX8"> API 3.x, available only in BSP version 25.06):</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW81732228 BCX8"><span class="SCXW81732228 BCX8"> </span></span>

1. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SCXW81732228 BCX8">OPENVG\_BLEND\_SRC\_OVER : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">SourceAlpha</span><span class="NormalTextRun SCXW81732228 BCX8">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">InverseSourceAlpha</span><span class="NormalTextRun SCXW81732228 BCX8">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=One, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=InverseSourceAlpha</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW81732228 BCX8"><span class="SCXW81732228 BCX8"> </span></span>
2. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SCXW81732228 BCX8"> OPENVG\_BLEND\_DST\_OVER : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">InverseDestAlpha</span><span class="NormalTextRun SCXW81732228 BCX8">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dF</span><span class="NormalTextRun SCXW81732228 BCX8">=One, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">InverseDestAlpha</span><span class="NormalTextRun SCXW81732228 BCX8">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=One</span></span>
3. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SCXW81732228 BCX8">OPENVG\_BLEND\_SRC\_IN : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">DestAlpha</span><span class="NormalTextRun SCXW81732228 BCX8">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dF</span><span class="NormalTextRun SCXW81732228 BCX8">=Zero, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">DestAlpha</span><span class="NormalTextRun SCXW81732228 BCX8">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=Zero</span></span>
4. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SCXW81732228 BCX8">OPENVG\_BLEND\_DST\_IN : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sF</span><span class="NormalTextRun SCXW81732228 BCX8">=Zero, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">SourceAlpha</span><span class="NormalTextRun SCXW81732228 BCX8">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=Zero, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=SourceAlpha</span></span>
5. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SCXW81732228 BCX8">OPENVG\_BLEND\_MULTIPLY : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">DestColor</span><span class="NormalTextRun SCXW81732228 BCX8">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dF</span><span class="NormalTextRun SCXW81732228 BCX8">=Zero, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">DestAlpha</span><span class="NormalTextRun SCXW81732228 BCX8">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=Zero</span></span>
6. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SCXW81732228 BCX8">OPENVG\_BLEND\_SCREEN : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sF</span><span class="NormalTextRun SCXW81732228 BCX8">=One, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">InverseSourceColor</span><span class="NormalTextRun SCXW81732228 BCX8">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=One, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=InverseSourceColor</span></span>
7. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SCXW81732228 BCX8">OPENVG\_BLEND\_ADDITIVE : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sF</span><span class="NormalTextRun SCXW81732228 BCX8">=One, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dF</span><span class="NormalTextRun SCXW81732228 BCX8">=One, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=One, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=One</span></span><span class="EOP SCXW81732228 BCX8"> </span>

#### <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SCXW81732228 BCX8">VG Image blend mode mapping (</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">VGLite</span><span class="NormalTextRun SCXW81732228 BCX8"> API 2.x, available only in BSP version 2.16):</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW81732228 BCX8"><span class="SCXW81732228 BCX8"> </span></span>

1. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SCXW81732228 BCX8">VG\_LITE\_BLEND\_NONE : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=One, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=Zero</span></span>
2. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SCXW81732228 BCX8">VG\_LITE\_BLEND\_DST\_IN : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=Zero, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=SourceAlpha</span></span>
3. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SCXW81732228 BCX8">VG\_LITE\_BLEND\_SRC\_OVER : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=One, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=InverseSourceAlpha</span></span>
4. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SCXW81732228 BCX8">VG\_LITE\_BLEND\_SRC\_IN : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">DestAlpha</span><span class="NormalTextRun SCXW81732228 BCX8">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=Zero</span></span>
5. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SCXW81732228 BCX8">VG\_LITE\_BLEND\_DST\_OVER : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">InverseDestAlpha</span><span class="NormalTextRun SCXW81732228 BCX8">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=One</span></span>
6. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SCXW81732228 BCX8">VG\_LITE\_BLEND\_MULTIPLY : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">DestColor</span><span class="NormalTextRun SCXW81732228 BCX8">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dF</span><span class="NormalTextRun SCXW81732228 BCX8">=Zero, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=One, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=InverseSourceAlpha</span></span>
7. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SCXW81732228 BCX8">VG\_LITE\_BLEND\_SUBTRACT : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">InverseSourceColor</span><span class="NormalTextRun SCXW81732228 BCX8">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dF</span><span class="NormalTextRun SCXW81732228 BCX8">=One, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=One, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=One</span></span>
8. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SCXW81732228 BCX8">VG\_LITE\_BLEND\_SCREEN : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sF</span><span class="NormalTextRun SCXW81732228 BCX8">=One, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">InverseSourceColor</span><span class="NormalTextRun SCXW81732228 BCX8">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=One, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=InverseSourceColor</span></span>
9. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SCXW81732228 BCX8">VG\_LITE\_BLEND\_ADDITIVE : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sF</span><span class="NormalTextRun SCXW81732228 BCX8">=One, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dF</span><span class="NormalTextRun SCXW81732228 BCX8">=One, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=One, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=One</span></span><span class="EOP SCXW81732228 BCX8"> </span>

#### <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SCXW81732228 BCX8">PXP Image blend mode mapping:</span></span>

1. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">kPXP\_PorterDuffSrc</span><span class="NormalTextRun SCXW81732228 BCX8"> : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=One, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=Zero</span></span>
2. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">kPXP\_PorterDuffAtop</span><span class="NormalTextRun SCXW81732228 BCX8"> : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">DestAlpha</span><span class="NormalTextRun SCXW81732228 BCX8">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=InverseSourceAlpha</span></span>
3. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">kPXP\_PorterDuffOver</span><span class="NormalTextRun SCXW81732228 BCX8"> : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=One, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">InverseSourceAlpha</span><span class="NormalTextRun SCXW81732228 BCX8"> \\n</span></span>
4. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">kPXP\_PorterDuffIn</span><span class="NormalTextRun SCXW81732228 BCX8"> : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">DestAlpha</span><span class="NormalTextRun SCXW81732228 BCX8">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=Zero \\n</span></span>
5. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">kPXP\_PorterDuffOut</span><span class="NormalTextRun SCXW81732228 BCX8"> : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">InverseDestAlpha</span><span class="NormalTextRun SCXW81732228 BCX8">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=Zero \\n</span></span>
6. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">kPXP\_PorterDuffDst</span><span class="NormalTextRun SCXW81732228 BCX8"> : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=Zero, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=One \\n</span></span>
7. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">kPXP\_PorterDuffDstAtop</span><span class="NormalTextRun SCXW81732228 BCX8"> : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">InverseDestAlpha</span><span class="NormalTextRun SCXW81732228 BCX8">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">SourceAlpha</span><span class="NormalTextRun SCXW81732228 BCX8"> \\n</span></span>
8. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">kPXP\_PorterDuffDstOver</span><span class="NormalTextRun SCXW81732228 BCX8"> : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">InverseDestAlpha</span><span class="NormalTextRun SCXW81732228 BCX8">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=One \\n</span></span>
9. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">kPXP\_PorterDuffDstIn</span><span class="NormalTextRun SCXW81732228 BCX8"> : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=Zero, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">SourceAlpha</span><span class="NormalTextRun SCXW81732228 BCX8"> \\n</span></span>
10. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">kPXP\_PorterDuffDstOut</span><span class="NormalTextRun SCXW81732228 BCX8"> : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=Zero, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">InverseSourceAlpha</span><span class="NormalTextRun SCXW81732228 BCX8"> \\n</span></span>
11. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">kPXP\_PorterDuffXor</span><span class="NormalTextRun SCXW81732228 BCX8"> : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">InverseDestAlpha</span><span class="NormalTextRun SCXW81732228 BCX8">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=</span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">InverseSourceAlpha</span><span class="NormalTextRun SCXW81732228 BCX8"> \\n</span></span>
12. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">kPXP\_PorterDuffClear</span><span class="NormalTextRun SCXW81732228 BCX8"> : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=Zero, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=Zero \\n</span></span>
13. <span class="TextRun SCXW81732228 BCX8" lang="en-us"><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">kPXP\_PorterDuffMax</span><span class="NormalTextRun SCXW81732228 BCX8"> : </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">sAF</span><span class="NormalTextRun SCXW81732228 BCX8">=One, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW81732228 BCX8">dAF</span><span class="NormalTextRun SCXW81732228 BCX8">=One \\n\\</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW81732228 BCX8"><span class="SCXW81732228 BCX8"> </span>  
    </span>

# Various Device Specific Content

# RT117XBitmapConverter

#### Description

This document provides a complete list of bitmap formats supported by the **RT117X target**.

These formats define how pixel color and alpha data are stored in memory. The RT117X extended bitmap formats support alpha-only, RGB, and ARGB image formats, enabling a balance between memory usage, performance, and visual quality.

These bitmap converters are supported only on the target. Windows simulation uses the default bitmap converter.

##### Alpha-Only Formats

Formats that store only transparency information, typically used for masks and blending.

<table border="1" id="bkmrk-serial-no.-format-de" style="border-collapse: collapse; width: 100%; height: 59.5938px;"><colgroup><col style="width: 11.2038%;"></col><col style="width: 39.5675%;"></col><col style="width: 49.2287%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">**Serial No.**</td><td style="height: 29.7969px;">**Format**</td><td style="height: 29.7969px;">**Description**</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">1</td><td style="height: 29.7969px;">RT117XExtendedBitmapFormatA8</td><td style="height: 29.7969px;">8-bit alpha-only format.</td></tr></tbody></table>

##### RGB Color Formats

Formats that store color information without an alpha channel, optimized for memory efficiency.

<table border="1" id="bkmrk-serial-no.-format-de-1" style="border-collapse: collapse; width: 100%; height: 89.3907px;"><colgroup><col style="width: 11.5614%;"></col><col style="width: 39.4703%;"></col><col style="width: 48.9683%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">**Serial No.**</td><td style="height: 29.7969px;">**Format**</td><td style="height: 29.7969px;">**Description**</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">1</td><td style="height: 29.7969px;">RT117XExtendedBitmapFormatRGB565</td><td style="height: 29.7969px;">16-bit RGB format (5-6-5).</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">2</td><td style="height: 29.7969px;">RT117XExtendedBitmapFormatXRGB8888</td><td style="height: 29.7969px;">32-bit color with unused alpha channel (RGB only).</td></tr></tbody></table>

##### ARGB Color Formats

Formats that store color information along with an alpha channel for transparency.

<table border="1" id="bkmrk-serial-no.-format-de-2" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 11.5586%;"></col><col style="width: 39.2045%;"></col><col style="width: 49.2131%;"></col></colgroup><tbody><tr><td class="align-center">**Serial No.**</td><td>**Format**</td><td>**Description**</td></tr><tr><td class="align-center">1</td><td>RT117XExtendedBitmapFormatARGB8888</td><td>32-bit color with 8 bits per channel including alpha.</td></tr><tr><td class="align-center">2</td><td>RT117XExtendedBitmapFormatARGB1555</td><td>16-bit color with 1-bit alpha and 5 bits per RGB channel.</td></tr><tr><td class="align-center">3</td><td>RT117XExtendedBitmapFormatARGB4444</td><td>16-bit color with 4 bits per channel including alpha.</td></tr></tbody></table>