Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> многоцветовая графика (256 цветов и более), желательно для 640*480 и выше 
:(
    Опции темы
dima_mak
Дата 16.7.2004, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист любитель
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 25.5.2004

Репутация: нет
Всего: нет



А при модэ=0 при попытке нарисовать линию выдаёт
Цитата

16-разрядная подсистема MS-DOS
________
Turbo C++ IDE
Процессор NTVDM обнаружил недопустимую инструкцию.
CS:d002 IP:0000 OP:ff 3f ff 1f ff
Для завершения раб. приложения нажмите "Закрыть".

PM MAIL   Вверх
shara
Дата 17.7.2004, 03:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 29.6.2004
Где: печенье?

Репутация: нет
Всего: 2



dima_mak
лампочка мигает потому-что или библиотека не понимает твою видеокарту или комп не поддерживает такое разришение(покрайней мере заданное таким образом) или ещё что-то в этом роде.
вобщем, народ, не партесь. мой вам совет, пишите под Win ато будет такая куча проблем со скоростью работы с графикой и совместимостью програм с другими компами что мне даже представить страшно. если вам надо работать с графикой - то купите себе книгу по DirectX вчастности по DirectDraw и учите её, мне этото вариант больше нравится, хотя кто его знает.
и еще одно эта библиотека SVGA256.bgi так медленно работает что её можно нормально использовать только на самом маленьком разрешании. (сам видел) sad.gif


--------------------
   с точки зрения аэродинамики шмель не может летать  
PM MAIL   Вверх
Конструктор
Дата 19.7.2004, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 641
Регистрация: 12.5.2004
Где: Москва

Репутация: нет
Всего: 10



Цитата
еще одно эта библиотека SVGA256.bgi так медленно работает что её можно нормально использовать только на самом маленьком разрешании. (сам видел) sad.gif


Не знаю, у меня на 486 33МГц все нормально работает (в смысле работало) если использовать вместе с MTX библиотечкой. Вполне шустро, только мерцает иногда зараза при перерисовке.

PM MAIL WWW ICQ   Вверх
Graf Zeppelin
Дата 1.8.2004, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 28.3.2004

Репутация: нет
Всего: 1



У меня тоже выбрасывает сообщение об ошибке sad.gif
--------------------
Jah, help me!
PM MAIL   Вверх
Mysterio
Дата 3.8.2004, 09:27 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Hi all.
Чего-то меня достала эта SVGA256.bgi. С ней куча проблем(типа MODE NOT SUPPORTED ON THIS CARD {хотя вроде и GeForce440, и на другом компе тоже самое пишет {TsengLabsPCI(2M)} и просто не хочет переходить в графику(мигает курсор доса вверху,ошибок не выдаёт,а само типа рисует{//задержка})});
SVGA режим пашет только через прямой доступ к видеопамяти, а от этой .bgi я добился только 320x200 256цв.(это стандартн.VGA режим). Если кому интересно, то вот инициализация через VESA в 640x480x256(было на каком-то сайте)
Код
#include <conio.h>
#include <stdio.h>
#include <dos.h>
void setsvga ( int );
void display256( );
void set_pixel64 ( int, int, unsigned char );
main( )
{
     clrscr();
     display256();
     return (0);
}
void display256( )
{
     setsvga ( 0x101 );
          for(int x1=0;x1<300;x1++)
              for(int y1=0;y1<480;y1++)
                set_pixel64(x1*2+1,y1,y1);
  for(x1=256*2.3;x1>0;x1-=2)//тут можно помутить
         for(int y1=0;y1<480;y1++)
             set_pixel64(x1,y1,x1/2);
     getch( );
     setsvga ( 0x003 );//нормальный TEXT MODE
}
void setsvga ( int m )
{
     union REGS i, o;
     i.x.ax = 0x4f02;
     i.x.bx = m;
     int86 ( 16, &i, &o );
}
void set_vesa_seg ( int bank_number )
{
     union REGS i, o;
     i.x.ax = 0x4F05;
     i.x.bx = 0;
     i.x.dx = bank_number;
     int86 ( 16, &i, &o );
}
void set_pixel64 ( int x, int y, unsigned char color )
{
     unsigned short curr_vesa_seg = 0xffff;
     unsigned short vesa_seg,vesa_offset;
     unsigned long seg_size = (0xffff) + 1L;
     unsigned long offset;
     offset = ( ( unsigned long ) y * ( unsigned long ) 640 + ( unsigned long ) x );
     vesa_seg = offset / seg_size;
     vesa_offset = offset % seg_size;
     if ( vesa_seg != curr_vesa_seg )
     {
    set_vesa_seg ( vesa_seg );
    curr_vesa_seg = vesa_seg;
     }
     pokeb ( 0xA000, ( unsigned ) vesa_offset, color );
}
.И кучка режимов для setsvga [/quote]
100H - 640x400x256
101H - 640x480x256 //16 цветов не привожу
103H - 800x600x256
105H - 1024x768x256
107H - 1280x1024x256//дальше текстовые до
10DH - 320x200x32768... и т.д.(можно эксперементировать до 11AH)[quote]
Мне хотелось бы иметь 112H(640x480x64k цвет),но мозги уже сворачиваюстя в трубочку.Можть кто подскажет? sample.gif
  Вверх
oleg1973
Дата 3.8.2004, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 1
Всего: 34



ddraw поможет


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
Mysterio
Дата 3.8.2004, 18:51 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Лично я ненавижу DIRECTы всякие и винDOS в том числе. Я вообще пытаю свою систему.
  Вверх
Guest
Дата 3.10.2004, 16:12 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











это потому что у тебя либо манитор либо видюха не поддерживает такой режим или не поддерживает такой режим при такой попытке его активировать. у меня на 800*600 тоже лампочка мигает, помняй разрешалово.
и вообще народ, даю вам ХОРОШИЙ совет: не работайте на прямую с видео, это медленно, неудобно и не всегда выходит sad.gif я убедился на собственном опыте. если надо работать с графой пользуйтесь например DirectX ом результаты меня ВПОЛНЕ УСТРАИВАЮТ.
  Вверх
Maxim Sabalyauskas
Дата 12.10.2004, 03:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 1.7.2004

Репутация: нет
Всего: нет



Цитата
Лично я ненавижу DIRECTы всякие и винDOS в том числе. Я вообще пытаю свою систему.

Ненавидите DIRECTы - попробуйте OPENы (в смысле ГээЛы).

Вот что! Как насчёт того, чтобы написать свою библиотеку графики?

Всем, кто хочет написать (или уже пишет) свои дрова, тулкиты и т.п., давайте дружить по имэйлу - поделимся опытом!
adv/party.gif


PM MAIL   Вверх
Mysterio
Дата 28.12.2004, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Планирующий
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 28.12.2004

Репутация: нет
Всего: нет



Ну уж нет,люди. Мне нужен либо DOS либо сразу прерываниями. Насчет мыла идея заманчивая smile
И еще вопрос. У меня в VESA режиме(любом) получается всего одна страница.Надо хотя-бы 2.
Или это делается по-другому? smile
PM MAIL   Вверх
Michey
Дата 20.3.2005, 05:10 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Помогите пожалуйста.
В проге, если открыть забитые строки, то всё перестаёт работать.

Цель: мне необходимо выводить одиночные символы графическом режиме DOS, но всё время прога выдаёт весь массив или если это одна переменная, то символ и букву "я". Почему????? smile Уже полторы недели мучаюсь. smile
Через указатель - весь массив.
Через посредника - весь массив.
С массива [1] через посредника в массив [10] вываливается массив [10].

// Прога

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <ctype.h>

int main()
{
int graphdriver=DETECT, gmode, errorcode;
int c;
char str[10];
char ch[1];
char cx;

initgraph(&graphdriver, &gmode, "");
errorcode = graphresult();

if(errorcode != grOk)
{
printf("ЋиЁЎЄ  Ё­ЁжЁ «Ё§ жЁЁ ¤а ©ўҐа  %i \n", errorcode=graphresult());
printf("\n? ¦¬Ё Є« ўЁиг!\n");
getch();
exit(1);
}
outtext ("Insert text: ");
for (c=0; c<10; c++)
{
ch[0]=getch();
// cx=ch[0];
// str[c]=cx;
if (*ch==' ' || *ch==27) break;
outtext (ch);
gotoxy(40,15);
printf("%c", *ch);
}

closegraph();
return 0;
}
  Вверх
Michey
Дата 20.3.2005, 05:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 5
Регистрация: 20.3.2005
Где: Каралия

Репутация: нет
Всего: нет



Да, теперь я зарегестрировался smile
PM MAIL ICQ   Вверх
Guest
Дата 21.10.2005, 20:45 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











спасибо
  Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0526 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.