Import multimedia/sfml, requested by and ok bcallah@

SFML is a portable and easy to use multimedia API written in C++.
You can see it as a modern, object-oriented alternative to SDL.
SFML is composed of several packages to perfectly suit your needs.
You can use SFML as a minimal windowing system to interface with
OpenGL, or as a fully-featured multimedia library for building games
or interactive programs.
This commit is contained in:
pascal 2014-09-14 21:01:52 +00:00
parent 9dc953cc77
commit 5272d749e4
16 changed files with 460 additions and 0 deletions

55
multimedia/sfml/Makefile Normal file
View File

@ -0,0 +1,55 @@
# $OpenBSD: Makefile,v 1.1.1.1 2014/09/14 21:01:52 pascal Exp $
SHARED_ONLY = Yes
COMMENT = simple and fast multimedia library
V = 2.1
DISTNAME = SFML-${V}-sources
PKGNAME = sfml-${V}
EXTRACT_SUFX = .zip
SHARED_LIBS += sfml-audio 0.0 # 2.1
SHARED_LIBS += sfml-graphics 0.0 # 2.1
SHARED_LIBS += sfml-network 0.0 # 2.1
SHARED_LIBS += sfml-system 0.0 # 2.1
SHARED_LIBS += sfml-window 0.0 # 2.1
CATEGORIES = multimedia
HOMEPAGE = http://www.sfml-dev.org/
MAINTAINER = Pascal Stumpf <Pascal.Stumpf@cubes.de>
# zlib/libpng
PERMIT_PACKAGE_CDROM = Yes
WANTLIB += GL GLEW ICE SM X11 Xext Xrandr freetype jpeg m openal
WANTLIB += pthread sndfile stdc++
MASTER_SITES = http://www.sfml-dev.org/download/sfml/${V}/
MODULES = devel/cmake
LIB_DEPENDS = audio/openal \
audio/libsndfile \
graphics/glew \
graphics/jpeg
FAKE_FLAGS = DESTDIR=${DESTDIR} PREFIX=${PREFIX}
.for l v in ${SHARED_LIBS}
FAKE_FLAGS += LIB${l}_VERSION=${v}
MAKE_FLAGS += LIB${l}_VERSION=${v}
.endfor
NO_TEST = Yes
WRKDIST = ${WRKDIR}/SFML-${V}
post-extract:
find ${WRKSRC} -type f -exec perl -pi -e 's/\015//g' {} \;
post-patch:
find ${WRKSRC}/include -name '*.orig' -exec rm {} \;
.include <bsd.port.mk>

2
multimedia/sfml/distinfo Normal file
View File

@ -0,0 +1,2 @@
SHA256 (SFML-2.1-sources.zip) = X0bXdIIjvj8Map/PGMABbSJ/exkDzbzYX2HdvILvlb8=
SIZE (SFML-2.1-sources.zip) = 9728420

View File

@ -0,0 +1,13 @@
$OpenBSD: patch-cmake_Config_cmake,v 1.1.1.1 2014/09/14 21:01:52 pascal Exp $
--- cmake/Config.cmake.orig Wed Mar 19 23:29:50 2014
+++ cmake/Config.cmake Wed Mar 19 23:30:08 2014
@@ -18,6 +18,9 @@ elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
elseif(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
# FreeBSD compile path is the same as Linux
set(LINUX 1)
+elseif(${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD")
+ # OpenBSD compile path is the same as Linux
+ set(LINUX 1)
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set(MACOSX 1)

View File

@ -0,0 +1,24 @@
$OpenBSD: patch-include_SFML_Config_hpp,v 1.1.1.1 2014/09/14 21:01:52 pascal Exp $
--- include/SFML/Config.hpp.orig Wed Mar 19 23:32:08 2014
+++ include/SFML/Config.hpp Wed Mar 19 23:33:06 2014
@@ -59,6 +59,11 @@
// FreeBSD
#define SFML_SYSTEM_FREEBSD
+#elif defined(__OpenBSD__)
+
+ // OpenBSD
+ #define SFML_SYSTEM_OPENBSD
+
#else
// Unsupported system
@@ -95,7 +100,7 @@
#endif
- #else // Linux, FreeBSD, Mac OS X
+ #else // Linux, FreeBSD, OpenBSD, Mac OS X
#if __GNUC__ >= 4

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-include_SFML_OpenGL_hpp,v 1.1.1.1 2014/09/14 21:01:52 pascal Exp $
--- include/SFML/OpenGL.hpp.orig Wed Mar 19 23:33:39 2014
+++ include/SFML/OpenGL.hpp Wed Mar 19 23:33:56 2014
@@ -46,7 +46,7 @@
#include <GL/gl.h>
#include <GL/glu.h>
-#elif defined(SFML_SYSTEM_LINUX) || defined(SFML_SYSTEM_FREEBSD)
+#elif defined(SFML_SYSTEM_LINUX) || defined(SFML_SYSTEM_FREEBSD) || defined(SFML_SYSTEM_OPENBSD)
#include <GL/gl.h>
#include <GL/glu.h>

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-include_SFML_Window_WindowHandle_hpp,v 1.1.1.1 2014/09/14 21:01:52 pascal Exp $
--- include/SFML/Window/WindowHandle.hpp.orig Wed Mar 19 23:34:17 2014
+++ include/SFML/Window/WindowHandle.hpp Wed Mar 19 23:34:30 2014
@@ -46,7 +46,7 @@ namespace sf
// Window handle is HWND (HWND__*) on Windows
typedef HWND__* WindowHandle;
-#elif defined(SFML_SYSTEM_LINUX) || defined(SFML_SYSTEM_FREEBSD)
+#elif defined(SFML_SYSTEM_LINUX) || defined(SFML_SYSTEM_FREEBSD) || defined(SFML_SYSTEM_OPENBSD)
// Window handle is Window (unsigned long) on Unix - X11
typedef unsigned long WindowHandle;

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-src_SFML_System_CMakeLists_txt,v 1.1.1.1 2014/09/14 21:01:52 pascal Exp $
--- src/SFML/System/CMakeLists.txt.orig Wed Mar 19 23:43:18 2014
+++ src/SFML/System/CMakeLists.txt Wed Mar 19 23:43:31 2014
@@ -74,7 +74,7 @@ if(UNIX)
set(SYSTEM_EXT_LIBS ${SYSTEM_EXT_LIBS} pthread)
endif()
if(LINUX)
- set(SYSTEM_EXT_LIBS ${SYSTEM_EXT_LIBS} rt)
+ set(SYSTEM_EXT_LIBS ${SYSTEM_EXT_LIBS})
endif()
# define the sfml-system target

View File

@ -0,0 +1,31 @@
$OpenBSD: patch-src_SFML_Window_CMakeLists_txt,v 1.1.1.1 2014/09/14 21:01:52 pascal Exp $
--- src/SFML/Window/CMakeLists.txt.orig Thu Mar 20 02:16:11 2014
+++ src/SFML/Window/CMakeLists.txt Thu Mar 20 02:17:41 2014
@@ -14,11 +14,11 @@ set(SRC
${INCROOT}/ContextSettings.hpp
${INCROOT}/Event.hpp
${SRCROOT}/InputImpl.hpp
- ${INCROOT}/Joystick.hpp
- ${SRCROOT}/Joystick.cpp
- ${SRCROOT}/JoystickImpl.hpp
- ${SRCROOT}/JoystickManager.cpp
- ${SRCROOT}/JoystickManager.hpp
+# ${INCROOT}/Joystick.hpp
+# ${SRCROOT}/Joystick.cpp
+# ${SRCROOT}/JoystickImpl.hpp
+# ${SRCROOT}/JoystickManager.cpp
+# ${SRCROOT}/JoystickManager.hpp
${INCROOT}/Keyboard.hpp
${SRCROOT}/Keyboard.cpp
${INCROOT}/Mouse.hpp
@@ -57,8 +57,8 @@ elseif(LINUX)
${SRCROOT}/Linux/GlxContext.hpp
${SRCROOT}/Linux/InputImpl.cpp
${SRCROOT}/Linux/InputImpl.hpp
- ${SRCROOT}/Linux/JoystickImpl.cpp
- ${SRCROOT}/Linux/JoystickImpl.hpp
+# ${SRCROOT}/Linux/JoystickImpl.cpp
+# ${SRCROOT}/Linux/JoystickImpl.hpp
${SRCROOT}/Linux/VideoModeImpl.cpp
${SRCROOT}/Linux/WindowImplX11.cpp
${SRCROOT}/Linux/WindowImplX11.hpp

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-src_SFML_Window_GlContext_cpp,v 1.1.1.1 2014/09/14 21:01:52 pascal Exp $
--- src/SFML/Window/GlContext.cpp.orig Wed Mar 19 23:35:03 2014
+++ src/SFML/Window/GlContext.cpp Wed Mar 19 23:35:20 2014
@@ -41,7 +41,7 @@
#include <SFML/Window/Win32/WglContext.hpp>
typedef sf::priv::WglContext ContextType;
-#elif defined(SFML_SYSTEM_LINUX) || defined(SFML_SYSTEM_FREEBSD)
+#elif defined(SFML_SYSTEM_LINUX) || defined(SFML_SYSTEM_FREEBSD) || defined(SFML_SYSTEM_OPENBSD)
#include <SFML/Window/Linux/GlxContext.hpp>
typedef sf::priv::GlxContext ContextType;

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-src_SFML_Window_InputImpl_hpp,v 1.1.1.1 2014/09/14 21:01:52 pascal Exp $
--- src/SFML/Window/InputImpl.hpp.orig Wed Mar 19 23:35:27 2014
+++ src/SFML/Window/InputImpl.hpp Wed Mar 19 23:35:40 2014
@@ -32,7 +32,7 @@
#if defined(SFML_SYSTEM_WINDOWS)
#include <SFML/Window/Win32/InputImpl.hpp>
-#elif defined(SFML_SYSTEM_LINUX) || defined(SFML_SYSTEM_FREEBSD)
+#elif defined(SFML_SYSTEM_LINUX) || defined(SFML_SYSTEM_FREEBSD) || defined(SFML_SYSTEM_OPENBSD)
#include <SFML/Window/Linux/InputImpl.hpp>
#elif defined(SFML_SYSTEM_MACOS)
#include <SFML/Window/OSX/InputImpl.hpp>

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-src_SFML_Window_JoystickImpl_hpp,v 1.1.1.1 2014/09/14 21:01:52 pascal Exp $
--- src/SFML/Window/JoystickImpl.hpp.orig Wed Mar 19 23:35:48 2014
+++ src/SFML/Window/JoystickImpl.hpp Wed Mar 19 23:36:04 2014
@@ -79,7 +79,7 @@ struct JoystickState
#if defined(SFML_SYSTEM_WINDOWS)
#include <SFML/Window/Win32/JoystickImpl.hpp>
-#elif defined(SFML_SYSTEM_LINUX) || defined(SFML_SYSTEM_FREEBSD)
+#elif defined(SFML_SYSTEM_LINUX) || defined(SFML_SYSTEM_FREEBSD) || defined(SFML_SYSTEM_OPENBSD)
#include <SFML/Window/Linux/JoystickImpl.hpp>
#elif defined(SFML_SYSTEM_MACOS)
#include <SFML/Window/OSX/JoystickImpl.hpp>

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-src_SFML_Window_Linux_JoystickImpl_hpp,v 1.1.1.1 2014/09/14 21:01:52 pascal Exp $
--- src/SFML/Window/Linux/JoystickImpl.hpp.orig Thu Mar 20 02:12:52 2014
+++ src/SFML/Window/Linux/JoystickImpl.hpp Thu Mar 20 02:13:09 2014
@@ -31,7 +31,7 @@
#if defined(SFML_SYSTEM_LINUX)
#include <linux/joystick.h>
#include <fcntl.h>
-#elif defined(SFML_SYSTEM_FREEBSD)
+#elif defined(SFML_SYSTEM_FREEBSD) || defined(SFML_SYSTEM_OPENBSD)
// #include <sys/joystick.h> ?
#define ABS_MAX 1
#endif

View File

@ -0,0 +1,14 @@
$OpenBSD: patch-src_SFML_Window_Linux_WindowImplX11_cpp,v 1.1.1.1 2014/09/14 21:01:52 pascal Exp $
--- src/SFML/Window/Linux/WindowImplX11.cpp.orig Wed Mar 19 23:53:29 2014
+++ src/SFML/Window/Linux/WindowImplX11.cpp Wed Mar 19 23:54:03 2014
@@ -41,6 +41,10 @@
#include <string>
#include <iterator>
+#if defined(SFML_SYSTEM_OPENBSD)
+#include <libgen.h>
+#endif
+
////////////////////////////////////////////////////////////
// Private data

View File

@ -0,0 +1,120 @@
$OpenBSD: patch-src_SFML_Window_WindowImpl_cpp,v 1.1.1.1 2014/09/14 21:01:52 pascal Exp $
--- src/SFML/Window/WindowImpl.cpp.orig Thu Mar 20 02:18:17 2014
+++ src/SFML/Window/WindowImpl.cpp Thu Mar 20 02:23:23 2014
@@ -27,7 +27,6 @@
////////////////////////////////////////////////////////////
#include <SFML/Window/WindowImpl.hpp>
#include <SFML/Window/Event.hpp>
-#include <SFML/Window/JoystickManager.hpp>
#include <SFML/System/Sleep.hpp>
#include <algorithm>
#include <cmath>
@@ -37,7 +36,7 @@
#include <SFML/Window/Win32/WindowImplWin32.hpp>
typedef sf::priv::WindowImplWin32 WindowImplType;
-#elif defined(SFML_SYSTEM_LINUX) || defined(SFML_SYSTEM_FREEBSD)
+#elif defined(SFML_SYSTEM_LINUX) || defined(SFML_SYSTEM_FREEBSD) || defined(SFML_SYSTEM_OPENBSD)
#include <SFML/Window/Linux/WindowImplX11.hpp>
typedef sf::priv::WindowImplX11 WindowImplType;
@@ -73,9 +72,6 @@ WindowImpl::WindowImpl() :
m_joyThreshold(0.1f)
{
// Get the initial joystick states
- JoystickManager::getInstance().update();
- for (unsigned int i = 0; i < Joystick::Count; ++i)
- m_joyStates[i] = JoystickManager::getInstance().getState(i);
}
@@ -89,7 +85,7 @@ WindowImpl::~WindowImpl()
////////////////////////////////////////////////////////////
void WindowImpl::setJoystickThreshold(float threshold)
{
- m_joyThreshold = threshold;
+ // Nothing to do
}
@@ -102,7 +98,6 @@ bool WindowImpl::popEvent(Event& event, bool block)
if (!block)
{
// Non-blocking mode: process events and continue
- processJoystickEvents();
processEvents();
}
else
@@ -114,7 +109,6 @@ bool WindowImpl::popEvent(Event& event, bool block)
// events (which require polling)
while (m_events.empty())
{
- processJoystickEvents();
processEvents();
sleep(milliseconds(10));
}
@@ -145,64 +139,6 @@ void WindowImpl::pushEvent(const Event& event)
void WindowImpl::processJoystickEvents()
{
// First update the global joystick states
- JoystickManager::getInstance().update();
-
- for (unsigned int i = 0; i < Joystick::Count; ++i)
- {
- // Copy the previous state of the joystick and get the new one
- JoystickState previousState = m_joyStates[i];
- m_joyStates[i] = JoystickManager::getInstance().getState(i);
- JoystickCaps caps = JoystickManager::getInstance().getCapabilities(i);
-
- // Connection state
- bool connected = m_joyStates[i].connected;
- if (previousState.connected ^ connected)
- {
- Event event;
- event.type = connected ? Event::JoystickConnected : Event::JoystickDisconnected;
- event.joystickButton.joystickId = i;
- pushEvent(event);
- }
-
- if (connected)
- {
- // Axes
- for (unsigned int j = 0; j < Joystick::AxisCount; ++j)
- {
- if (caps.axes[j])
- {
- Joystick::Axis axis = static_cast<Joystick::Axis>(j);
- float prevPos = previousState.axes[axis];
- float currPos = m_joyStates[i].axes[axis];
- if (fabs(currPos - prevPos) >= m_joyThreshold)
- {
- Event event;
- event.type = Event::JoystickMoved;
- event.joystickMove.joystickId = i;
- event.joystickMove.axis = axis;
- event.joystickMove.position = currPos;
- pushEvent(event);
- }
- }
- }
-
- // Buttons
- for (unsigned int j = 0; j < caps.buttonCount; ++j)
- {
- bool prevPressed = previousState.buttons[j];
- bool currPressed = m_joyStates[i].buttons[j];
-
- if (prevPressed ^ currPressed)
- {
- Event event;
- event.type = currPressed ? Event::JoystickButtonPressed : Event::JoystickButtonReleased;
- event.joystickButton.joystickId = i;
- event.joystickButton.button = j;
- pushEvent(event);
- }
- }
- }
- }
}

View File

@ -0,0 +1,6 @@
SFML is a portable and easy to use multimedia API written in C++.
You can see it as a modern, object-oriented alternative to SDL.
SFML is composed of several packages to perfectly suit your needs.
You can use SFML as a minimal windowing system to interface with
OpenGL, or as a fully-featured multimedia library for building games
or interactive programs.

111
multimedia/sfml/pkg/PLIST Normal file
View File

@ -0,0 +1,111 @@
@comment $OpenBSD: PLIST,v 1.1.1.1 2014/09/14 21:01:52 pascal Exp $
include/SFML/
include/SFML/Audio/
include/SFML/Audio.hpp
include/SFML/Audio/Export.hpp
include/SFML/Audio/Listener.hpp
include/SFML/Audio/Music.hpp
include/SFML/Audio/Sound.hpp
include/SFML/Audio/SoundBuffer.hpp
include/SFML/Audio/SoundBufferRecorder.hpp
include/SFML/Audio/SoundRecorder.hpp
include/SFML/Audio/SoundSource.hpp
include/SFML/Audio/SoundStream.hpp
include/SFML/Config.hpp
include/SFML/Graphics/
include/SFML/Graphics.hpp
include/SFML/Graphics/BlendMode.hpp
include/SFML/Graphics/CircleShape.hpp
include/SFML/Graphics/Color.hpp
include/SFML/Graphics/ConvexShape.hpp
include/SFML/Graphics/Drawable.hpp
include/SFML/Graphics/Export.hpp
include/SFML/Graphics/Font.hpp
include/SFML/Graphics/Glyph.hpp
include/SFML/Graphics/Image.hpp
include/SFML/Graphics/PrimitiveType.hpp
include/SFML/Graphics/Rect.hpp
include/SFML/Graphics/Rect.inl
include/SFML/Graphics/RectangleShape.hpp
include/SFML/Graphics/RenderStates.hpp
include/SFML/Graphics/RenderTarget.hpp
include/SFML/Graphics/RenderTexture.hpp
include/SFML/Graphics/RenderWindow.hpp
include/SFML/Graphics/Shader.hpp
include/SFML/Graphics/Shape.hpp
include/SFML/Graphics/Sprite.hpp
include/SFML/Graphics/Text.hpp
include/SFML/Graphics/Texture.hpp
include/SFML/Graphics/Transform.hpp
include/SFML/Graphics/Transformable.hpp
include/SFML/Graphics/Vertex.hpp
include/SFML/Graphics/VertexArray.hpp
include/SFML/Graphics/View.hpp
include/SFML/Network/
include/SFML/Network.hpp
include/SFML/Network/Export.hpp
include/SFML/Network/Ftp.hpp
include/SFML/Network/Http.hpp
include/SFML/Network/IpAddress.hpp
include/SFML/Network/Packet.hpp
include/SFML/Network/Socket.hpp
include/SFML/Network/SocketHandle.hpp
include/SFML/Network/SocketSelector.hpp
include/SFML/Network/TcpListener.hpp
include/SFML/Network/TcpSocket.hpp
include/SFML/Network/UdpSocket.hpp
include/SFML/OpenGL.hpp
include/SFML/System/
include/SFML/System.hpp
include/SFML/System/Clock.hpp
include/SFML/System/Err.hpp
include/SFML/System/Export.hpp
include/SFML/System/InputStream.hpp
include/SFML/System/Lock.hpp
include/SFML/System/Mutex.hpp
include/SFML/System/NonCopyable.hpp
include/SFML/System/Sleep.hpp
include/SFML/System/String.hpp
include/SFML/System/Thread.hpp
include/SFML/System/Thread.inl
include/SFML/System/ThreadLocal.hpp
include/SFML/System/ThreadLocalPtr.hpp
include/SFML/System/ThreadLocalPtr.inl
include/SFML/System/Time.hpp
include/SFML/System/Utf.hpp
include/SFML/System/Utf.inl
include/SFML/System/Vector2.hpp
include/SFML/System/Vector2.inl
include/SFML/System/Vector3.hpp
include/SFML/System/Vector3.inl
include/SFML/Window/
include/SFML/Window.hpp
include/SFML/Window/Context.hpp
include/SFML/Window/ContextSettings.hpp
include/SFML/Window/Event.hpp
include/SFML/Window/Export.hpp
include/SFML/Window/GlResource.hpp
include/SFML/Window/Joystick.hpp
include/SFML/Window/Keyboard.hpp
include/SFML/Window/Mouse.hpp
include/SFML/Window/VideoMode.hpp
include/SFML/Window/Window.hpp
include/SFML/Window/WindowHandle.hpp
include/SFML/Window/WindowStyle.hpp
@lib lib/libsfml-audio.so.${LIBsfml-audio_VERSION}
@lib lib/libsfml-graphics.so.${LIBsfml-graphics_VERSION}
@lib lib/libsfml-network.so.${LIBsfml-network_VERSION}
@lib lib/libsfml-system.so.${LIBsfml-system_VERSION}
@lib lib/libsfml-window.so.${LIBsfml-window_VERSION}
lib/pkgconfig/sfml-all.pc
lib/pkgconfig/sfml-audio.pc
lib/pkgconfig/sfml-graphics.pc
lib/pkgconfig/sfml-network.pc
lib/pkgconfig/sfml-system.pc
lib/pkgconfig/sfml-window.pc
share/SFML/
share/SFML/cmake/
share/SFML/cmake/Modules/
share/SFML/cmake/Modules/FindSFML.cmake
share/SFML/license.txt
share/SFML/readme.txt