Difference between revisions of "Modules/print/Usage"

From MSX Game Library

< Modules‎ | print

Line 1: Line 1:
 
Use of this module begins with the initialization of a font. Then you can use all the functions to display text.
 
Use of this module begins with the initialization of a font. Then you can use all the functions to display text.
  
You have several render mode:
+
=== Modes ===
 +
You have several font render modes.
 +
 
 +
==== Text ====
 +
Draw characters as pattern names (text mode). Need {{C|PRINT_USE_TEXT}} compile option.
 +
 
 +
// > PRINT_MODE_BITMAP          Draw characters from RAM (R-T unpack font data and draw it). Need PRINT_USE_BITMAP or PRINT_USE_VRAM compile option.
 +
// > PRINT_MODE_BITMAP_TRANS    Draw characters from RAM with transparency (R-T unpack font data and draw it). Need PRINT_USE_BITMAP or PRINT_USE_VRAM compile option.
 +
// > PRINT_MODE_BITMAP_VRAM    Draw characters from VRAM (font data is upack once in VRAM thne drawing is done by VRAM copy). Need PRINT_USE_VRAM compile option.
 +
// > PRINT_MODE_SPRITE          Draw characters from sprites (load font data as sprite pattern in VRAM then display characters using sprite system). Need PRINT_USE_SPRITE compile option.
 +
 
 +
 
 
* Text (using tiles/characters set for tiled-based screen modes),
 
* Text (using tiles/characters set for tiled-based screen modes),
 
* Bitmap (draw text from RAM to VRAM for bitmap screen modes),
 
* Bitmap (draw text from RAM to VRAM for bitmap screen modes),
Line 42: Line 53:
 
Print_DrawText("SPRT");
 
Print_DrawText("SPRT");
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
=== Font mode compatibility matrix ===

Revision as of 18:04, 13 January 2025

Use of this module begins with the initialization of a font. Then you can use all the functions to display text.

Modes

You have several font render modes.

Text

Draw characters as pattern names (text mode). Need PRINT_USE_TEXT compile option.

// > PRINT_MODE_BITMAP Draw characters from RAM (R-T unpack font data and draw it). Need PRINT_USE_BITMAP or PRINT_USE_VRAM compile option. // > PRINT_MODE_BITMAP_TRANS Draw characters from RAM with transparency (R-T unpack font data and draw it). Need PRINT_USE_BITMAP or PRINT_USE_VRAM compile option. // > PRINT_MODE_BITMAP_VRAM Draw characters from VRAM (font data is upack once in VRAM thne drawing is done by VRAM copy). Need PRINT_USE_VRAM compile option. // > PRINT_MODE_SPRITE Draw characters from sprites (load font data as sprite pattern in VRAM then display characters using sprite system). Need PRINT_USE_SPRITE compile option.


  • Text (using tiles/characters set for tiled-based screen modes),
  • Bitmap (draw text from RAM to VRAM for bitmap screen modes),
    • Bitmap with transparency.
  • VRAM (put font on VRAM and draw from there; slower to initialize, quicker to draw),
  • Sprite (draw text using sprites).

Example using tile-based render mode:

#include "font/font_mgl_sample8.h"

VDP_SetMode(VDP_MODE_SCREEN1);            // Initialize screen mode 1 (tiled-base mode)
Print_SetTextFont(g_Font_MGL_Sample8, 1); // Upload font tile-set from index 1
Print_SetPosition(10, 10);                // Position in tile grid unit
Print_DrawText("Text mode");

Example using bitmap render mode for MSX2:

#include "font/font_mgl_sample6.h"

VDP_SetMode(VDP_MODE_SCREEN5);            // Initialize screen mode 5 (bitmap mode)
Print_SetBitmapFont(g_Font_MGL_Sample6);  // Initialize bitmap font
Print_SetOutline(TRUE, COLOR_GRAY);       // Set outline effect
Print_SetPosition(100, 100);              // Position in pixel unit
Print_DrawText("Bitmap mode");

Print_SetVRAMFont(g_Font_MGL_Sample6, 212, COLOR_WHITE);
Print_SetPosition(100, 150);              // Position in pixel unit
Print_DrawText("VRAM mode");

Example using sprite render mode:

#include "font/font_mgl_sample8.h"

VDP_SetMode(VDP_MODE_SCREEN1);            // Initialize screen mode 1 (tiled-base mode)
Print_SetSpriteFont(g_Font_MGL_Sample8, 0, 0);
Print_SetPosition(100, 50);               // Position in pixel unit
Print_DrawText("SPRT");

Font mode compatibility matrix