kolibrios-fun/programs/bcc32/examples/rasterworks/rasterworks.cpp

59 lines
1.7 KiB
C++
Raw Normal View History

#include <kolibri.h>
#include <kos_heap.h>
#include <load_lib.h>
#include <l_rasterworks.h>
using namespace Kolibri;
const char header[] = "Rasterworks example";
char library_path[2048];
namespace Kolibri{
char CurrentDirectoryPath[2048];
}
void *buffi;
bool KolibriOnStart(TStartData &kos_start, TThreadData /*th*/)
{
kos_start.Left = 10;
kos_start.Top = 40;
kos_start.Width = 800;
kos_start.Height = 300;
kos_start.WinData.WindowColor = 0xd0d0d0;
kos_start.WinData.WindowType = 0x33; // 0x34 - fixed, 0x33 - not fixed
kos_start.WinData.Title = header;
if(LoadLibrary("rasterworks.obj", library_path, "/sys/lib/rasterworks.obj", &import_rasterworks))
{
buffi = new char[768*256*3 +8];
*((long*)buffi) = 768;
*((long*)buffi+1) = 256;
} else {
buffi = 0;
}
return true;
}
void KolibriOnPaint(void)
{
DrawText(10,5, 0x30000000, "Системный шрифт 8x16");
if(!buffi) return;
long ln_str = countUTF8Z("Пример работы", -1);
memset((char*)buffi+8, (char)-1, 768*256*3);
drawText(buffi, 0, 0, "Пример работы", ln_str, 0xFF000000, 0x30C18);
drawText(buffi, 0, 32, "Пример работы", ln_str, 0xFF000000, 0x1030C18);
drawText(buffi, 0, 64, "Пример работы", ln_str, 0xFF000000, 0x2030C18);
drawText(buffi, 0, 96, "Пример работы", ln_str, 0xFF000000, 0x4030C18);
drawText(buffi, 0,128, "Пример работы", ln_str, 0xFF000000, 0x8030C18);
drawText(buffi, 0,160, "Пример работы", ln_str, 0xFF000000, 0x0F031428);
PutImage((char*)buffi+8, 5, 25, 768, 256);
}
bool KolibriOnClose(TThreadData /*th*/) {
if(buffi) {delete buffi; buffi = 0;}
return true;
}