Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 27.12.2011, 00:52   #1
616}[aKeP
Нуждающийся
 
Аватар для 616}[aKeP
 
Регистрация: 23.02.2011
Сообщений: 54
Написано 3 полезных сообщений
(для 5 пользователей)
Сообщение DirectX and WinAPI(GDI)

Добрый вечер!

Возможно ли получив у поверхности(surface) контекст устройства(DC) рисовать в ней методами GDI?

Примерно так:
HDC hdc;
sur->GetDC(&hdc);
Rectangle(hdc,0,0,10,10);

(Offline)
 
Ответить с цитированием
Старый 28.12.2011, 18:39   #2
616}[aKeP
Нуждающийся
 
Аватар для 616}[aKeP
 
Регистрация: 23.02.2011
Сообщений: 54
Написано 3 полезных сообщений
(для 5 пользователей)
Ответ: DirectX and WinAPI(GDI)

Спасибо большое! Ответил на свой же вопрос - это возможно!))
Кстате, не плохой способ 2д графику выводить!)
(Offline)
 
Ответить с цитированием
Старый 28.12.2011, 19:30   #3
Knightmare
Дэвелопер
 
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений
(для 2,920 пользователей)
Ответ: DirectX and WinAPI(GDI)

Плохой сопсоб 2D графику выводить. Около 10 лет назад от этого специально ушли.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Knightmare за это полезное сообщение:
pozitiffcat (29.12.2011), Reizel (29.12.2011)
Старый 28.12.2011, 21:56   #4
616}[aKeP
Нуждающийся
 
Аватар для 616}[aKeP
 
Регистрация: 23.02.2011
Сообщений: 54
Написано 3 полезных сообщений
(для 5 пользователей)
Ответ: DirectX and WinAPI(GDI)

Сообщение от Knightmare Посмотреть сообщение
Плохой сопсоб 2D графику выводить. Около 10 лет назад от этого специально ушли.
Микромягкие не отказались, они написали специальное апи для работы с видеокартой, а gdi полезно использовать при написание простых оконных приложений. Фактически мне в нем нужны были только функции отрисовки примитивов, а то полигонами окружность сложно рисовать, а заполняя вручную информацию в поверхности - геморройно.
(Offline)
 
Ответить с цитированием
Старый 28.12.2011, 21:59   #5
Knightmare
Дэвелопер
 
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений
(для 2,920 пользователей)
Ответ: DirectX and WinAPI(GDI)

Кэп подсказывает - ушли от использования GDI в играх, ибо медленно. Если для тебя проблема нарисовать окружность, то тебе не стоит писать движка, ага.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Reizel (29.12.2011)
Старый 28.12.2011, 23:54   #6
616}[aKeP
Нуждающийся
 
Аватар для 616}[aKeP
 
Регистрация: 23.02.2011
Сообщений: 54
Написано 3 полезных сообщений
(для 5 пользователей)
Ответ: DirectX and WinAPI(GDI)

Сообщение от Knightmare Посмотреть сообщение
Кэп подсказывает - ушли от использования GDI в играх, ибо медленно. Если для тебя проблема нарисовать окружность, то тебе не стоит писать движка, ага.
DirectX была написана, не для тупой отрисовки, ее написали для 95й винды, чтоб возможно было получить более простой доступ к аппаратной части компьютера. GDI использует те же принципы, что и directX(а возможно и вообще директ), но в гди идет отрисовка в необнавляемую часть окна, которая обновляется по сообщению, а из-за того, что сообщений много отрисовка замедленная и иногда с мерцанием. А я использую отрисовку гди для отрисовки простой геометрии в задний буфер, под геометрией я не подразумеваю треугольники, я имею ввиду, фигуры, которые сложно нарисовать используя треугольники.
А кто говорил, что для меня проблема нарисовать окружность, мне просто лень . А так, как я хочу написать двиг без использования сторонних библиотек, только на WinApi и DirectX, то имеющиеся в гди функции отрисовки окружности и многогранника, мне облегчат работу, ведь не факт, что моя функция будет производительней их.
(Offline)
 
Ответить с цитированием
Старый 29.12.2011, 09:44   #7
Knightmare
Дэвелопер
 
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений
(для 2,920 пользователей)
Ответ: DirectX and WinAPI(GDI)

Картинку фейспалма нагугли себе сам, я последнее время жутко ленив.
Потом почитай и осмысли принципы работы DX и GDI. Потом подумай на сколько порядков даже самая кривая функция отрисовки откружности через DX будет быстрее GDI.

P.S.
>А кто говорил, что для меня проблема нарисовать окружность, мне просто лень
>А так, как я хочу написать двиг без использования сторонних библиотек, только на WinApi и DirectX
/0
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Reizel (29.12.2011)
Старый 29.12.2011, 12:52   #8
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: DirectX and WinAPI(GDI)


Нет слов. GDI использует DirectX. Шок.
Про мерцание из-за оконных сообщение вообще убило!
Одно из преимуществ использования GDI вместо прямого доступа к оборудованию — это унификация работы с различными устройствами
это означает, что это явно медленнее DirectX
(Offline)
 
Ответить с цитированием
Старый 29.12.2011, 17:37   #9
616}[aKeP
Нуждающийся
 
Аватар для 616}[aKeP
 
Регистрация: 23.02.2011
Сообщений: 54
Написано 3 полезных сообщений
(для 5 пользователей)
Ответ: DirectX and WinAPI(GDI)

Ну ладно ладно, согласен, уделали))) Кто в жизни не заблуждался))
(Offline)
 
Ответить с цитированием
Старый 29.12.2011, 21:49   #10
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: DirectX and WinAPI(GDI)

Сообщение от 616}[aKeP Посмотреть сообщение
Ну ладно ладно, согласен, уделали))) Кто в жизни не заблуждался))
чувак делай как правильно, а не как тебе легче
(Offline)
 
Ответить с цитированием
Старый 29.12.2011, 22:15   #11
616}[aKeP
Нуждающийся
 
Аватар для 616}[aKeP
 
Регистрация: 23.02.2011
Сообщений: 54
Написано 3 полезных сообщений
(для 5 пользователей)
Ответ: DirectX and WinAPI(GDI)

Да просто, я без понятия, как в движке нормально реализовать 2д графику. Прямой доступ к заднему буферу, как я понял, невозможен при попытке изменить данные в заднем буфере вылетает ошибка в адресе памяти. Я хотел рисовать все в текстуру размером с окно и отрисовывать ее перед концом сцены, но это тоже не вариант, слишком долго. Короче я пока просты, испытываю разные средства, чтоб понять то о чем не говорится не в одной книге о, директе.
(Offline)
 
Ответить с цитированием
Старый 30.12.2011, 10:57   #12
Knightmare
Дэвелопер
 
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений
(для 2,920 пользователей)
Ответ: DirectX and WinAPI(GDI)

Берешь квад, натягиваешь текстуру, рисуешь, ???, ПРОФИТ. Самый простой вариант.
(Offline)
 
Ответить с цитированием
Старый 30.12.2011, 14:46   #13
616}[aKeP
Нуждающийся
 
Аватар для 616}[aKeP
 
Регистрация: 23.02.2011
Сообщений: 54
Написано 3 полезных сообщений
(для 5 пользователей)
Ответ: DirectX and WinAPI(GDI)

Да вывод изображений я сделал, просто иногда нужно вывести, какую-нибудь простую геометрию помимо линий и треугольников)
(Offline)
 
Ответить с цитированием
Старый 08.01.2012, 10:08   #14
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,853 пользователей)
Ответ: DirectX and WinAPI(GDI)

Сообщение от 616}[aKeP Посмотреть сообщение
Да вывод изображений я сделал, просто иногда нужно вывести, какую-нибудь простую геометрию помимо линий и треугольников)
Что за простая геометрия?

Кстати говоря Windows7 уже практически не использует GDI.
Конечно есть возможность насильно включить GDI но будет медленнее и уродливее .
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 10:30.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com