MWM5 Library
0.9
0.9
  • The MWM5 Library / TWELITE STAGE
  • Changes & Download
  • License
  • Getting started
    • Environment
    • Building
    • Hardware
    • Examples
      • AppTwelite_Recv
      • PAL_Recv
    • Examples (console)
      • glancer_con
    • Using Library
      • Parser
      • Terminal
  • References
    • the_app
    • Parser
      • TWESERCMD
        • IParser
        • AsciiParser
      • TWEFMT
        • TwePacket, spTwePacket
          • E_PKT
          • idenify_packet_type()
          • newTwePacket()
          • refTwePacket()
        • Packet Types
          • TwePacketAppIO
            • DataAppIO
          • TwePacketPal
            • DataPal
            • E_PAL_PCB
            • PalEvent
            • PalBase
              • PalMag
              • PalAmb
              • PalMot
          • TwePacketActStd
            • DataAppUART (Act用)
          • TwePacketTwelite
            • DataTwelite
          • TwePacketAppUart
            • DataAppUART
    • Terminal
      • TWETERM
        • ESC Sequence
        • TermAttr
        • ITerm
        • TWETerm_M5_Console
      • TWEFONT
        • FontDef
        • createFont???()
        • drawChar()
        • queryFont()
    • Basics
      • TWE
        • IStreamOut
        • Print Formatted
      • TWEUTILS
        • FixedQueue
        • InputQueue
        • SimpleBuffer
          • SmplBuf_Byte
          • SmplBuf_ByteL<N>
          • SmplBuf_ByteSL<N>
          • SmplBuf_WChar
          • SmplBuf_WCharL<int>
GitBook提供
このページ内
  • 関数定義
  • 実装について
PDFとしてエクスポート
  1. References
  2. Terminal
  3. TWEFONT

drawChar()

フォントの描画

フォントをスクリーン上に描画します。

以下の例では、Bボタンを押すたびに、事前に生成したフォントID=10のフォントを用いて固定の文字列を描画します。

void loop() {
	if (M5.BtnB.wasReleased()) {
		static int idx = 0;
		const char msg[3][16] = {
		   	"ABCD1234", "あいうえ", "やあ世界" };
		
		auto&& font = queryFont(10); // use font ID=10
		
		drawChar(
			font,         // フォント指定
			0, 240 - 30,  // 左上座標 (X,Y)
			msg[idx],     // 文字列
			RED,          // 文字色
			BLACK,        // 背景色
			0x01);        // オプション 0x01:BOLD
		
		idx++; if (idx >= 3) idx = 0;
	}
}

関数定義

int16_t drawChar(const FontDef& font, int32_t x, int32_t y, 
    uint16_t c, uint32_t color, uint32_t bg, uint8_t opt);
    
int16_t drawChar(const FontDef& font, int32_t x, int32_t y,
    const char *s, uint32_t color, uint32_t bg, uint8_t opt);
    
int16_t drawChar(const FontDef& font, int32_t x, int32_t y,
    const uint16_t* s, uint32_t color, uint32_t bg, uint8_t opt);

fontを用い、左上座標(x,y)に、文字色fg、背景色bg、オプションoptで文字を描画します。

uint16_t cをパラメターとして与えた場合は、Unicode c に対応する文字を1文字描画します。

const char *sをパラメータとして与えた場合は、sをUTF-8としてデコードし、文字列として出力します。

const uint16_t* sをパラメータとして与えた場合は、Unicode文字列として描画します。

optはオプションのビットマップです。以下の指定が可能です。

  • 0x01 - 太字指定

  • 0x02 - カーソルの描画

戻り値は、描画が行われればX(幅)方向に描画したピクセル数を返し、エラーなどが発生したときは0を返します。

実装について

実装時では以下のM5StackのAPIを利用しています。

  • M5.Lcd.startWrite()

  • M5.Lcd.setWindow()

  • M5.Lcd.endWrite()

  • tft_Write_16()

前へcreateFont???()次へqueryFont()

最終更新 5 年前