[[ header START ]]

Welcome to OS2.GURU site! (eComStation.RU)

Select your language: Russian English Deutch Spanish Italian Portuguese Czech Polish French

Frequently asked questions and answers:
telegram

Форум обсуждение

telegram

Send message

telegram

[ +7-981-8529467 (Санкт-Петербург)

telegram

t.me/os2_guru

eComStation.RU


ru · en · de · es · it · pt · cz · pl · fr
OS/2 is a greatly different operating system for PC (ArcaOS, eComStation, IBM OS/2 Warp)
Applications, news, reviews, support of users, hardware, questions and answers.
 
[What is OS/2?  News  Install  Update  
 
 
Usage  Future  Community  Projects  

How to buy
russian OS/2 apps?

The concept of
OS/2 development

(Map of the site)

 
 
[[ head-3-search ]]

Report: OS/2 compatible hardware

[[ head-3-search END ]]

 
Update

 
Applications

 
Advantages:

 
For developer:

 
(Пайпы программ)

 
Companies:

 
History:

 
(Бонусы)

 
Advice:

 
(Барьеры и решения)

 
Technologies:

 
(Применение в науке, лаборатории, ..)

 

 
Solutions

 
New eComStation:

 
Future:

 
(Ссылки на другие сайты)

 
(Картинка дня)

 
OS/2 artefacts:

 
Gadgets:

eCo Software Developer Connection


About DevCon
Subscription to DevCon
Budget of DevCon
FAQ


Roadmap
eCo Software runtime
eCo Software toolkit
Contacts

  You can sponsor the development of the libraries,
control the expenses

Output via GRADD

      

#include 

PBYTE pVRAM;
FOURCC ScreenColorFormat;
ULONG  ScanLineSize;
ULONG  ScreenWidth;
ULONG  ScreenHeight;
ULONG  BPP;

PBYTE  PointPtr;

INITPROCOUT initout;
GDDMODEINFO  ScreenModeInfo;
HWREQIN hwreqin;
RECTL   rctl;

ULONG rc;

      /* получим указатель на начало видеопамяти */

      initout.ulLength = sizeof(initout);
      rc = VMIEntry(0, VMI_CMD_INITPROC, NULL, &initout);
      if (rc) {
         // ошибка, чего-то где-то не так
      }
      pVRAM = (PBYTE)(initout.ulVRAMVirt);

      /* теперь получим информацию об экранном режиме */

      ScreenModeInfo.ulLength = sizeof(ScreenModeInfo);
      rc = VMIEntry(0, VMI_CMD_QUERYCURRENTMODE, NULL. &ScreenModeInfo);
      ScreenWidth = ScreenModeInfo.ulHorizResolution;
      ScreenHeight = ScreenModeInfo.ulVertResolution;
      ScanLineSize = ScreenModeInfo.ulScanLineSize;
      ScreenColorFormat = ScreenModeInfo.fccColorEncoding;

      /* получим количество байт на пиксель */
      switch (ScreenColorFormat) {
         case FOURCC_LUT8: // 256 цветов с палитрой
              BPP = 1;
              break;
         case FOURCC_R555: // 32768 цветов
         case FOURCC_R565: // 65536 цветов
              BPP = 2;
              break;
         case FOURCC_RGB3: // 16 млн цветов, три байта на пиксель
         case FOURCC_BGR3: // обратный порядок байт
              BPP = 3;
              break;
         case FOURCC_RGB4:
         case FOURCC_BGR4: // 16 млн цветов, четыре байта на пиксель
              BPP = 4;
              break;
      }
      /* Теперь чтобы нарисуем точку на экране с координатами x,y */

      PointPtr = pVRAM + y*ScanLineSize + x*BPP;

      /* Захватываем экран, чтобы не было глюков */
      hwreqin.ulLength = sizeof(hwreqin);
      hwreqin.ulFlags = REQUEST_HW;
      /* мы пишем в экран, нужно сообщить об этом градду, 
         на случай если используется софтверный курсор */
      hwreqin.cScrChangeRects = 1;
      hwreqin.arectlScreen = &rctl;
      /* в rctl нужно запихать координаты прямоугольника, в котором мы рисуем */
      rc =  VMIEntry(0, VMI_CMD_REQUESTHW, &hwreqin, NULL);
      if (rc) {
         // чего-то некругло, в экран писать нельзя!
      }
      /* Допустим у нас экран в R565 - формате, то есть два байта на пиксель */

      *((PUSHORT)(PointPtr)) =  Color;
      /* освободим видюху */
      hwreqin.ulFlags = 0;
      rc =  VMIEntry(0, VMI_CMD_REQUESTHW, &hwreqin, NULL);

 

 
For dummies

Report: OS/2 compatible hardware

 
Reviews


     
  Why eComStation?
Features
Advantages
Usage
Clips and screenshots
   eComStation for
for businessmen
for students and engineers
for reselles of computers
community of users
   Developer
Distribute the program
Description of API, libraries
Start new project
Competition
   Applications
On-line catalogue
Select from eCo Market
   Support service
Contact the web-master
Buy eComStation
Frequently asked questions
for Beginners
 
 
© 2001 - 2021 eCo Software, All rights reserved
Сибирский Медведь технологическая компания
eComStation Serenity Systems International • OS/2 Warp IBM Corporation • ArcaOS Arca Noae