logo-img
  • Фантастика
    • Мистика
    • Историческое фэнтези
    • Ироническая фантастика
    • Альтернативная история
    • Технофэнтези
    • Постапокалипсис
    • Киберпанк
    • Детективная фантастика
    • Стимпанк
    • Героическая фантастика
    • Научная Фантастика
    • Эпическая фантастика
    • Ненаучная фантастика
    • Сказочная фантастика
    • Космоопера
    • Юмористическое фэнтези
    • Ироническое фэнтези
    • Ужасы и мистика
    • Юмористическая фантастика
    • Социально-философская фантастика
    • Космическая фантастика
    • Городское фэнтези
    • Боевая фантастика
    • ЛитРПГ
    • Фантастика
    • Современная сказка
    • Социально-психологическая фантастика
    • Хроноопера
    • Ужасы
    • Мифологическое фэнтези
    • Фэнтези
    • Фантастика: прочее
    • РеалРПГ
    • Славянское фэнтези
    • Бояръ-Аниме
    • Попаданцы
  • Любовные романы
    • Любовно-фантастические романы
    • Прочие любовные романы
    • Остросюжетные любовные романы
    • Любовные романы
    • Короткие любовные романы
    • Любовное фэнтези, любовно-фантастические романы
    • Эротическая литература
    • Эротика
    • Современные любовные романы
    • Исторические любовные романы
  • Приключения
    • Приключения
    • Морские приключения
    • Путешествия и география
    • Вестерны
    • Приключения про индейцев
    • Прочие приключения
    • Приключения для детей и подростков
    • Приключения в современном мире
    • Природа и животные
    • Вестерн, про индейцев
    • Авантюрный роман
    • Рыцарский роман
    • Исторические приключения
  • Романы про измену
книги
  • книги
  • авторы
  • серии
0
logo-img

Фантастика

  • Мистика
  • Историческое фэнтези
  • Ироническая фантастика
  • Альтернативная история
  • Технофэнтези
  • Постапокалипсис
  • Киберпанк
  • Детективная фантастика
  • Стимпанк
  • Героическая фантастика
  • Научная Фантастика
  • Эпическая фантастика
  • Ненаучная фантастика
  • Сказочная фантастика
  • Космоопера
  • Юмористическое фэнтези
  • Ироническое фэнтези
  • Ужасы и мистика
  • Юмористическая фантастика
  • Социально-философская фантастика
  • Космическая фантастика
  • Городское фэнтези
  • Боевая фантастика
  • ЛитРПГ
  • Фантастика
  • Современная сказка
  • Социально-психологическая фантастика
  • Хроноопера
  • Ужасы
  • Мифологическое фэнтези
  • Фэнтези
  • Фантастика: прочее
  • РеалРПГ
  • Славянское фэнтези
  • Бояръ-Аниме
  • Попаданцы

Любовные романы

  • Любовно-фантастические романы
  • Прочие любовные романы
  • Остросюжетные любовные романы
  • Любовные романы
  • Короткие любовные романы
  • Любовное фэнтези, любовно-фантастические романы
  • Эротическая литература
  • Эротика
  • Современные любовные романы
  • Исторические любовные романы

Приключения

  • Приключения
  • Морские приключения
  • Путешествия и география
  • Вестерны
  • Приключения про индейцев
  • Прочие приключения
  • Приключения для детей и подростков
  • Приключения в современном мире
  • Природа и животные
  • Вестерн, про индейцев
  • Авантюрный роман
  • Рыцарский роман
  • Исторические приключения

Детективы и Триллеры

  • Шпионский детектив
  • Прочие Детективы
  • Маньяки
  • Полицейские детективы
  • Исторический детектив
  • Шпионские детективы
  • Классические детективы
  • Триллеры
  • Криминальные детективы
  • Иронические детективы
  • Криминальный детектив
  • Крутой детектив
  • Детективы
  • Триллер
  • Иронический детектив, дамский детективный роман
  • Советский детектив
  • Классический детектив
  • Политический детектив
  • Боевик
  • Про маньяков
  • Медицинский триллер
  • Дамский детективный роман
  • Техно триллер
  • Юридический триллер
  • Боевики
  • Исторические детективы
  • Политические детективы
  • Пьесы

  • Финансы и бизнес

  • Эро литература

Поэзия

  • Поэзия
  • в стихах
  • Эпическая поэзия
  • Басни
  • Песенная поэзия
  • Лирика
  • Визуальная и экспериментальная поэзия, верлибры, палиндромы
  • Поэма, эпическая поэзия
  • Классическая зарубежная поэзия
  • Классическая русская поэзия
  • Поэзия Востока
  • Современная поэзия
  • Классическая поэзия
  • Современная зарубежная поэзия
  • Современная русская поэзия
  • Юмористические стихи, басни
  • Верлибры
  • Палиндромы
  • Экспериментальная поэзия
  • Визуальная поэзия
  • Дом и досуг

Документальная литература

  • Биографии и Мемуары
  • Военная документалистика
  • Военное дело
  • Публицистика
  • Прочая документальная литература
  • Научпоп
  • Документальная литература
  • Военная документалистика и аналитика
  • География, путевые заметки

Религия, духовность, эзотерика

  • Эзотерика
  • Эзотерика, эзотерическая литература
  • Протестантизм
  • Иудаизм
  • Христианство
  • Буддизм
  • Язычество
  • Религиоведение
  • Ислам
  • Прочая религиозная литература
  • Астрология
  • Религия
  • Самосовершенствование
  • Хиромантия
  • Католицизм
  • Индуизм
  • Астрология и хиромантия
  • Православие
  • Религия, религиозная литература
  • Аниме

  • Древние книги

Знания и навыки

  • Учебная и научная литература
  • Саморазвитие / личностный рост
  • Словари, справочники
  • Научно-популярная литература
  • Хобби, досуг
  • Культура и искусство
  • Истории из жизни

Лёгкое чтение

  • Легкая проза
  • Комиксы / манга
  • Боевики, остросюжетная литература
  • Классика жанра
  • Ужасы / мистика
  • Юмористическая литература

Серьёзное чтение

  • Классическая литература
  • Cтихи, поэзия
  • Пьесы, драматургия
  • Об истории серьезно

Юмор

  • Юмористическая проза
  • Анекдоты
  • Юмор
  • Прочий юмор
  • Юмористические стихи
  • Сатира
  • Книги по IT

  • Словари и Энциклопедии

  • Love Action

  • Ценные бумаги

  • Эссе

  • Без Жанра

  • Иностранная литература

  • Народные

  • Романы про измену

  • Образование и наука

  • РПГ

Наука, Образование

  • Историческая фантастика
  • Историческая литература
  • Политика
  • Геология и география
  • Ветеринария
  • Экология
  • Государство и право
  • Астрономия и Космос
  • Математика
  • Шпаргалки
  • Биохимия
  • Обществознание
  • Педагогика
  • Психология
  • Учебники
  • Иностранные языки
  • Детская психология
  • Биофизика
  • Прочая научная литература
  • Языкознание
  • Биология
  • Психотерапия и консультирование
  • Юриспруденция
  • Военная история
  • Альтернативная медицина
  • Философия
  • Медицина
  • Зоология
  • Физика
  • Литературоведение
  • Зарубежная образовательная литература, зарубежная прикладная, научно-популярная литература
  • Языкознание, иностранные языки
  • Биология, биофизика, биохимия
  • Обществознание, социология
  • Психология и психотерапия
  • Востоковедение
  • Химия
  • История
  • Ботаника
  • Экономика
  • Альтернативные науки и научные теории
  • Научная литература
  • Рефераты
  • Секс и семейная психология
  • Книги о войне
  • Популярно об истории
  • Книги о путешествиях
  • Книги по психологии
  • Религия и духовная литература
  • Документальное

Техника

  • Технические науки
  • Радиоэлектроника
  • Архитектура
  • Транспорт и авиация
  • Строительство и сопромат
  • Автодело
  • Металлургия
  • История техники
  • Военное дело, военная техника и вооружение

Справочная литература

  • Справочная литература
  • Руководства
  • Словари
  • Энциклопедии
  • Путеводители
  • Прочая справочная литература
  • Путеводители, карты, атласы
  • Справочники

Фольклор

  • Народные сказки
  • Мифы. Легенды. Эпос
  • Пословицы, поговорки
  • Фольклор: прочее
  • Загадки
  • Детский фольклор
  • Народные песни
  • Былины, эпопея
  • Фольклор, загадки folklore
  • Былины
  • Частушки, прибаутки, потешки
  • Образовательная литература

  • Cпецслужбы

  • Семейная психология

  • Семейный роман

  • Частушки

Литература для детей

  • Детская познавательная и развивающая литература
  • Детская образовательная литература
  • Книги для дошкольников
  • Прочая детская литература
  • Детские приключения
  • Детская проза
  • Детские стихи
  • Детские остросюжетные
  • Детская фантастика
  • Книга-игра
  • Буквари
  • Фантастика для детей
  • Детская литература
  • Проза для детей
  • Внеклассное чтение
  • Игры, упражнения для детей
  • Классическая детская литература
  • Стихи для детей
  • Русские сказки
  • Зарубежная литература для детей
  • Сказки народов мира
  • Зарубежные детские книги
  • Сказки
  • Детские детективы
  • Школьные учебники
  • Учебная литература
  • Книги для подростков

Искусство, Искусствоведение, Дизайн

  • Критика
  • Культурология
  • Театр
  • Искусство и Дизайн
  • Кино
  • Музыка
  • Партитуры
  • Искусствоведение
  • Живопись, альбомы, иллюстрированные каталоги
  • Скульптура и архитектура
  • Мировая художественная культура

Жанр не определён

  • Разное

Деловая литература

  • Экономика
  • Поиск работы, карьера
  • Отраслевые издания
  • Недвижимость
  • Корпоративная культура
  • Делопроизводство
  • Внешнеэкономическая деятельность
  • Бухучет и аудит
  • Торговля
  • Малый бизнес
  • Личные финансы
  • Государственное и муниципальное управление
  • Краткое содержание
  • Ораторское искусство / риторика
  • Работа с клиентами
  • Стартапы и создание бизнеса
  • Маркетинг, PR, реклама
  • Карьера, кадры
  • Маркетинг, PR
  • Финансы
  • Личная эффективность
  • О бизнесе популярно
  • Интернет-бизнес
  • Банковское дело
  • Менеджмент
  • Менеджмент и кадры
  • Тайм-менеджмент
  • Ценные бумаги, инвестиции
  • Кадровый менеджмент
  • Политическое управление
  • Управление, подбор персонала
  • Зарубежная деловая литература
  • Деловая литература

Драматургия

  • Киносценарии
  • Сценарий
  • Античная драма
  • Трагедия
  • Комедия
  • Драма
  • Мистерия, буффонада, водевиль
  • Драматургия
  • Мистерия
  • Водевиль

Дом и семья

  • Педагогика, воспитание детей, литература для родителей
  • Медицина и здоровье
  • Семейные отношения, секс
  • Семейные отношения
  • Рыбалка
  • Отдых / туризм
  • Автомобили и ПДД
  • Сделай сам
  • Прочее домоводство
  • Спорт
  • Здоровье и красота
  • Охота
  • Домашние животные
  • Коллекционирование
  • Хобби и ремесла
  • Кулинария
  • Развлечения
  • Сад и огород
  • Боевые искусства, спорт
  • Домоводство
  • Здоровье
  • Эротика и секс
  • Домашнее хозяйство
  • Интерьеры
  • Хобби / увлечения
  • Мода и стиль
  • Красота
  • Секс / секс-руководства
  • Йога
  • Изобразительное искусство
  • Рукоделие и ремесла
  • Спорт / фитнес
  • Прикладная литература

Компьютеры и Интернет

  • Компьютерное «железо»
  • Базы данных
  • ОС и Сети
  • Интернет
  • Программное обеспечение
  • Программирование
  • Прочая компьютерная литература
  • Учебные пособия, самоучители
  • ОС и Сети, интернет
  • Программирование, программы, базы данных
  • Компьютерное 'железо' (аппаратное обеспечение), цифровая обработка сигналов
  • Зарубежная компьютерная, околокомпьютерная литература
  • Цифровая обработка сигналов

Прочее

  • Фанфик
  • Газеты и журналы
  • Недописанное
  • Комиксы
  • Журналы, газеты
  • Изобразительное искусство, фотография
  • Самиздат, сетевая литература
  • Неотсортированное
  • Незавершенное
  • Шахматы
  • Подростковая литература
  • Публицистическая литература

Учебники и пособия

  • Учебники и пособия
  • Школьные учебники и пособия, рефераты, шпаргалки
  • Учебники и пособия ВУЗов
  • Учебники и пособия для среднего и специального образования

Военное дело

  • Военное дело: прочее
  • Спецслужбы
  • Военная техника и вооружение
  • Боевые искусства

Проза

  • Средневековая классическая проза
  • Современная проза
  • Классическая проза
  • Готический роман
  • Антисоветская литература
  • Военная проза
  • Проза прочее
  • Роман
  • Повесть
  • Новелла
  • Сентиментальная проза
  • Рассказ
  • Историческая проза
  • Контркультура
  • Эпистолярная проза
  • Русская классическая проза
  • Советская классическая проза
  • Магический реализм
  • Проза
  • Зарубежная классическая проза
  • Классическая проза ХX века
  • Классическая проза ХIX века
  • Роман, повесть
  • Фантасмагория, абсурдистская проза
  • Афоризмы, цитаты
  • Экспериментальная, неформатная проза
  • Проза о войне
  • Современная русская и зарубежная проза
  • Классическая проза XVII-XVIII веков
  • Афоризмы
  • Эпопея
  • Феерия
  • Семейный роман/Семейная сага
  • Эссе, очерк, этюд, набросок
  • Малые литературные формы прозы: рассказы, эссе, новеллы, феерия

Родителям

  • Детские книги
  • Здоровье детей
  • Воспитание детей
  • Романы

Старинное

  • Прочая старинная литература
  • Европейская старинная литература
  • Древнерусская литература
  • Древневосточная литература
  • Античная литература

Зарубежная литература

  • Зарубежные приключения
  • Современная зарубежная литература
  • Зарубежная драматургия
  • Зарубежная фантастика
  • Зарубежный юмор
  • Зарубежная религиозная литература
  • Зарубежная образовательная литература
  • Зарубежная публицистика
  • Зарубежная психология
  • Зарубежные любовные романы
  • Зарубежная поэзия
  • Зарубежная классика
  • Зарубежная старинная литература
  • Зарубежная компьютерная литература
  • Зарубежная литература о культуре и искусстве
  • Зарубежные детективы
  • Зарубежная прикладная литература
  • Зарубежное фэнтези
  • Зарубежная справочная литература
  • Книги Для Детей

  • Стихи и поэзия

 

Developing a GUI in C++ and DirectX полностью

  • Читка
  • Компьютеры и Интернет
  • Программирование, программы, базы данных
  • Developing a GUI in C++ and DirectX
Developing a GUI in C++ and DirectX

Developing a GUI in C++ and DirectX

At first glance, it may seem like I'm reinventing the wheel; Windows already comes with a very complex, very functional GUI. Unfortunately, while the Windows GUI is great for office apps, quite frequently, it's not suited for many games. Games tend to want a more precise control over the GUI than Windows can provide (for example, games may want to use alpha-blending to implement partially transparent windows - easy if you've written your own GUI, but next to impossible using the Windows GUI).This article will walk you though how to create a GUI using C++ and DirectX. The series is divided into several parts, each dealing with a specific aspect of GUI programming:Part I: The Basics, and the MousePart II: WindowsPart III: ControlsPart IV: Resource Editors and Other MadnessNOTE: This document was originally four separate articles on www.gamedev.net. I've concatenated all four into one for the XGDC, but they remain otherwise unchanged. - Mason

  • Mason McCuskey
  • Программирование, программы, базы данных
  • 18+
<p>Mason McCuskey</p><p>Developing a GUI in C++ and DirectX</p><p>Part I: The Basics, and the Mouse</p>

Before I get started, I want to throw out a disclaimer: I’m going to outline the approach I used when I created the GUI system for my upcoming title, Quaternion. Treat this text as one solution to a very intricate problem, nothing more. I’m not saying that this way of making a GUI is the fastest or easiest way; I’m simply outlining a solution that worked for me. Also, this text is not complete. Like one of those Bob-Vila TV episodes, it skips over the easy stuff and concentrates on the interesting. There is no attached source file; there are code snippets in the text, and that’s it. In that code, I’ve stripped out a lot of layers of indirection that aren’t relevant to what I’m trying to show (i.e. the wrappers that you’d probably have for your DirectX functions, non-relevant initialization and cleanup code, etc). Also, beware of bugs - I’ve done lots of bug checking, but I’m only human. If you find a bug, please let me know about it by emailing mason@spin-studios.com.

I’m making several assumptions about your knowledge. I’m assuming you know the basics of how event-driven programming works (message queues, etc), and I’m assuming you have a strong grasp of PDL (the commenting language - if you don’t know what this is, read Code Complete, by Steve McConnell), and C++. I used C++ to implement my GUI system, because I’m a card-carrying member of the C++ fan club, and because the OOP of C++ work great for implementing window and control types. Shameless plug for the C++ language: Note the power of OOP in this solution, and ask yourself if you could do the same thing as easily in C.

Let’s start by defining our scope. It’s important to realize up front that we’re not remaking Windows 95, we’re just trying to get a simple GUI up for a game, so we don’t have to implement every single control and GUI construct. We only need a few parts for this simple GUI: a mouse pointer, a generic window, and some dialog controls to place within that window. We’re also going to need a resource editor, a program that will allow us to design dialogs by graphically dropping controls at various places.

<p>Start with the basics - The Rendering Loop</p>

I’m going to start at the top, by defining a function that will calculate and draw one frame of our GUI system. Let’s call this function RenderGUI(). In PDL, RenderGUI does something like this:

void CApplication::RenderGUI(void) {

 // get position and button status of mouse cursor

 // calculate mouse cursor’s effects on windows / send messages

 // render all windows

 // render mouse

 // flip to screen

}

Pretty straightforward for now. Basically, we grab the new position and status of the mouse cursor, calculate any changes that are caused by the new position, render all our windows, render the mouse cursor, then push the whole thing to the screen.

<p>The Mouse</p>

Now that we’ve got a main function, we’re going to create a mouse class. This mouse class will initialize the rodent, and will be responsible for querying its position and storing the results. Here’s the definition:

class CMouse {

public:

 CMouse(); // boring

 ~CMouse(); // boring

 int Init(LPDIRECTINPUT di); // we’ll talk about this later

 int Refresh(void); // we’ll talk about this later

 int GetButton(int index) {

  if (index ‹ 0 || index › NUMMOUSEBUTTONS) return(0);

  return(m_button[index]);

}

 CPoint GetPosition(void) { return(m_position); }

 enum { NUMMOUSEBUTTONS = 3 }; // three button mouse

private:

 LPDIRECTINPUTDEVICE m_mousedev;

 char m_button[NUMMOUSEBUTTONS]; // state of buttons

 CPoint m_position; // actual screen position

};

Pretty straightforward class definition. We’ve got two data pieces, m_button and m_position, abstracted by two functions, GetButton and GetPosition(). Then we’ve got Init and Refresh functions, which initialize the mouse and Refresh its button and position information. The m_mousedev is an interface to our mouse device; we get this interface during Init(), and use it in Refresh to communicate with DirectInput.

Перейти на страницу:
Читать далее
  • Предыдущая
  • 1
  • 2
  • 3
  • 4
  • ...
  • 18
  • Читать далее

Поиск

Книга жанров

  • Компьютеры и Интернет
  • Программирование, программы, базы данных

Похожие книги

Грокаем алгоритмы
Программирование, программы, базы данных
  • Адитья Бхаргава

Грокаем алгоритмы

Начать чтение
Искусство программирования на языке сценариев командной оболочки
Программирование, программы, базы данных
  • Мендель Купер

Искусство программирования на языке сценариев командной оболочки

Начать чтение
OrCAD PSpice. Анализ электрических цепей
Программирование, программы, базы данных
  • Дж. Кеоун

OrCAD PSpice. Анализ электрических цепей

Начать чтение
Java 7
Программирование, программы, базы данных
  • Ильдар Шаукатович Хабибуллин

Java 7

Начать чтение

Пожаловаться на книгу