BUILDFIX: enabling the building of the viewer/appearance backend with headless mesa
parent
8b2cb3766e
commit
49caededb4
|
|
@ -1432,9 +1432,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>1f600840463c7327ea17486821425750</string>
|
||||
<string>9da287964003f9042e84417d2e3a6c36</string>
|
||||
<key>url</key>
|
||||
<string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/mesa-7.0-linux-20100930.tar.bz2</string>
|
||||
<string>file:///ngi-persist/var/tmp/nyx/3p-mesa/mesa-7.11.1-linux-20120918.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
|
|||
|
|
@ -8,15 +8,15 @@ set(LLRENDER_INCLUDE_DIRS
|
|||
${GLH_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
if (SERVER AND LINUX)
|
||||
if ((SERVER OR BAKING) AND LINUX)
|
||||
set(LLRENDER_LIBRARIES
|
||||
llrenderheadless
|
||||
)
|
||||
else (SERVER AND LINUX)
|
||||
else ((SERVER OR BAKING) AND LINUX)
|
||||
set(LLRENDER_LIBRARIES
|
||||
llrender
|
||||
)
|
||||
endif (SERVER AND LINUX)
|
||||
endif ((SERVER OR BAKING) AND LINUX)
|
||||
|
||||
# mapserver requires certain files to be copied so LL_MESA_HEADLESS can be set
|
||||
# differently for different object files.
|
||||
|
|
|
|||
|
|
@ -22,22 +22,28 @@ else (STANDALONE)
|
|||
endif (LINUX AND VIEWER)
|
||||
endif (STANDALONE)
|
||||
|
||||
if (SDL_FOUND)
|
||||
if (SDL_FOUND AND NOT BAKING)
|
||||
add_definitions(-DLL_SDL=1)
|
||||
include_directories(${SDL_INCLUDE_DIR})
|
||||
endif (SDL_FOUND)
|
||||
endif (SDL_FOUND AND NOT BAKING)
|
||||
|
||||
if (BAKING)
|
||||
use_prebuilt_binary(mesa)
|
||||
add_definitions(-DLL_MESA_HEADLESS=1)
|
||||
endif (BAKING)
|
||||
|
||||
set(LLWINDOW_INCLUDE_DIRS
|
||||
${GLEXT_INCLUDE_DIR}
|
||||
${LIBS_OPEN_DIR}/llwindow
|
||||
)
|
||||
|
||||
if (SERVER AND LINUX)
|
||||
if ((SERVER AND LINUX) OR (BAKING AND LINUX))
|
||||
set(LLWINDOW_LIBRARIES
|
||||
llwindowheadless
|
||||
)
|
||||
MESSAGE( STATUS "using headless libraries")
|
||||
else (SERVER AND LINUX)
|
||||
set(LLWINDOW_LIBRARIES
|
||||
llwindow
|
||||
)
|
||||
endif (SERVER AND LINUX)
|
||||
endif ((SERVER AND LINUX) OR (BAKING AND LINUX))
|
||||
|
|
|
|||
|
|
@ -78,7 +78,12 @@ set_source_files_properties(${llrender_HEADER_FILES}
|
|||
|
||||
list(APPEND llrender_SOURCE_FILES ${llrender_HEADER_FILES})
|
||||
|
||||
if (SERVER AND NOT WINDOWS AND NOT DARWIN)
|
||||
list(APPEND llrender_SOURCE_FILES
|
||||
llgl.cpp
|
||||
llrender.cpp
|
||||
llrendertarget.cpp
|
||||
)
|
||||
if ((SERVER OR BAKING) AND NOT WINDOWS AND NOT DARWIN)
|
||||
copy_server_sources(
|
||||
llgl
|
||||
llrender
|
||||
|
|
@ -94,13 +99,8 @@ if (SERVER AND NOT WINDOWS AND NOT DARWIN)
|
|||
${llrender_SOURCE_FILES}
|
||||
${server_SOURCE_FILES}
|
||||
)
|
||||
else (SERVER AND NOT WINDOWS AND NOT DARWIN)
|
||||
list(APPEND llrender_SOURCE_FILES
|
||||
llgl.cpp
|
||||
llrender.cpp
|
||||
llrendertarget.cpp
|
||||
)
|
||||
endif (SERVER AND NOT WINDOWS AND NOT DARWIN)
|
||||
endif ((SERVER OR BAKING) AND NOT WINDOWS AND NOT DARWIN)
|
||||
|
||||
add_library (llrender ${llrender_SOURCE_FILES})
|
||||
# Libraries on which this library depends, needed for Linux builds
|
||||
# Sort by high-level to low-level
|
||||
|
|
@ -115,3 +115,15 @@ target_link_libraries(llrender
|
|||
${LLWINDOW_LIBRARIES}
|
||||
${FREETYPE_LIBRARIES}
|
||||
${OPENGL_LIBRARIES})
|
||||
|
||||
target_link_libraries(llrenderheadless
|
||||
${LLCOMMON_LIBRARIES}
|
||||
${LLIMAGE_LIBRARIES}
|
||||
${LLMATH_LIBRARIES}
|
||||
${LLRENDER_LIBRARIES}
|
||||
${LLVFS_LIBRARIES}
|
||||
${LLXML_LIBRARIES}
|
||||
${LLVFS_LIBRARIES}
|
||||
${LLWINDOW_LIBRARIES}
|
||||
${OPENGL_LIBRARIES})
|
||||
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ std::string currentOsName()
|
|||
return "Windows";
|
||||
#elif LL_DARWIN
|
||||
return "Mac";
|
||||
#elif LL_SDL
|
||||
#elif LL_SDL || LL_MESA_HEADLESS
|
||||
return "Linux";
|
||||
#else
|
||||
return "";
|
||||
|
|
|
|||
|
|
@ -188,9 +188,6 @@ PFNGLWAITSYNCPROC glWaitSync = NULL;
|
|||
PFNGLGETINTEGER64VPROC glGetInteger64v = NULL;
|
||||
PFNGLGETSYNCIVPROC glGetSynciv = NULL;
|
||||
|
||||
// GL_APPLE_flush_buffer_range
|
||||
PFNGLBUFFERPARAMETERIAPPLEPROC glBufferParameteriAPPLE = NULL;
|
||||
PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC glFlushMappedBufferRangeAPPLE = NULL;
|
||||
|
||||
// vertex object prototypes
|
||||
PFNGLNEWOBJECTBUFFERATIPROC glNewObjectBufferATI = NULL;
|
||||
|
|
|
|||
|
|
@ -357,7 +357,6 @@ bool LLTexUnit::bind(LLCubeMap* cubeMap)
|
|||
}
|
||||
|
||||
// LLRenderTarget is unavailible on the mapserver since it uses FBOs.
|
||||
#if !LL_MESA_HEADLESS
|
||||
bool LLTexUnit::bind(LLRenderTarget* renderTarget, bool bindDepth)
|
||||
{
|
||||
if (mIndex < 0) return false;
|
||||
|
|
@ -380,7 +379,6 @@ bool LLTexUnit::bind(LLRenderTarget* renderTarget, bool bindDepth)
|
|||
|
||||
return true;
|
||||
}
|
||||
#endif // LL_MESA_HEADLESS
|
||||
|
||||
bool LLTexUnit::bindManual(eTextureType type, U32 texture, bool hasMips)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -570,3 +570,5 @@ void LLRenderTarget::getViewport(S32* viewport)
|
|||
viewport[3] = mResY;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
#define LL_LLRENDERTARGET_H
|
||||
|
||||
// LLRenderTarget is unavailible on the mapserver since it uses FBOs.
|
||||
#if !LL_MESA_HEADLESS
|
||||
|
||||
#include "llgl.h"
|
||||
#include "llrender.h"
|
||||
|
|
@ -157,7 +156,5 @@ protected:
|
|||
static LLRenderTarget* sBoundTarget;
|
||||
};
|
||||
|
||||
#endif //!LL_MESA_HEADLESS
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -1574,8 +1574,10 @@ volatile U8* LLVertexBuffer::mapVertexBuffer(S32 type, S32 index, S32 count, boo
|
|||
{
|
||||
if (map_range)
|
||||
{
|
||||
#ifndef LL_MESA_HEADLESS
|
||||
glBufferParameteriAPPLE(GL_ARRAY_BUFFER_ARB, GL_BUFFER_SERIALIZED_MODIFY_APPLE, GL_FALSE);
|
||||
glBufferParameteriAPPLE(GL_ARRAY_BUFFER_ARB, GL_BUFFER_FLUSHING_UNMAP_APPLE, GL_FALSE);
|
||||
#endif
|
||||
src = (U8*) glMapBufferARB(GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB);
|
||||
}
|
||||
else
|
||||
|
|
@ -1752,8 +1754,10 @@ volatile U8* LLVertexBuffer::mapIndexBuffer(S32 index, S32 count, bool map_range
|
|||
{
|
||||
if (map_range)
|
||||
{
|
||||
#ifndef LL_MESA_HEADLESS
|
||||
glBufferParameteriAPPLE(GL_ELEMENT_ARRAY_BUFFER_ARB, GL_BUFFER_SERIALIZED_MODIFY_APPLE, GL_FALSE);
|
||||
glBufferParameteriAPPLE(GL_ELEMENT_ARRAY_BUFFER_ARB, GL_BUFFER_FLUSHING_UNMAP_APPLE, GL_FALSE);
|
||||
#endif
|
||||
src = (U8*) glMapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB);
|
||||
}
|
||||
else
|
||||
|
|
@ -1881,7 +1885,9 @@ void LLVertexBuffer::unmapBuffer()
|
|||
}
|
||||
else if (gGLManager.mHasFlushBufferRange)
|
||||
{
|
||||
#ifndef LL_MESA_HEADLESS
|
||||
glFlushMappedBufferRangeAPPLE(GL_ARRAY_BUFFER_ARB, offset, length);
|
||||
#endif
|
||||
}
|
||||
stop_glerror();
|
||||
}
|
||||
|
|
@ -1947,7 +1953,9 @@ void LLVertexBuffer::unmapBuffer()
|
|||
else if (gGLManager.mHasFlushBufferRange)
|
||||
{
|
||||
#ifdef GL_APPLE_flush_buffer_range
|
||||
#ifndef LL_MESA_HEADLESS
|
||||
glFlushMappedBufferRangeAPPLE(GL_ELEMENT_ARRAY_BUFFER_ARB, offset, length);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
stop_glerror();
|
||||
|
|
|
|||
|
|
@ -140,18 +140,19 @@ endif (SOLARIS)
|
|||
set_source_files_properties(${llwindow_HEADER_FILES}
|
||||
PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
|
||||
if (SERVER AND NOT WINDOWS AND NOT DARWIN)
|
||||
if ((SERVER OR BAKING) AND NOT WINDOWS AND NOT DARWIN)
|
||||
set(server_SOURCE_FILES
|
||||
llwindowmesaheadless.cpp
|
||||
llmousehandler.cpp
|
||||
)
|
||||
set(server_HEADER_FILES
|
||||
llwindowmesaheadless.h
|
||||
llmousehandler.h
|
||||
)
|
||||
copy_server_sources(
|
||||
llwindow
|
||||
)
|
||||
|
||||
|
||||
set_source_files_properties(
|
||||
${server_SOURCE_FILES}
|
||||
PROPERTIES
|
||||
|
|
@ -161,8 +162,8 @@ if (SERVER AND NOT WINDOWS AND NOT DARWIN)
|
|||
${llwindow_SOURCE_FILES}
|
||||
${server_SOURCE_FILES}
|
||||
)
|
||||
target_link_libraries (llwindowheadless ${llwindow_LINK_LIBRARIES})
|
||||
endif (SERVER AND NOT WINDOWS AND NOT DARWIN)
|
||||
target_link_libraries (llwindowheadless ${llwindow_LINK_LIBRARIES} OSMesa16 dl)
|
||||
endif ((SERVER OR BAKING) AND NOT WINDOWS AND NOT DARWIN)
|
||||
|
||||
if (llwindow_HEADER_FILES)
|
||||
list(APPEND llwindow_SOURCE_FILES ${llwindow_HEADER_FILES})
|
||||
|
|
|
|||
|
|
@ -256,6 +256,8 @@ std::vector<std::string> LLWindow::getDynamicFallbackFontList()
|
|||
return LLWindowWin32::getDynamicFallbackFontList();
|
||||
#elif LL_DARWIN
|
||||
return LLWindowMacOSX::getDynamicFallbackFontList();
|
||||
#elif LL_MESA_HEADLESS
|
||||
return std::vector<std::string>();
|
||||
#elif LL_SDL
|
||||
return LLWindowSDL::getDynamicFallbackFontList();
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@ public:
|
|||
/*virtual*/ BOOL getSize(LLCoordWindow *size) {return FALSE;};
|
||||
/*virtual*/ BOOL setPosition(LLCoordScreen position) {return FALSE;};
|
||||
/*virtual*/ BOOL setSizeImpl(LLCoordScreen size) {return FALSE;};
|
||||
/*virtual*/ BOOL setSizeImpl(LLCoordWindow size) {return FALSE;};
|
||||
/*virtual*/ BOOL switchContext(BOOL fullscreen, const LLCoordScreen &size, BOOL disable_vsync, const LLCoordScreen * const posp = NULL) {return FALSE;};
|
||||
/*virtual*/ BOOL setCursorPosition(LLCoordWindow position) {return FALSE;};
|
||||
/*virtual*/ BOOL getCursorPosition(LLCoordWindow *position) {return FALSE;};
|
||||
|
|
|
|||
|
|
@ -95,6 +95,7 @@ add_custom_command(
|
|||
${CMAKE_CURRENT_BINARY_DIR}/indra.l.cpp
|
||||
COMMAND ${FLEX}
|
||||
ARGS
|
||||
-P indra_
|
||||
-o${CMAKE_CURRENT_BINARY_DIR}/indra.l.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/indra.l
|
||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/indra.l
|
||||
|
|
@ -128,6 +129,7 @@ else (WINDOWS)
|
|||
COMMAND
|
||||
${BISON}
|
||||
ARGS
|
||||
-p indra_
|
||||
-d -o ${CMAKE_CURRENT_BINARY_DIR}/indra.y.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/indra.y
|
||||
DEPENDS
|
||||
|
|
|
|||
|
|
@ -56,6 +56,29 @@ void parse_string();
|
|||
|
||||
#define ECHO do { } while (0)
|
||||
|
||||
#define yyparse indra_parse
|
||||
#define yyerror indra_error
|
||||
#define yylval indra_lval
|
||||
#define yy_create_buffer indra__create_buffer
|
||||
#define yy_delete_buffer indra__delete_buffer
|
||||
#define yy_flex_debug indra__flex_debug
|
||||
#define yy_init_buffer indra__init_buffer
|
||||
#define yy_flush_buffer indra__flush_buffer
|
||||
#define yy_load_buffer_state indra__load_buffer_state
|
||||
#define yy_switch_to_buffer indra__switch_to_buffer
|
||||
#define yyin indra_in
|
||||
#define yyleng indra_leng
|
||||
#define yylex indra_lex
|
||||
#define yylineno indra_lineno
|
||||
#define yyout indra_out
|
||||
#define yyrestart indra_restart
|
||||
#define yytext indra_text
|
||||
#define yywrap indra_wrap
|
||||
#define yyalloc indra_alloc
|
||||
#define yyrealloc indra_realloc
|
||||
#define yyfree indra_free
|
||||
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" { int yylex( void ); }
|
||||
extern "C" { int yyparse( void ); }
|
||||
|
|
|
|||
|
|
@ -327,6 +327,8 @@ BOOL LLDirPicker::getDir(std::string* filename)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
#if !LL_MESA_HEADLESS
|
||||
|
||||
if (mFilePicker)
|
||||
{
|
||||
GtkWindow* picker = mFilePicker->buildFilePicker(false, true,
|
||||
|
|
@ -340,6 +342,8 @@ BOOL LLDirPicker::getDir(std::string* filename)
|
|||
return (!mFilePicker->getFirstFile().empty());
|
||||
}
|
||||
}
|
||||
#endif // !LL_MESA_HEADLESS
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1103,6 +1103,7 @@ void LLFilePicker::chooser_responder(GtkWidget *widget, gint response, gpointer
|
|||
|
||||
GtkWindow* LLFilePicker::buildFilePicker(bool is_save, bool is_folder, std::string context)
|
||||
{
|
||||
#ifndef LL_MESA_HEADLESS
|
||||
if (LLWindowSDL::ll_try_gtk_init())
|
||||
{
|
||||
GtkWidget *win = NULL;
|
||||
|
|
@ -1174,6 +1175,9 @@ GtkWindow* LLFilePicker::buildFilePicker(bool is_save, bool is_folder, std::stri
|
|||
{
|
||||
return NULL;
|
||||
}
|
||||
#else
|
||||
return NULL;
|
||||
#endif //LL_MESA_HEADLESS
|
||||
}
|
||||
|
||||
static void add_common_filters_to_gtkchooser(GtkFileFilter *gfilter,
|
||||
|
|
@ -1473,7 +1477,7 @@ BOOL LLFilePicker::getSaveFile( ESaveFilter filter, const std::string& filename
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL LLFilePicker::getOpenFile( ELoadFilter filter )
|
||||
BOOL LLFilePicker::getOpenFile( ELoadFilter filter, bool blocking )
|
||||
{
|
||||
// if local file browsing is turned off, return without opening dialog
|
||||
// (Even though this is a stub, I think we still should not return anything at all)
|
||||
|
|
@ -1494,7 +1498,7 @@ BOOL LLFilePicker::getOpenFile( ELoadFilter filter )
|
|||
default: break;
|
||||
}
|
||||
mFiles.push_back(filename);
|
||||
llinfos << "getOpenFile: Will try to open file: " << hackyfilename << llendl;
|
||||
llinfos << "getOpenFile: Will try to open file: " << filename << llendl;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue