LCD画面の長方形の範囲にGetScreenで取得したイメージを描画します。

構文

int SetScreen(
  int x, 
  int y,
  int width, 
  int height, 
  unsigned char* buffer
);

パラメータ

x
[in] 長方形の左端のx座標位置を指定します。
y
[in] 長方形の上端のy座標位置を指定します。
width
[in] 長方形の水平方向の幅を指定します。
height
[in] 長方形の垂直方向の幅を指定します。
buffer
[in] 描画するイメージのバッファを指定します。

戻り値

 成功したらOKを、それ以外ならばERRORを返します。

解説

 設定可能な値は以下の通りです。
変数下限上限
x 0 DISP_WIDTH - 1
y 0 DISP_HEIGHT - 1
width 1 DISP_WIDTH - x
height 1 DISP_HEIGHT - y
 ステータスバーの表示を設定した場合、ステータスバーの範囲の値を指定しても、エラーは返しませんが、ステータスバー領域に描画しません。
 ステータスバーの表示を設定した場合、設定可能なY座標値は以下の通りとなります。
変数下限上限
x 0 DISP_WIDTH - 1
y 0 DISP_HEIGHT - 17
width 1 DISP_WIDTH - x
height 1 DISP_HEIGHT - 16 - y
説明
DISP_WIDTH 128 ピクセル
DISP_HEIGHT 160 ピクセル
 1ドットのデータは3バイトで、色データは1バイト毎に、赤、緑、青の順番で並んでいます。
 1ドットのデータは、原点から水平方向に順番に並んでいます。  水平方向のデータの終端の次は、垂直方向に1ドット下の左端のデータに続きます。  画面座標の原点は左上です。
 Windows bitmapとは座標の原点、および色データの並び順が異なるのでご注意ください。

必要条件

ヘッダファイル:
lib.h
ライブラリファイル:
libSTARTUPOPH5000.a

サンプル

#include <stdio.h>
#include <stdlib.h>
#include "lib.h"
void main(void)
{
    int lvIndex;
    unsigned char *buffer = malloc(DISP_WIDTH * DISP_HEIGHT * 3);
    printf("[SetScreen]\n");
    FillCircle(DISP_WIDTH/2, DISP_HEIGHT/2, DISP_WIDTH/4, RGB_BLUE);
    if (buffer == NULL){
        printf("malloc error\n");
        return;
    }
    GetScreen(0, 0, DISP_WIDTH, DISP_HEIGHT, buffer);
    ResetKey();
    GotoXY(0, 0);
    printf("Press to clear\r\n");
    while(!kbhit()){
        Idle();
    }
    ClearDisplay();
    ResetKey();
    GotoXY(0, 0);
    printf("Press to redraw\r\n");
    while(!kbhit()){
        Idle();
    }
    SetScreen(0, 0, DISP_WIDTH, DISP_HEIGHT, buffer);
    free(buffer);
    while(1){
        Idle();
    }
}

最終更新日:2023/01/16