TX Library is a tiny 2D graphics library for Win32 written in C++. This is a small sandbox for the very beginners to help them to learn basic programming principles. The documentation is currently in Russian.

-----------------------------------------------------
TX Library README
-----------------------------------------------------

TX Library (TXLib, The Dumb Artist Library) is a tiny 2D graphics library for Win32 written in C++. This is
a small sandbox for the very beginners to help them to learn basic programming principles. The documentation
is currently in Russian.

TX Library - компактная библиотека двумерной графики для Win32 на С++, намеренно выдержанная в стиле сугубого
минимализма. Это небольшая "песочница" для начинающих, реализованная с целью помочь им в изучении простейших
принципов программирования. Методическое учебное пособие для обучения основ программирования на С++. Позволяет
писать прямолинейный графический код, не заботясь о событийной модели приложений в Win32. Имеет систему помощи
на русском языке. Не требует компоновки с внешними библиотеками. Документация на русском языке.

Философия TX Library - облегчить первые шаги в программировании и подтолкнуть к творчеству и самостоятельности.
Исходный текст библиотеки может использоваться для иллюстрации элементарных приемов работы с окнами Windows,
механизмом сообщений Win32, графикой, работой с меню, растровыми образами, простейшей многопоточностью. 

Author: Ded (Ilya Dedinsky, http://txlib.ru)

Официальный сайт библиотеки: http://txlib.ru.

См. также страницу проекта на SourceForge: http://txlib.sourceforge.net
и на Google Code: http://code.google.com/p/txlib

Это альфа-версия. Для использования требуется согласование с автором библиотеки.
Правила использования материалов библиотеки и сайта см. на официальном сайте: http://txlib.ru/index/0-6.

Баг-трекер на GitHub: https://github.com/ded32/TXLib/issues/new

-----------------------------------------------------
Предупреждение, или TXLib - это всего лишь инструмент
-----------------------------------------------------

Библиотека TXLib - это всего лишь инструмент для того, чтобы облегчить первые шаги в программировании. Однако этот
инструмент, как и любой другой, может быть применен неправильно. (Тем не менее, в основу TXLib заложены некоторые
принципы, помогающие конструктивному неиллюзорному обучению.)

Сама по себе любая библиотека или язык программирования не научит начинающего писать программы грамотно. Научит
этому разработка своих, достаточно больших проектов, в сочетании с тесным общением профессионалов, желающих помочь
начинающим. Такие профессионалы должны обладать и опытом разработки больших программ, и педагогическими навыками,
чтобы передать свой опыт начинающим. К сожалению, не всегда это совпадает. Профессионалы-программисты зачастую не
хотят лезть в обучение, где хватает своих проблем. С другой стороны, недобросовестные учителя, иногда даже в
сильных школах и курсах, хватаются за удобные инструменты обучения (чужие или свои библиотеки, среды и языки
программирования), не удосуживаясь следить за качеством кода обучаемых, за стилем и направлением их мышления,
ограничиваясь лишь видимостью обучения (см.: http://www.google.ru/search?q=literate+programming). Такие
образовательные иллюзии очень вредны. Заметны они становятся достаточно поздно, когда выясняется, что ученик,
легко пишущий небольшие программы (пусть даже логически насыщенные, олимпиадные), принципиально не способен
написать что-то большее, путается в коде, а другие, в том числе и профессионалы, его не понимают в силу
спутанности или ограниченности его мышления и неумения внятно выразить мысли на уровне современных стандартов.
Чтобы преодолеть этот барьер, воздвигнутый нерадивым преподавателем (или вашей собственной нерадивостью),
приходится долго серьезно и самостоятельно переучиваться -- иногда будучи уже студентом или аспирантом. Либо
смириться и "носить кофе программистам".

Искусство программирования -- это искусство мышления, не надо это забывать.

Принципы, заложенные в TXLib для повышения качества обучения:

- [Сделай сам.] В TXLib многие вещи сделаны или оставлены не совсем удобными для применения.
  Это - предложение подумать, как сделать это самому, и, как правило, для этого в TXLib есть средства.
  Сделав, покажите решение другим, если они быстро поймут его и оценят - ваше решение удачное.

- [Загляни в Help.] См.: http://storage.ded32.net.ru/Lib/TX/TXUpdate/Doc/HTML.ru
  (Слово неспроста выбрано английским, потому что большинство информации в современном программировании -
  на английском языке. Учите его.) Под системой помощи понимается не только TXLib Help, но и весь Internet.

- [Посмотри, как сделано.] Загляни в код библиотеки. Он создавался в том числе как пример программной системы
  со своей логикой и со своей реализацией, а некоторые функции можно понять только по коду, потому что их нет в
  системе помощи. Не всегда решения, примененные в TXLib оптимальны даже с точки зрения автора - он надеется, что
  это убережет желающих обучиться качественно, но нетерпеливых учеников, от [Ctrl+C и Ctrl+V] - плагиата.

- [Посмотри, как сделано иначе.] TXLib - не единственная графическая библиотека, и реализация "простого
  графического холста", примененная в ней - не единственное решение. Посмотрите как устроены десятки других
  графических библиотек. Но *избегайте плохого кода* (его можно определить по тому, как морщатся профессионалы,
  глядя на него, если у вас нет более объективных средств такого определения) - он научит вас плохому. Хороший, но
  сложный код (глядя на него, профессионалы не морщатся, а... вздыхают) - отложите до времени и вернитесь к нему
  позже.

- [Выйди за пределы "песочницы".] Это усиление принципа "сделай сам". Собери вместе свои мысли про хорошую
  библиотеку, посмотри, как устроен TXLib и его аналоги, сделай свою библиотеку, лучше TXLib'а. Примеры таких
  библиотек можно найти на сайте TXLib и в Интернете, и некоторые из них сделаны как раз начинающими.

  Удачи, и May the Source be with you! :)

-----------------------------------------------------
Поддерживаемые платформы
-----------------------------------------------------
   
- Среды программирования и исполнения + компиляторы

  -                     MinGW  GCC 9.2.0 (NUWEN), 64-bit
  -                     MinGW  GCC 8.2.0 (NUWEN), 64-bit
  -                     MinGW  GCC 7.2.0 (NUWEN), 64-bit
  -                     MinGW  GCC 6.3.0 (NUWEN), 64-bit
  -                     MinGW  GCC 5.3.0 (NUWEN), 32-bit и 64-bit
  - CodeBlocks 12.11  + MinGW  GCC 4.8.0 (NUWEN)
  - CodeBlocks 12.11  + MinGW  GCC 4.7.2 (NUWEN)
  - Dev-CPP    5.11   + MinGW  GCC 4.9.2 (TDM)
  - Qt Creator 4.2.2  + MinGW  GCC 5.3.0 (Qt), 32-bit (кодировка файлов в редакторе: только CP1251)
  - Cygwin            + Cygwin GCC 7.4.0, 32-bit и 64-bit
  - LLVM              + MSVC Clang-cl 9.0.0, 32-bit и 64-bit
  - Microsoft Visual Studio 16 (2019), 32-bit и 64-bit
  - Microsoft Visual Studio 15 (2017), 32-bit и 64-bit
  - Microsoft Visual Studio 14 (2015), 32-bit и 64-bit
  - Microsoft Visual Studio 12 (2013), 32-bit и 64-bit
  - Microsoft Visual Studio 11 (2012), 32-bit и 64-bit
  - Microsoft Visual Studio 10 (2010), 32-bit и 64-bit
  - Intel C++ Compiler 13.0 (2013)

- Операционные системы

  - Windows 10             ru/en, 32-bit и 64-bit
  - Windows 8              ru/en, 32-bit и 64-bit
  - Windows 7              ru/en, 32-bit и 64-bit
  - Windows Vista          ru/en
  - Windows 2003 SP1 R1/R2 ru/en
  - Windows XP   SP2/SP3   ru/en
  - Windows 2000 SP4       ru/en
  - Linux + Wine
    - Ubuntu 16.04, 11.04 + Wine
  - MacOS X + Wine
    - Snow Leopard 10.6.8 + Wine
Similar Resources

A set of open c++ game development tools that are lightweight, easy-to-integrate and free to use. Currently hosting a magicavoxel .vox full scene loader.

A set of open c++ game development tools that are lightweight, easy-to-integrate and free to use. Currently hosting a magicavoxel .vox full scene loader.

open game tools Open game tools is a set of unencumbered, free, lightweight, easy-to-integrate tools for use in game development. So far it contains:

Dec 29, 2022

A small cross-platform graphics library made in C

A small cross-platform graphics library made in C

minigfx Small graphics library made in C Intended to be: Simple to understand Intuitive Fun to use Features Cross platform: Windows and Linux. To see

Jul 18, 2021

Im3d is a small, self-contained library for immediate mode rendering of basic primitives

Im3d is a small, self-contained library for immediate mode rendering of basic primitives (points, lines, triangles), plus an immediate mode UI which provides 3d manipulation 'gizmos' and other tools. It is platform and graphics API agnostic and designed to be compatible with VR.

Jan 2, 2023

A library for high-performance, modern 2D graphics with SDL written in C.

SDL_gpu, a library for making hardware-accelerated 2D graphics easy. by Jonathan Dearborn SDL_gpu is licensed under the terms of the MIT License. See

Jan 5, 2023

Yet another Chip-8 interpreter, this time written in C++ using GLFW and OpenGL as its graphics library 💻

Yet another Chip-8 interpreter, this time written in C++ using GLFW and OpenGL as its graphics library 💻

Yet another Chip-8 interpreter, but this time with a beautiful interface 💻

Dec 14, 2022

Metal-cpp is a low-overhead C++ interface for Metal that helps developers add Metal functionality to graphics apps, games, and game engines that are written in C++.

About metal-cpp is a low overhead and header only C++ interface for Metal that helps developers add Metal functionality to graphics applications that

Dec 31, 2022

Vire is a C++ voxel rendering engine. It is written in C++14 and uses OpenGL for graphics.

Vire Vire is a C++ voxel rendering engine. It is written in C++14 and uses OpenGL for graphics. Downloads If you'd just like to just download and try,

Dec 22, 2022

Just a fun little project to learn how to render Bézier Curves.

Just a fun little project to learn how to render Bézier Curves.

Bézier Curve Just a fun little project to learn how to render Bézier Curves. CPU implementation GPU implementation Screencasts Thumbnail Link Coding B

Dec 17, 2022

Horde3D is a small 3D rendering and animation engine. It is written in an effort to create an engine being as lightweight and conceptually clean as possible.

Horde3D Horde3D is a 3D rendering engine written in C++ with an effort being as lightweight and conceptually clean as possible. Horde3D requires a ful

Dec 31, 2022
Related tags
My computer graphics playground. Currently has a raytracer implemented with D3D11 compute shader.
My computer graphics playground. Currently has a raytracer implemented with D3D11 compute shader.

Graphics Playground I use this project as my "toy" engine. I'll be implementing various graphics projects in this repository. The code here is not sui

Aug 26, 2021
Voxelight is a simple voxel engine/sandbox
Voxelight is a simple voxel engine/sandbox

Voxelight is a learning project, I have no prior experience with OpenGL or any other graphics API for that matter.

Jul 14, 2022
Low Level Graphics Library (LLGL) is a thin abstraction layer for the modern graphics APIs OpenGL, Direct3D, Vulkan, and Metal
Low Level Graphics Library (LLGL) is a thin abstraction layer for the modern graphics APIs OpenGL, Direct3D, Vulkan, and Metal

Low Level Graphics Library (LLGL) Documentation NOTE: This repository receives bug fixes only, but no major updates. Pull requests may still be accept

Jan 8, 2023
A terminal-based graphics library for both 2D and 3D graphics.
A terminal-based graphics library for both 2D and 3D graphics.

TermGL A terminal-based graphics library for both 2D and 3D graphics. Written in C, created for terminals supporting ANSI escape codes. Table of Conte

Dec 28, 2022
The tiny C library of 2D computer graphics.
The tiny C library of 2D computer graphics.

libcg The tiny C library of 2D computer graphics. Getting Started The library's .c and .h files can be dropped into a project and compiled along with

Jan 1, 2023
Yocto/GL: Tiny C++ Libraries for Data-Driven Physically-based Graphics
Yocto/GL: Tiny C++ Libraries for Data-Driven Physically-based Graphics

Yocto/GL: Tiny C++ Libraries for Data-Oriented Physically-based Graphics Yocto/GL is a collection of small C++17 libraries for building physically-bas

Dec 27, 2022
kaun is a replacement for löve's built-in love.graphics module intended for 3D graphics

kaun kaun is a replacement for löve's built-in love.graphics module intended for 3D graphics. It is a Lua module you can require from a shared library

Apr 5, 2021
This repo contains the DirectX Graphics samples that demonstrate how to build graphics intensive applications on Windows.
This repo contains the DirectX Graphics samples that demonstrate how to build graphics intensive applications on Windows.

DirectX-Graphics-Samples This repo contains the DirectX 12 Graphics samples that demonstrate how to build graphics intensive applications for Windows

Dec 26, 2022
FDF is a 42 Project to learn about 3d programming. The program takes a map as parameter and creates its 3d representation.
FDF is a 42 Project to learn about 3d programming. The program takes a map as parameter and creates its 3d representation.

FDF Project Overview FDF is a 42 Project to learn about 3d programming. The program takes a map as parameter and creates its 3d representation. Render

Dec 1, 2022
GUI frontend for moonlight-embedded, (currently) runs on webOS
GUI frontend for moonlight-embedded, (currently) runs on webOS

Moonlight TV Moonlight TV is a GUI front end for Moonlight GameStream Client. With some components from moonlight-embedded. It was originally designed

Dec 30, 2022