Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. #include <kolibri.h>
  2. #include <kos_heap.h>
  3. #include <load_lib.h>
  4. #include <l_rasterworks.h>
  5.  
  6. using namespace Kolibri;
  7.  
  8. const char header[] = "Rasterworks example";
  9. char library_path[2048];
  10.  
  11. namespace Kolibri{
  12.         char CurrentDirectoryPath[2048];
  13. }
  14.  
  15. void *buffi;
  16.  
  17. bool KolibriOnStart(TStartData &kos_start, TThreadData /*th*/)
  18. {
  19.         kos_start.Left = 10;
  20.         kos_start.Top = 40;
  21.         kos_start.Width = 800;
  22.         kos_start.Height = 300;
  23.         kos_start.WinData.WindowColor = 0xd0d0d0;
  24.         kos_start.WinData.WindowType = 0x33; // 0x34 - fixed, 0x33 - not fixed
  25.         kos_start.WinData.Title = header;
  26.         if(LoadLibrary("rasterworks.obj", library_path, "/sys/lib/rasterworks.obj", &import_rasterworks))
  27.         {
  28.                 buffi = new char[768*256*3 +8];
  29.                 *((long*)buffi) = 768;
  30.                 *((long*)buffi+1) = 256;       
  31.         } else {
  32.                 buffi = 0;
  33.         }
  34.         return true;
  35. }
  36.  
  37. void KolibriOnPaint(void)
  38. {
  39.         DrawText(10,5, 0x30000000, "Системный шрифт 8x16");
  40.         if(!buffi) return;
  41.  
  42.         long ln_str = countUTF8Z("Пример работы", -1);
  43.  
  44.         memset((char*)buffi+8, (char)-1, 768*256*3);
  45.  
  46.         drawText(buffi, 0,  0, "Пример работы", ln_str, 0xFF000000, 0x30C18);
  47.         drawText(buffi, 0, 32, "Пример работы", ln_str, 0xFF000000, 0x1030C18);
  48.         drawText(buffi, 0, 64, "Пример работы", ln_str, 0xFF000000, 0x2030C18);
  49.         drawText(buffi, 0, 96, "Пример работы", ln_str, 0xFF000000, 0x4030C18);
  50.         drawText(buffi, 0,128, "Пример работы", ln_str, 0xFF000000, 0x8030C18);
  51.         drawText(buffi, 0,160, "Пример работы", ln_str, 0xFF000000, 0x0F031428);
  52.  
  53.         PutImage((char*)buffi+8, 5, 25, 768, 256);
  54. }
  55.  
  56. bool KolibriOnClose(TThreadData /*th*/) {
  57.         if(buffi) {delete buffi; buffi = 0;}
  58.         return true;
  59. }