- pycsdl2 2.0.0.0.dev5
- Documentation
- Building
- Unit tests
- Understanding the source code
- License
- Python SDL — свободная мультимедийная библиотека.
- Python SDL включена в состав пакета Python Pygame и позволяет программам, написанным на языке Python, эффективно использовать Изображения, Звуки и Видео.
- Simple DirectMedia Layer
- История
- Структура
- Литература
- Ссылки
- PySDL2
- Installation
- Requirements
- Documentation
- License
pycsdl2 2.0.0.0.dev5
pycsdl2 is a low-overhead, compiled SDL2 binding for CPython. It aims to provide the familiar C API of SDL2, while offering several Pythonic features such as automatic memory management, bounds checking and exceptions.
Documentation
The Python API is documented with Sphinx in the docs/ directory. If you have GNU Make and Sphinx installed, run the following in the docs/ directory to generate the HTML documentation in docs/_build/html/ :
On Windows, make.bat can be used instead of GNU Make. Run the following in the docs/ directory to generate the HTML documentation in docs/_build/html/ :
The documentation can be generated in other formats as well. See the output of make help or .\make.bat help for more details.
Building
Building the source code requires the CPython header files to be installed. This may require the installation of a development package such as python3-dev in Debian. The headers are installed by default in the official Python distributions for Windows and Mac OS X.
On Windows and Mac OS X, pycsdl2 will be statically linked against the bundled SDL2 source code. As such,
On other platforms such as Linux, the system must have a C compiler installed and the SDL2 library and header files installed. This may require the installation of a development package such as libsdl2-dev on Debian. Furthermore, a working installation of sdl2-config or pkg-config must be present in the executable search paths. pycsdl2 will be dynamically linked to the SDL2 library on these platforms.
Once your system satisfies the above requirements, run the following in the root of the source directory:
If the build is successful, pycsdl2 can be installed with:
The above build behavior can be controlled with the environment variable PYCSDL2_LIB :
- setting it to auto will use the default behavior. setup.py will build and link against the bundled SDL2 source code on Windows and Mac OS X, and link against the system SDL2 library on other platforms.
- setting it to bundled will force setup.py to build and link against the bundled SDL2 source code.
- setting it to system will force setup.py to link against the system’s SDL2 library. sdl2-config will be used to retrieve the required compile and link flags, and if it fails, pkg-config will be used instead.
- setting it to sdl2-config or pkg-config will force setup.py to link against the system’s SDL2 library, and to only use sdl2-config or pkg-config respectively to retrieve the required compile and link flags.
Unit tests
Unit tests are implemented using the unittest standard library module. Once the pycsdl2 has been built with python3 setup.py build , you can run all tests by running the following in the root of the source directory:
You can also run an individual test suite by running the corresponding file in the test/ directory:
Understanding the source code
The source code is documented with Doxygen. If you have a working installation, simply run the following in the root of the source directory:
The HTML documentation will be written to the apidocs/html directory.
License
Unless otherwise stated, pycsdl2 source code is licensed under the zlib license.
pycsdl2 source code contains an unmodified copy of the Simple DirectMedia Layer (SDL) version 2.0.0 source code. The source code is licensed under the zlib license.
Python SDL — свободная мультимедийная библиотека.
Python SDL включена в состав пакета Python Pygame и позволяет программам, написанным на языке Python, эффективно использовать Изображения, Звуки и Видео.
Обратите внимание, что SDL написана на языке Си, что обеспечивает высокую эффективность SDL.
Привожу информацию о SDL из Википедии ( ru.wikipedia.org/wiki/Simple_DirectMedia_Layer ) :
Simple DirectMedia Layer
Simple DirectMedia Layer
SDL | |
Тип | API |
Разработчик | Сэм Лантинга |
Написана на | C |
Операционная система | Кроссплатформенное программное обеспечение |
Последняя версия | 2.0.5 (20 октября 2016 года) |
Лицензия | zlib (с версии 2.0); GNU LGPL (до 2.0) |
Сайт | libsdl.org |
Simple DirectMedia Layer на Викискладе |
Simple DirectMedia Layer (SDL) — свободная кроссплатформенная мультимедийная библиотека, реализующая единый программный интерфейс к графической подсистеме, звуковым устройствам и средствам ввода для широкого спектра платформ.
Данная библиотека активно используется при написании кроссплатформенных мультимедийных программ (в основном игр).
Официально поддерживаются операционные системы: Linux, Microsoft Windows, Mac OS X, iOS и Android.
SDL API доступны для языков: C, C++, C#, VB.NET, D, Ada, Vala, Eiffel, Haskell, Erlang, Euphoria, Java, Lisp, Lua, ML, Pascal, Perl, PHP, Pike, PureBasic, Python и Ruby.
Основная часть SDL содержит базовый, весьма ограниченный спектр возможностей. Дополнительную функциональность обеспечивают библиотеки расширений, которые обычно входят в поставку SDL.
Начиная с версии 2.0, SDL распространяется под условиями лицензии zlib; до этого использовалась лицензия GNU LGPL, что позволяло свободно использовать библиотеку в коммерческих программах при условии, что она используется в них как динамически подключаемая библиотека.
История
SDL создал Сэм Лантинга, будучи ведущим программистом компании Loki Entertainment Software. История SDL начинается со времен, когда Сэм работал над программой-эмулятором Microsoft Windows для Macintosh.
Он заметил, что многие куски кода без проблем могут работать на Linux. И он решил создать небольшую библиотеку, чтобы ей могли воспользоваться другие программисты.
В октябре 1997 был выпущен релиз библиотеки с версией 0.3, а позже эту библиотеку вовсю использовала компания Loki Software для портирования игр под Linux.
После банкротства Loki Software Сэм работал в качестве ведущего разработчика в Blizzard, где велись работы по портированию World of Warcraft на Linux, но в компании решили закрыть проект.
С июля 2012 года Сэм присоединился к команде разработчиков Valve, где занимается дальнейшей разработкой SDL.
Структура
Архитектура SDL
SDL сам по себе довольно прост. Его можно рассматривать как тонкую прослойку, обеспечивающую поддержку для 2D-операций над пикселами, звука, доступа к файлам, обработки событий и т. п. Он часто используется в дополнение к OpenGL, предоставляя поддержку мыши, клавиатуры и джойстиков.
Библиотека состоит из нескольких подсистем, таких как Video, Audio, CD-ROM, Joystick и Timer. В дополнение к этой базовой низкоуровневой функциональности, существует ряд стандартных библиотек, предоставляющих дополнительную функциональность:
- SDL image — поддержка различных растровых форматов,
- SDL mixer — функции для организации сложного аудио, в основном, сведение звука из нескольких источников,
- SDL net — поддержка сетевых функций,
- SDL ttf — поддержка шрифтов TrueType,
- SDL rtf — отрисовка текста в формате RTF.
Литература
- Rankin, K. Linux Multimedia Hacks: Tips & Tools for Taming Images, Audio, and Video. — O’Reilly Media, 2006. — P. 139. — ISBN 9780596100766.
- Loki Software, Inc and Hall, J.R. Ch. 4. Mastering SDL // Programming Linux Games. — No Starch Press, 2001. — ISBN 9781886411494.
Ссылки
- Официальная страница (англ.)
- Введение в Simple DirectMedia Layer (рус.)
- Низкоуровневое расширение библиотеки SDL (рус.)
- Уроки по SDL (рус.)
Все ссылки со страницы убраны — их можно найти и использовать на странице сайта Википедия.
Итак, Python SDL имеется в составе пакета Python Pygame и может эффективно использоваться для создания Изображений, Звуков и Видео.
Наверняка Python SDL входит и в состав других пакетов языка Python, поэтому постараюсь узнать их названия.
Приглашаю всех высказываться в Комментариях. Критику и обмен опытом одобряю и приветствую. В хороших комментариях сохраняю ссылку на сайт автора!
И не забывайте, пожалуйста, нажимать на кнопки социальных сетей, которые расположены под текстом каждой страницы сайта.
Продолжение тут…
PySDL2
PySDL2 is a pure Python wrapper around the SDL2, SDL2_mixer, SDL2_image, SDL2_ttf, and SDL2_gfx libraries. Instead of relying on C code, it uses the built-in ctypes module to interface with SDL2, and provides simple Python classes and wrappers for common SDL2 functionality.
Installation
PySDL2 is easy to install and integrate within your own projects. To install or update to the latest version, simply run one of the following commands in a terminal:
pip install -U pysdl2 pip install -U git+https://github.com/py-sdl/py-sdl2.git
Note: If installing on Python 3 on a computer where both Python 2 and 3 are installed, replace pip with pip3 in the above commands.
Requirements
In order for PySDL2 to work, the binaries for SDL2 (and any SDL2 addon modules you wish to use, e.g. SDL2_mixer) need to be installed on your system. On macOS, Windows, and most x86 and ARM64 distributions of Linux, the recommended way to install the SDL2 binaries is via the pysdl2-dll package using pip:
This will install pre-built binaries for all supported SDL2 libraries as a Python package, which PySDL2 will automatically load if available. On systems not supported by pysdl2-dll , you can install the SDL2 binaries using your system’s package manager (which may be out of date), or alternatively build and install the latest versions yourself from source.
The current minimum supported versions for each library are listed below:
- SDL2 >= 2.0.5
- SDL2_mixer >= 2.0.1 (for the sdl2.sdlmixer module)
- SDL2_ttf >= 2.0.14 (for the sdl2.sdlttf module)
- SDL2_image >= 2.0.1 (for the sdl2.sdlimage module)
- SDL2_gfx >= 1.0.3 (for the sdl2.sdlgfx module)
Documentation
If you just started with SDL and PySDL2, it is strongly recommended that you read through the tutorial of the documentation to learn the basics. You can find the documentation at doc/html or online at http://pysdl2.readthedocs.org.
License
This library is given to the public domain. There are no licensing restrictions. Please see doc/copying.rst for further details.