Закрыть

Download WinLib:

.zip

.rar

icon

Midnighter WinLib

Скачать:

Download WinLib v1.2
Download WinLib v1.2 source code
Download WinLib v1.1
Download WinLib v1.1 source code
Download WinLib v1.0
Download WinLib v1.0 source code

Новости

Если честно библиотека стала немножко лучше (это не значит что она лучше стала работать) по прежнему есть кривожопости которые буду по возможности (здесь имееться в виду мои возможности (умственные) и GDI (не умственные а технические)) улучшать эту безнадегу но мне интересно заниматься разработкой WinLib (не подумайте что я застрял в прошлом и не хочу принять Direct2D, и Direct3D, и OpenGL).

Еще я хочу создать Rutube канал но мне лень так что ждите... Все может быть.
Всегда читайте, что мелким шрифтом написано и никогда под этим не ПОДПИСЫВАЙТЕСЬ!!!

Документации пока нет (есть рукаводство), да и вообще я создал эту библиотеку ради интереса.


Вряд ли кто-нибудь захочет ею (библиотекой) воспользоваться.



Данная библиотека создана для работы с GDI и WindowsAPI, что в сущьности включено одно в другое.


WinLib работает на GDI и создана для статических интерфейсов (анимаций по минимуму).



#include <WL/Window/Window.hpp>


Конструктор wl::Window

Класс wl::Window для создания окна. Окон может быть (технически) до 10000 (зависит от технических возможностей пк и версии Windows).


Первый параметр в конструкторе wl::Window это wl::WindowTransform для редактирования позиции и размера окна.


Структура wl::WindowTransform хранит в себе posX, posY, sizeX, sizeY отвечающие соответственно за положение окна по X и Y координатам и за размер по тем-же координатам.


Второй параметр конструктора wl::Window это строка либо узкая, либо широкая - это заголовок окна.


Третий и последний параметр это стиль окна.
Стили окна:
Default - зто стандартный стиль. Включает в себя все стандарнтные кнопки и иконки окна, а так-же загаловок.
DefaultNoResize - это тот-же Default только без возможности изменения размера.
Border - это голое окно. Просто барьер определённого размера.
Fullscreen - этот стиль обычно пременяют в играх он растягивает окно на весь экран.


wl::Window::isOpen

Просто возвращает открыто ли окно то есть создано ли оно. Возвращает true если окно у данного wl::Window есть и false если нет.


wl::Window::setTitle

Принимает один аргумент (тип аргумента строка узкая или широкая) и меняет заголовок окна на поданый аргумент.


wl::Window::setIcon

Принимает первым аргументом массив пикселей (Uint32), вторым ширину той области которую используем в изображении, третим высоту используемой облости.


wl::Window::setCursor

Принемает такие-же аргументы как и wl::Window::setIcon, но к ним добавился аргумент hotPos типа wl::Vector2i(о нем позднее), который определяет точку которая и будет курсорм ((0,0) - это координаты верхнего левого угла изображения).


wl::Window::getLocalMousePos

Возвращает положение курсора относительно окна.


wl::Window::setLocalCursorPos

Задает положение курсора относительно окна (аргументами x, y, которые соответствуют осям).


wl::Window::listenEvents

Первым аргументом подаеться объект wl::Event (о нем позднее), который принимает и обрабатывет события, которые обнаружила wl::Window::listenEvents.


wl::Window::clear

Первым аргментом подаеться wl::Color (о нем позднее), который содержит цвет, которым нужно залить (закрасить) окно удалив все содержимое.


wl::Window::draw

Принимает первым аргментом объект Drawable (о нем позднее), от которого наследуються все элементы для отрисовки и рисует их в буфер.


wl::Window::display

Отрисовывает буфер в окно.


wl::Window::close

Закрывает окно и делает isOpen false.


wl::Window::fpsLimiter

Принимает первым аргументом колличество fps выше которого нельзя обновлять картинку то есть в игровом цикле он просто вызывает Core::Delay (о нем позднее) если сльшком быстро обновился цикл.


wl::Window::getPosition

Возвращает позицию окна в wl::Vector2i (о нем позднее).


wl::Window::setPosition

Задает позицию окна на экране (аргументами x, y, которые соответствуют осям).


wl::Window::getSize

Возвращает размер окна в wl::Vector2i (о нем позднее).


wl::Window::setSize

Задает размеры окна (аргументами x, y, которые соответствуют осям).


wl::Window::getTitle

Возвращает загаловок окна в wl::String (о нем позднее).



#include <WL/Core/Event.hpp>


Класс wl::Event очень простой и содержит всего один метод и одну переменную.


wl::Event::type

Именно эту переменную заполняет wl::Window::listenEvents.


Возможные значения wl::Event::type:


Closed - окно закрываеться при этом isOpen еще не сработал значит окно только в процессе.


Resized - окно изменило либо изменили размер.


None - ничего не происходит.


wl::Event::isPressed

Принимает в качестве аргумента уникальный номер кнопки которые храняться в wl::Key (о нем позднее).



#include <WL/Core/Event.hpp>


Хранит enum номеров кнопок. Пример wl::Key::KeyA это значит проверить нажатие 'A'.



#include <WL/Core/Core.hpp>


Это класс ядро (опасный), в котором кроме методов Delay и GetWindowQuantity (не изменяя WindowQuantity) лучше ничем не пользоваться.


wl::Core::Delay

Останавливает выполнение потока на определеноое время, которое подается в первый аргумент (в миллисекундах).


wl::Core::GetWindowQuantity

Возвращает ссылку (Внимание ссылку!!! изменять только при закрытии окна на -1 или лучше вообще не трогать если нет нужды) на статическую переменную хрянящую в себе колличество созданных когда либо окон.


Остальные функции лучше не трогать.



#include <WL/Core/Color.hpp>


Конструктор wl::Color

Первым, вторым, третим и четвертым вводяться всем известные RGBA.


wl::Color::getData

Возвращает весь цвет в Uint32 первый байт a, второй r, третий g, четвертый b.


wl::Color::getColor

Возвращает структуру rgba (которая хранит каналы r, g, b, a).


Так-же доступны статические цвета, такие как: White, Black, Red, Green и Blue.



#include <WL/Core/Vector.hpp>


Этот класс очень прост и хранит всего две переменные.


Переменная x чаще для x координаты.


Переменная y чаще для y координаты.



#include <WL/Core/String.hpp>


Данный класс хранит текст в широких строках но может принимать и в узких.
Класс wl::String прелоставляет два статических метода.


static wl::String::toWideString

Принимает в качестве аргумента узкую строку и возвращает широкую.


static wl::String::toNarrowString

Принимает в качестве аргумента широкую строку и возвращает узкую.


wl::String::getWideString

Возвращает широкую строку хранимую в данном wl::String.


wl::String::getNarrowString

Возвращает узкую строку хранимую в данном wl::String.


wl::String::getLpcwstr

Возвращает хранимую строку в формате LPCWSTR.



#include <WL/Core/Rect.hpp>


Здесь как и с Vector это просто контейнер для хронения прямоугольника top - это позиция по Y, left - по X (Внимание right и bottom - это локальные размеры изображения. right - по X, bottom - по Y).


wl::Rect<T>::contains

Принимает позицию в Vector2i и проверяет находиться лм данная позиция в прямоугольнике.



#include <WL/Core/Container.hpp>


Данный класс являеться подобием std::vector. T - это тип хранимых объектов.


wl::container<T>::add

Принимает в качестве аргумента объект который надо добавить к контейнеру.


wl::container<T>::alloc

Сначала полностью очищает контейнер а потом выделяет нужную память в куче контейнера (например чтобы оптимизировать wl::container<T>::add).


wl::container<T>::replaceData

Заменяет данные в контейнере.


wl::container<T>::data

Возвращает константную ссылку на данные хрянящиеся в контейнере.


wl::container<T>::capacity

Возвращает вместимость контейнера.


wl::container<T>::size

Возвращает колличество объектов хранимых на данный момент в контейнере.


wl::container<T>::currentbitsize

Возвращает вместимость контейнера в битах.



#include <WL/Window/Texture.hpp>


Главным образом хранит массив пикселей изображения.


wl::Texture::create

Эта функция создает текстуру определенного размера и заливает её сплошным, указанным в первом аргументе, цветом.


Первым параметром принимает цвет, второй праметр отвечает за ширину картинки, третий за высоту.


wl::Texture::loadFromTDF

Формат TDF - это Texture Data File где первые два байта (unsigned short) - это ширана в пикселях, вторые два байта (unsigned short) - это высота в пикселях, дальше идет массив пиксилей в Uint32*.
Функция загружает TDF файл.


Первый аргумент путь к файлу в виде широкой либо узкой строки.


wl::Texture::loadFromBMP

Загружает 24битный BMP файл.


Первый аргумент путь к файлу в виде широкой либо узкой строки.


wl::Texture::loadFromPNG

Загружает 32битный PNG файл.


Первый аргумент путь к файлу в виде широкой либо узкой строки.


wl::Texture::getSize

Возвращает Vector2i где X отвечает за штрину, Y за высоту изображания.


wl::Texture::getPixelsData

Возвращает массив пиксилей (Uint32*).


wl::Texture::getPixelsSize

Возвращает количество пикселей в изображении.



#include <WL/Window/Font.hpp>


Этот класс хранит только имя шрифта.


wl::Texture::loadFromFile

Загружает файл шрифта TTF (True Type Font).


Первым аргументом принимает путь к файлу шрифта TTF.


wl::Texture::getFontFamalyName

Возвращает имя шрифта, которое загрузил wl::Texture::loadFromFile.


wl::Texture::DefaultOS

Переменная обозначающая шрифт по умолчанию.



#include <WL/Window/Drawable.hpp>


Это главный класс отрисовки и трансформации в WinLib так как от него наследуються все класса типа wl::Text, wl::Sprite (о них позднее).
Он хранит данные о перемещении, изменении размера, координаты корня, вращение, масштаб и прямоугольник (коллизию) элемента в IntRect (о нем выше).


wl::Drawable::getPosition

Возвращает Vector2i где X - это позиция по X то есть по горизонтали (относительно окна), а Y - это позиция по Y то есть по вертикали направленой вниз (относительно окна).


wl::Drawable::getScale

Возвращает масштаб в Vector2f где X масштаб по X, а Y иасштаб по Y.


wl::Drawable::getRoot

Возвращает позицию корня относительно элемента. Корень - это точка, относительно которой распологается элемент.


wl::Drawable::getOrgin

Возвращает позицию источника относительно элемента. Источник - это точка, относительно которой отображается, вращается элемент.


wl::Drawable::getSize

Возвращает текущий размер изображения в пикселях.


wl::Drawable::getGlobalBounds

Возвращает прямоугольник (IntRect о нем выше) который занимает изображение.


wl::Drawable::getAngle

Возвращает текущий наклон изображения (советую использовать wl::math::ndegree (о ней позднее), которая приводит любой угол либо к то -180 до 180, либо от 0 до 360).
N180DG - для того, чтобы привести вращение (Эйлеровский угол) к от -180 до 180.
N360DG - для того, чтобы привести вращение (Эйлеровский угол) к от 0 до 360.


wl::Drawable::setPosition

Первый аргумент прнимает новую позицию по X, второй новую позицию по Y.


wl::Drawable::setScale

Задает масштаб по X и Y то есть растягивает либо сжимает пиксели.
Первый аргумент масштаб по X, второй по Y.


wl::Drawable::setSize

Задает сколько пикселей надо рендерить у данного изображения.


wl::Drawable::setRoot

Задает корень элемента (корень - это локальное начало координат элемента).


wl::Drawable::setOrgin

Задает источник изображение (источник - это относительно чего отображаеться элемент).


wl::Drawable::setAngle

Задает вращение элементу (плохо оптимизировано).
Принимает вращение в эйлеровских углах.



#include <WL/Window/Sprite.hpp>


Конструктор wl::Sprite

Принимает текстуру (wl::Texture), которую надо будет отобразить.


wl::Sprite::setTexture

Принимает первым аргументом текстуру (wl::Texture), и заменяет старую текстуру на полученную.


wl::Sprite::getTexture

Возвращает текущую текстуру.



#include <WL/Window/Text.hpp>


Этот класс по интереснее wl::Sprite но так-же просто как и все в этой библиотеке.


Конструктор wl::Text

Первым аргументом конструктора являеться строка либо широкая либо узкая - это текст который надо отобразить.
Вторым аргументом идет шрифт (wl::Font о нем выше).
Третим аргументом размер одного символа в строке учитывая размер в шрифте.
Четвертым аргументом идет цвет (wl::Color о нем выше).
Пятым аргументом подается структура отвечающая за стиль шрифта (wl::TextStyle о ней далее).


Конструктор wl::TextStyle

Italic - этот пораметр отвечает за то, будет ли шрифт наклонным.


Underline - этот пораметр отвечает за то, будет ли шрифт подчеркнутым.


StrikeOut - этот пораметр отвечает за то, будет ли шрифт вычеркнутым.


wl::Text::setText

Принимает аргументом строку (здесь и далее - узкую и широкую).


Заменяет текст на полученую строку.


wl::Text::setFont

Принимает в качестве аргумента вышерассмотреный wl::Font.


И заменяет старый шрифт вышеполученым.


wl::Text::setFontSize

Принимает в качестве аргумента новый размер символа и заменяет на него старый.


wl::Text::setTextStyle

Принимает в качестве аргумента структуру wl::TextStyle и заменяет старую на полученную.


wl::Text::getText

Возвращает текущий текст в классе.


wl::Text::getFont

Возвращает текущий используемый шрифт.


wl::Text::getFontSize

Возвращает текущий размер символа.


wl::Text::getTextStyle

Возвращает текущий стиль шрифта.



Гневить, коментировать,сообщать об ошибках:
midnighterdark@gmail.com


Мой Rutub канал