Commit dc2bc1b0 by Nicolas Capens

Add the OGLESBasicTnL sample for Linux.

Change-Id: I0c0a9bc99e8cf9ea92919c77ef6c05b1439f40da Reviewed-on: https://swiftshader-review.googlesource.com/4941Tested-by: 's avatarNicolas Capens <capn@google.com> Reviewed-by: 's avatarAlexis Hétu <sugoi@google.com> Reviewed-by: 's avatarNicolas Capens <capn@google.com>
parent dcc15922
...@@ -13,5 +13,9 @@ ...@@ -13,5 +13,9 @@
<Depends filename="OpenGL/libEGL/libEGL.cbp" /> <Depends filename="OpenGL/libEGL/libEGL.cbp" />
<Depends filename="OpenGL/libGLESv2/libGLESv2.cbp" /> <Depends filename="OpenGL/libGLESv2/libGLESv2.cbp" />
</Project> </Project>
<Project filename="../tests/third_party/PowerVR/Examples/Beginner/04_BasicTnL/OGLES/Build/OGLESBasicTnL.cbp">
<Depends filename="OpenGL/libEGL/libEGL.cbp" />
<Depends filename="OpenGL/libGLES_CM/libGLES_CM.cbp" />
</Project>
</Workspace> </Workspace>
</CodeBlocks_workspace_file> </CodeBlocks_workspace_file>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file>
<FileVersion major="1" minor="6" />
<Project>
<Option title="OGLESBasicTnL" />
<Option pch_mode="2" />
<Option compiler="clang" />
<Build>
<Target title="Debug x86">
<Option output="bin/Debug_x86/OGLESBasicTnL" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Debug_x86/" />
<Option type="1" />
<Option compiler="clang" />
<Compiler>
<Add option="-g" />
<Add option="-m32" />
</Compiler>
<Linker>
<Add option="-m32" />
<Add directory="../../../../../../../../lib/Debug_x86" />
</Linker>
</Target>
<Target title="Release x86">
<Option output="bin/Release_x86/OGLESBasicTnL" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Release_x86/" />
<Option type="1" />
<Option compiler="clang" />
<Compiler>
<Add option="-O2" />
<Add option="-m32" />
</Compiler>
<Linker>
<Add option="-s" />
<Add option="-m32" />
<Add directory="../../../../../../../../lib/Release_x86" />
</Linker>
</Target>
<Target title="Debug x64">
<Option output="bin/Debug_x64/OGLESBasicTnL" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Debug_x64/" />
<Option type="1" />
<Option compiler="clang" />
<Compiler>
<Add option="-g" />
</Compiler>
<Linker>
<Add directory="../../../../../../../../lib/Debug_x64" />
</Linker>
</Target>
<Target title="Release x64">
<Option output="bin/Release_x64/OGLESBasicTnL" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Release_x64/" />
<Option type="1" />
<Option compiler="clang" />
<Compiler>
<Add option="-O2" />
</Compiler>
<Linker>
<Add option="-s" />
<Add directory="../../../../../../../../lib/Release_x64" />
</Linker>
</Target>
</Build>
<Compiler>
<Add option="-Wall" />
<Add option="-std=c++11" />
<Add option="-fexceptions" />
<Add directory="../../../../../Builds/Include" />
<Add directory="../../../../../Shell" />
<Add directory="../../../../../Shell/OS/LinuxX11" />
<Add directory="../../../../../Shell/API/KEGL" />
</Compiler>
<Linker>
<Add option="-Wl,--rpath -Wl,./" />
<Add library="X11" />
<Add library="EGL" />
<Add library="GLES_CM" />
</Linker>
<Unit filename="../../../../../Shell/API/KEGL/PVRShellAPI.cpp" />
<Unit filename="../../../../../Shell/OS/LinuxX11/PVRShellOS.cpp" />
<Unit filename="../../../../../Shell/PVRShell.cpp" />
<Unit filename="../OGLESBasicTnL.cpp" />
<Extensions>
<code_completion />
<debugger />
</Extensions>
</Project>
</CodeBlocks_project_file>
/*!****************************************************************************
@file LinuxX11/PVRShellOS.h
@ingroup OS_LinuxX11
@copyright Copyright (c) Imagination Technologies Limited.
@brief Initialization for the shell for LinuxX11.
@details Makes programming for 3D APIs easier by wrapping surface
initialization, Texture allocation and other functions for use by a demo.
******************************************************************************/
#ifndef _PVRSHELLOS_
#define _PVRSHELLOS_
#include "X11/Xlib.h"
#include "X11/Xutil.h"
#ifdef BUILD_OGL
#include "X11/extensions/xf86vmode.h"
#endif
#define PVRSHELL_DIR_SYM '/'
#define _stricmp strcasecmp
/*!
@addtogroup OS_LinuxX11
@brief LinuxX11 OS
@details The following table illustrates how key codes are mapped in LinuxX11:
<table>
<tr><th> Key code </th><th> nLastKeyPressed (PVRShell) </th></tr>
<tr><td> Esc </td><td> PVRShellKeyNameQUIT </td></tr>
<tr><td> F11 </td><td> PVRShellKeyNameScreenshot </td></tr>
<tr><td> Enter </td><td> PVRShellKeyNameSELECT </td></tr>
<tr><td> '1' </td><td> PVRShellKeyNameACTION1 </td></tr>
<tr><td> '2' </td><td> PVRShellKeyNameACTION2 </td></tr>
<tr><td> Up arrow </td><td> m_eKeyMapUP </td></tr>
<tr><td> Down arrow </td><td> m_eKeyMapDOWN </td></tr>
<tr><td> Left arrow </td><td> m_eKeyMapLEFT </td></tr>
<tr><td> Right arrow </td><td> m_eKeyMapRIGHT </td></tr>
</table>
@{
*/
/*!***************************************************************************
@class PVRShellInitOS
@brief Interface with specific Operative System.
*****************************************************************************/
class PVRShellInitOS
{
public:
Display* m_X11Display;
long m_X11Screen;
XVisualInfo* m_X11Visual;
Colormap m_X11ColorMap;
Window m_X11Window;
timeval m_StartTime;
#ifdef BUILD_OGL
XF86VidModeModeLine m_OriginalMode; // modeline that was active at the starting point of this aplication
int m_i32OriginalModeDotClock;
#endif
// Pixmap support: variables for the pixmap
Pixmap m_X11Pixmap;
GC m_X11GC;
unsigned int m_u32ButtonState; // 1 = left, 2 = right, 4 = middle
public:
int OpenX11Window(const PVRShell &shell);
void CloseX11Window();
};
/*! @} */
#endif /* _PVRSHELLOS_ */
/*****************************************************************************
End of file (PVRShellOS.h)
*****************************************************************************/
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment