mirror of
https://github.com/DrBeef/JKXR.git
synced 2025-05-31 00:51:25 +00:00
More progress... sound is playing (no visuals yet)
This commit is contained in:
parent
f894efd296
commit
8c62569139
14 changed files with 157 additions and 109 deletions
|
@ -1354,7 +1354,7 @@ void JKVR_finishEyeBuffer(int eye )
|
|||
ovrFramebuffer_SetNone();
|
||||
}
|
||||
|
||||
bool JKVR_processMessageQueue() {
|
||||
void JKVR_processMessageQueue() {
|
||||
for ( ; ; )
|
||||
{
|
||||
ovrMessage message;
|
||||
|
@ -1422,7 +1422,7 @@ bool JKVR_processMessageQueue() {
|
|||
}
|
||||
|
||||
void showLoadingIcon();
|
||||
void jni_shutdown();
|
||||
extern "C" void jni_shutdown();
|
||||
void JKVR_incrementFrameIndex();
|
||||
void shutdownVR();
|
||||
int VR_main( int argc, char* argv[] );
|
||||
|
@ -1804,6 +1804,7 @@ Activity lifecycle
|
|||
================================================================================
|
||||
*/
|
||||
|
||||
extern "C" {
|
||||
|
||||
jmethodID android_shutdown;
|
||||
static JavaVM *jVM;
|
||||
|
@ -1834,7 +1835,7 @@ int JNI_OnLoad(JavaVM* vm, void* reserved)
|
|||
return JNI_VERSION_1_4;
|
||||
}
|
||||
|
||||
JNIEXPORT jlong JNICALL Java_com_drbeef_jk2quest_GLES3JNILib_onCreate( JNIEnv * env, jclass activityClass, jobject activity,
|
||||
JNIEXPORT jlong JNICALL Java_com_drbeef_jkquest_GLES3JNILib_onCreate( JNIEnv * env, jclass activityClass, jobject activity,
|
||||
jstring commandLineParams)
|
||||
{
|
||||
ALOGV( " GLES3JNILib::onCreate()" );
|
||||
|
@ -1909,7 +1910,7 @@ JNIEXPORT jlong JNICALL Java_com_drbeef_jk2quest_GLES3JNILib_onCreate( JNIEnv *
|
|||
}
|
||||
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_drbeef_jk2quest_GLES3JNILib_onStart( JNIEnv * env, jobject obj, jlong handle, jobject obj1)
|
||||
JNIEXPORT void JNICALL Java_com_drbeef_jkquest_GLES3JNILib_onStart( JNIEnv * env, jobject obj, jlong handle, jobject obj1)
|
||||
{
|
||||
ALOGV( " GLES3JNILib::onStart()" );
|
||||
|
||||
|
@ -1925,7 +1926,7 @@ JNIEXPORT void JNICALL Java_com_drbeef_jk2quest_GLES3JNILib_onStart( JNIEnv * en
|
|||
ovrMessageQueue_PostMessage( &appThread->MessageQueue, &message );
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_drbeef_jk2quest_GLES3JNILib_onResume( JNIEnv * env, jobject obj, jlong handle )
|
||||
JNIEXPORT void JNICALL Java_com_drbeef_jkquest_GLES3JNILib_onResume( JNIEnv * env, jobject obj, jlong handle )
|
||||
{
|
||||
ALOGV( " GLES3JNILib::onResume()" );
|
||||
ovrAppThread * appThread = (ovrAppThread *)((size_t)handle);
|
||||
|
@ -1934,7 +1935,7 @@ JNIEXPORT void JNICALL Java_com_drbeef_jk2quest_GLES3JNILib_onResume( JNIEnv * e
|
|||
ovrMessageQueue_PostMessage( &appThread->MessageQueue, &message );
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_drbeef_jk2quest_GLES3JNILib_onPause( JNIEnv * env, jobject obj, jlong handle )
|
||||
JNIEXPORT void JNICALL Java_com_drbeef_jkquest_GLES3JNILib_onPause( JNIEnv * env, jobject obj, jlong handle )
|
||||
{
|
||||
ALOGV( " GLES3JNILib::onPause()" );
|
||||
ovrAppThread * appThread = (ovrAppThread *)((size_t)handle);
|
||||
|
@ -1943,7 +1944,7 @@ JNIEXPORT void JNICALL Java_com_drbeef_jk2quest_GLES3JNILib_onPause( JNIEnv * en
|
|||
ovrMessageQueue_PostMessage( &appThread->MessageQueue, &message );
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_drbeef_jk2quest_GLES3JNILib_onStop( JNIEnv * env, jobject obj, jlong handle )
|
||||
JNIEXPORT void JNICALL Java_com_drbeef_jkquest_GLES3JNILib_onStop( JNIEnv * env, jobject obj, jlong handle )
|
||||
{
|
||||
ALOGV( " GLES3JNILib::onStop()" );
|
||||
ovrAppThread * appThread = (ovrAppThread *)((size_t)handle);
|
||||
|
@ -1952,7 +1953,7 @@ JNIEXPORT void JNICALL Java_com_drbeef_jk2quest_GLES3JNILib_onStop( JNIEnv * env
|
|||
ovrMessageQueue_PostMessage( &appThread->MessageQueue, &message );
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_drbeef_jk2quest_GLES3JNILib_onDestroy( JNIEnv * env, jobject obj, jlong handle )
|
||||
JNIEXPORT void JNICALL Java_com_drbeef_jkquest_GLES3JNILib_onDestroy( JNIEnv * env, jobject obj, jlong handle )
|
||||
{
|
||||
ALOGV( " GLES3JNILib::onDestroy()" );
|
||||
ovrAppThread * appThread = (ovrAppThread *)((size_t)handle);
|
||||
|
@ -1973,7 +1974,7 @@ Surface lifecycle
|
|||
================================================================================
|
||||
*/
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_drbeef_jk2quest_GLES3JNILib_onSurfaceCreated( JNIEnv * env, jobject obj, jlong handle, jobject surface )
|
||||
JNIEXPORT void JNICALL Java_com_drbeef_jkquest_GLES3JNILib_onSurfaceCreated( JNIEnv * env, jobject obj, jlong handle, jobject surface )
|
||||
{
|
||||
ALOGV( " GLES3JNILib::onSurfaceCreated()" );
|
||||
ovrAppThread * appThread = (ovrAppThread *)((size_t)handle);
|
||||
|
@ -1996,7 +1997,7 @@ JNIEXPORT void JNICALL Java_com_drbeef_jk2quest_GLES3JNILib_onSurfaceCreated( JN
|
|||
ovrMessageQueue_PostMessage( &appThread->MessageQueue, &message );
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_drbeef_jk2quest_GLES3JNILib_onSurfaceChanged( JNIEnv * env, jobject obj, jlong handle, jobject surface )
|
||||
JNIEXPORT void JNICALL Java_com_drbeef_jkquest_GLES3JNILib_onSurfaceChanged( JNIEnv * env, jobject obj, jlong handle, jobject surface )
|
||||
{
|
||||
ALOGV( " GLES3JNILib::onSurfaceChanged()" );
|
||||
ovrAppThread * appThread = (ovrAppThread *)((size_t)handle);
|
||||
|
@ -2038,7 +2039,7 @@ JNIEXPORT void JNICALL Java_com_drbeef_jk2quest_GLES3JNILib_onSurfaceChanged( JN
|
|||
}
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_drbeef_jk2quest_GLES3JNILib_onSurfaceDestroyed( JNIEnv * env, jobject obj, jlong handle )
|
||||
JNIEXPORT void JNICALL Java_com_drbeef_jkquest_GLES3JNILib_onSurfaceDestroyed( JNIEnv * env, jobject obj, jlong handle )
|
||||
{
|
||||
ALOGV( " GLES3JNILib::onSurfaceDestroyed()" );
|
||||
ovrAppThread * appThread = (ovrAppThread *)((size_t)handle);
|
||||
|
@ -2050,3 +2051,5 @@ JNIEXPORT void JNICALL Java_com_drbeef_jk2quest_GLES3JNILib_onSurfaceDestroyed(
|
|||
appThread->NativeWindow = NULL;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ void JKVR_HapticEndFrame();
|
|||
void JKVR_HapticStopEvent(const char* event);
|
||||
void JKVR_HapticEnable();
|
||||
void JKVR_HapticDisable();
|
||||
bool JKVR_processMessageQueue();
|
||||
void JKVR_processMessageQueue();
|
||||
void JKVR_FrameSetup();
|
||||
void JKVR_setUseScreenLayer(bool use);
|
||||
void JKVR_processHaptics();
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
|
||||
JK3_BASE_CFLAGS = -O1 -DHAVE_GLES -DFINAL_BUILD -fexceptions -Wall -Wno-write-strings -Wno-comment -fno-caller-saves -fno-tree-vectorize -Wno-unused-but-set-variable
|
||||
JK3_BASE_CFLAGS = -DHAVE_GLES -DFINAL_BUILD -fexceptions -Wall -Wno-write-strings -Wno-comment -fno-caller-saves -fno-tree-vectorize -Wno-unused-but-set-variable
|
||||
JK3_BASE_CPPFLAGS = -fvisibility-inlines-hidden -Wno-invalid-offsetof
|
||||
|
||||
JK3_BASE_LDLIBS =
|
||||
|
|
|
@ -23,7 +23,7 @@ LOCAL_STATIC_LIBRARIES := sigc libzip libpng libminizip
|
|||
LOCAL_SHARED_LIBRARIES := vrapi gl4es
|
||||
|
||||
|
||||
LOCAL_C_INCLUDES := $(JK3_BASE_C_INCLUDES) $(TOP_DIR) $(GL4ES_PATH) $(GL4ES_PATH)/include $(SUPPORT_LIBS)/minizip/include $(SPDir)/rd-vanilla $(SPDir)/rd-common
|
||||
LOCAL_C_INCLUDES := $(JK3_BASE_C_INCLUDES) $(TOP_DIR) $(TOP_DIR)/JKVR $(GL4ES_PATH) $(GL4ES_PATH)/include $(SUPPORT_LIBS)/minizip/include $(SPDir)/rd-vanilla $(SPDir)/rd-common
|
||||
|
||||
|
||||
#############################################################################
|
||||
|
|
|
@ -297,10 +297,20 @@ void Sys_In_Restart_f( void )
|
|||
#endif
|
||||
}
|
||||
|
||||
void Sys_Init (void) {
|
||||
void Sys_Init( void ) {
|
||||
Cmd_AddCommand ("in_restart", Sys_In_Restart_f);
|
||||
Cvar_Set( "arch", "arm" );
|
||||
Cvar_Set( "username", Sys_GetCurrentUser( ) );
|
||||
Cvar_Get( "arch", OS_STRING " " ARCH_STRING, CVAR_ROM );
|
||||
Cvar_Get( "username", Sys_GetCurrentUser(), CVAR_ROM );
|
||||
|
||||
com_unfocused = Cvar_Get( "com_unfocused", "0", CVAR_ROM );
|
||||
com_minimized = Cvar_Get( "com_minimized", "0", CVAR_ROM );
|
||||
#ifdef _JK2EXE
|
||||
com_maxfps = Cvar_Get ("com_maxfps", "125", CVAR_ARCHIVE );
|
||||
#else
|
||||
com_maxfps = Cvar_Get( "com_maxfps", "125", CVAR_ARCHIVE, "Maximum frames per second" );
|
||||
#endif
|
||||
com_maxfpsUnfocused = Cvar_Get( "com_maxfpsUnfocused", "0", CVAR_ARCHIVE_ND );
|
||||
com_maxfpsMinimized = Cvar_Get( "com_maxfpsMinimized", "50", CVAR_ARCHIVE_ND );
|
||||
}
|
||||
|
||||
void Sys_Exit( int ex ) __attribute__((noreturn));
|
||||
|
@ -699,9 +709,13 @@ void *Sys_LoadDll( const char *name, qboolean useSystemLib )
|
|||
if ( !*binarypath )
|
||||
binarypath = ".";
|
||||
|
||||
char lib_path[512];
|
||||
char *libdir = (char*)getenv("JK_LIBDIR");
|
||||
|
||||
const char *searchPaths[] = {
|
||||
libdir,
|
||||
binarypath,
|
||||
basepath,
|
||||
basepath
|
||||
};
|
||||
const size_t numPaths = ARRAY_LEN( searchPaths );
|
||||
|
||||
|
@ -712,7 +726,7 @@ void *Sys_LoadDll( const char *name, qboolean useSystemLib )
|
|||
continue;
|
||||
|
||||
Com_Printf( "Trying to load \"%s\" from \"%s\"...\n", name, libDir );
|
||||
char *fn = va( "%s%c%s", libDir, PATH_SEP, name );
|
||||
char *fn = va( "%s%clib%s", libDir, PATH_SEP, name );
|
||||
dllhandle = Sys_LoadLibrary( fn );
|
||||
if ( dllhandle )
|
||||
return dllhandle;
|
||||
|
@ -749,7 +763,7 @@ void *Sys_LoadGameDll( const char *name, void *(QDECL **moduleAPI)(int, ...) )
|
|||
|
||||
|
||||
char lib_path[512];
|
||||
char *libdir = (char*)getenv("JK_GAMELIBDIR");
|
||||
char *libdir = (char*)getenv("JK_LIBDIR");
|
||||
sprintf(lib_path,"%s/lib%s", libdir,filename);
|
||||
libHandle = dlopen (lib_path, RTLD_LAZY );
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@ along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|||
#include "qcommon/stringed_ingame.h"
|
||||
#include "sys/sys_loadlib.h"
|
||||
#include "qcommon/ojk_saved_game.h"
|
||||
#include <JKVR/VrCommon.h>
|
||||
|
||||
#define RETRANSMIT_TIMEOUT 3000 // time between connection packet retransmits
|
||||
|
||||
|
@ -1072,12 +1073,7 @@ static CMiniHeap *GetG2VertSpaceServer( void ) {
|
|||
return G2VertSpaceServer;
|
||||
}
|
||||
|
||||
// NOTENOTE: If you change the output name of rd-vanilla, change this define too!
|
||||
#ifdef JK2_MODE
|
||||
#define DEFAULT_RENDER_LIBRARY "rdjosp-vanilla"
|
||||
#else
|
||||
#define DEFAULT_RENDER_LIBRARY "rdsp-vanilla"
|
||||
#endif
|
||||
#define DEFAULT_RENDER_LIBRARY "rd-gles"
|
||||
|
||||
void CL_InitRef( void ) {
|
||||
refexport_t *ret;
|
||||
|
@ -1187,6 +1183,8 @@ void CL_InitRef( void ) {
|
|||
|
||||
rit.saved_game = &ojk::SavedGame::get_instance();
|
||||
|
||||
rit.JKVR_prepareEyeBuffer = JKVR_prepareEyeBuffer;
|
||||
|
||||
ret = GetRefAPI( REF_API_VERSION, &rit );
|
||||
|
||||
if ( !ret ) {
|
||||
|
|
|
@ -28,6 +28,7 @@ along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
#include "client.h"
|
||||
#include "client_ui.h"
|
||||
#include <JKVR/VrCommon.h>
|
||||
|
||||
extern console_t con;
|
||||
|
||||
|
@ -498,19 +499,45 @@ void SCR_UpdateScreen( void ) {
|
|||
// that case.
|
||||
if ( cls.uiStarted )
|
||||
{
|
||||
// if running in stereo, we need to draw the frame twice
|
||||
if ( cls.glconfig.stereoEnabled ) {
|
||||
SCR_DrawScreenField( STEREO_LEFT );
|
||||
SCR_DrawScreenField( STEREO_RIGHT );
|
||||
} else {
|
||||
SCR_DrawScreenField( STEREO_CENTER );
|
||||
JKVR_FrameSetup();
|
||||
|
||||
JKVR_processMessageQueue();
|
||||
|
||||
//Get controller state here
|
||||
JKVR_getHMDOrientation();
|
||||
JKVR_getTrackedRemotesOrientation();
|
||||
|
||||
JKVR_processHaptics();
|
||||
|
||||
//Draw twice for Quest
|
||||
SCR_DrawScreenField( STEREO_LEFT );
|
||||
|
||||
//This won't perform the submit eye buffers
|
||||
{
|
||||
if (com_speeds->integer) {
|
||||
re.EndFrame(&time_frontend, &time_backend);
|
||||
} else {
|
||||
re.EndFrame(NULL, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
JKVR_finishEyeBuffer(0);
|
||||
|
||||
SCR_DrawScreenField( STEREO_RIGHT );
|
||||
|
||||
//This will perform the submit eye buffers
|
||||
if ( com_speeds->integer ) {
|
||||
re.EndFrame( &time_frontend, &time_backend );
|
||||
} else {
|
||||
re.EndFrame( NULL, NULL );
|
||||
}
|
||||
|
||||
JKVR_finishEyeBuffer(1);
|
||||
|
||||
//And we're done
|
||||
re.SubmitStereoFrame();
|
||||
|
||||
recursive = 0;
|
||||
}
|
||||
|
||||
recursive = 0;
|
||||
|
|
|
@ -127,6 +127,9 @@ typedef struct {
|
|||
qboolean *(*gbAlreadyDoingLoad) ( void );
|
||||
int (*com_frameTime) ( void );
|
||||
|
||||
//JKVR Functions
|
||||
void (*JKVR_prepareEyeBuffer) (int eye );
|
||||
|
||||
} refimport_t;
|
||||
|
||||
extern refimport_t ri;
|
||||
|
@ -202,6 +205,8 @@ typedef struct {
|
|||
// if the pointers are not NULL, timing info will be returned
|
||||
void (*EndFrame)( int *frontEndMsec, int *backEndMsec );
|
||||
|
||||
void ( *SubmitStereoFrame )( );
|
||||
|
||||
qboolean (*ProcessDissolve)(void);
|
||||
qboolean (*InitDissolve)(qboolean bForceCircularExtroWipe);
|
||||
|
||||
|
|
|
@ -1403,6 +1403,7 @@ const void *RB_DrawSurfs( const void *data ) {
|
|||
return (const void *)(cmd + 1);
|
||||
}
|
||||
|
||||
void JKVR_prepareEyeBuffer(int eye );
|
||||
|
||||
/*
|
||||
=============
|
||||
|
@ -1414,66 +1415,20 @@ const void *RB_DrawBuffer( const void *data ) {
|
|||
const drawBufferCommand_t *cmd;
|
||||
|
||||
cmd = (const drawBufferCommand_t *)data;
|
||||
|
||||
/*
|
||||
#ifndef HAVE_GLES
|
||||
qglDrawBuffer( cmd->buffer );
|
||||
#endif
|
||||
*/
|
||||
ri.JKVR_prepareEyeBuffer(cmd->buffer);
|
||||
|
||||
// clear screen for debugging
|
||||
if (!( backEnd.refdef.rdflags & RDF_NOWORLDMODEL ) && tr.world && tr.refdef.rdflags & RDF_doLAGoggles)
|
||||
{
|
||||
const jk_fog_t *fog = &tr.world->fogs[tr.world->numfogs];
|
||||
|
||||
qglClearColor(fog->parms.color[0], fog->parms.color[1], fog->parms.color[2], 1.0f );
|
||||
qglClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
}
|
||||
else if (!( backEnd.refdef.rdflags & RDF_NOWORLDMODEL ) && tr.world && tr.world->globalFog != -1 && tr.sceneCount)//don't clear during menus, wait for real scene
|
||||
{
|
||||
const jk_fog_t *fog = &tr.world->fogs[tr.world->globalFog];
|
||||
|
||||
qglClearColor(fog->parms.color[0], fog->parms.color[1], fog->parms.color[2], 1.0f );
|
||||
qglClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
|
||||
}
|
||||
else if ( r_clear->integer )
|
||||
{ // clear screen for debugging
|
||||
int i = r_clear->integer;
|
||||
if (i == 42) {
|
||||
i = Q_irand(0,8);
|
||||
}
|
||||
switch (i)
|
||||
{
|
||||
default:
|
||||
qglClearColor( 1, 0, 0.5, 1 );
|
||||
break;
|
||||
case 1:
|
||||
qglClearColor( 1.0, 0.0, 0.0, 1.0); //red
|
||||
break;
|
||||
case 2:
|
||||
qglClearColor( 0.0, 1.0, 0.0, 1.0); //green
|
||||
break;
|
||||
case 3:
|
||||
qglClearColor( 1.0, 1.0, 0.0, 1.0); //yellow
|
||||
break;
|
||||
case 4:
|
||||
qglClearColor( 0.0, 0.0, 1.0, 1.0); //blue
|
||||
break;
|
||||
case 5:
|
||||
qglClearColor( 0.0, 1.0, 1.0, 1.0); //cyan
|
||||
break;
|
||||
case 6:
|
||||
qglClearColor( 1.0, 0.0, 1.0, 1.0); //magenta
|
||||
break;
|
||||
case 7:
|
||||
qglClearColor( 1.0, 1.0, 1.0, 1.0); //white
|
||||
break;
|
||||
case 8:
|
||||
qglClearColor( 0.0, 0.0, 0.0, 1.0); //black
|
||||
break;
|
||||
}
|
||||
// clear screen for debugging
|
||||
if ( r_clear->integer ) {
|
||||
qglClearColor( 0, 0, 0, 1 );
|
||||
qglClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
|
||||
}
|
||||
|
||||
return (const void *)(cmd + 1);
|
||||
return (const void *)( cmd + 1 );
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1571,6 +1526,32 @@ void RB_ShowImages( void ) {
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
=============
|
||||
RB_Flush
|
||||
|
||||
=============
|
||||
*/
|
||||
const void *RB_Flush( const void *data ) {
|
||||
const swapBuffersCommand_t *cmd;
|
||||
|
||||
// finish any 2D drawing if needed
|
||||
if ( tess.numIndexes ) {
|
||||
RB_EndSurface();
|
||||
}
|
||||
|
||||
// texture swapping test
|
||||
if ( r_showImages->integer ) {
|
||||
RB_ShowImages();
|
||||
}
|
||||
|
||||
cmd = (const swapBuffersCommand_t *)data;
|
||||
|
||||
backEnd.projection2D = qfalse;
|
||||
|
||||
return (const void *)( cmd + 1 );
|
||||
}
|
||||
|
||||
/*
|
||||
=============
|
||||
RB_SwapBuffers
|
||||
|
@ -1688,6 +1669,9 @@ void RB_ExecuteRenderCommands( const void *data ) {
|
|||
case RC_WORLD_EFFECTS:
|
||||
data = RB_WorldEffects( data );
|
||||
break;
|
||||
case RC_FLUSH:
|
||||
data = RB_Flush( data );
|
||||
break;
|
||||
case RC_END_OF_LIST:
|
||||
default:
|
||||
// stop rendering
|
||||
|
|
|
@ -383,6 +383,7 @@ void RE_BeginFrame( stereoFrame_t stereoFrame ) {
|
|||
//
|
||||
// do overdraw measurement
|
||||
//
|
||||
#ifndef HAVE_GLES
|
||||
if ( r_measureOverdraw->integer )
|
||||
{
|
||||
if ( glConfig.stencilBits < 4 )
|
||||
|
@ -417,6 +418,7 @@ void RE_BeginFrame( stereoFrame_t stereoFrame ) {
|
|||
r_measureOverdraw->modified = qfalse;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
//
|
||||
// texturemode stuff
|
||||
|
@ -457,23 +459,13 @@ void RE_BeginFrame( stereoFrame_t stereoFrame ) {
|
|||
}
|
||||
cmd->commandId = RC_DRAW_BUFFER;
|
||||
|
||||
if ( glConfig.stereoEnabled ) {
|
||||
{
|
||||
if ( stereoFrame == STEREO_LEFT ) {
|
||||
cmd->buffer = (int)0;
|
||||
} else if ( stereoFrame == STEREO_RIGHT ) {
|
||||
cmd->buffer = (int)1;
|
||||
} else {
|
||||
Com_Error( ERR_FATAL, "RE_BeginFrame: Stereo is enabled, but stereoFrame was %i", stereoFrame );
|
||||
}
|
||||
} else {
|
||||
if ( stereoFrame != STEREO_CENTER ) {
|
||||
Com_Error( ERR_FATAL, "RE_BeginFrame: Stereo is disabled, but stereoFrame was %i", stereoFrame );
|
||||
}
|
||||
// if ( !Q_stricmp( r_drawBuffer->string, "GL_FRONT" ) ) {
|
||||
// cmd->buffer = (int)GL_FRONT;
|
||||
// } else
|
||||
{
|
||||
cmd->buffer = (int)GL_BACK;
|
||||
ri.Error( ERR_FATAL, "RE_BeginFrame: Stereo is enabled, but stereoFrame was %i", stereoFrame );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -487,26 +479,26 @@ Returns the number of msec spent in the back end
|
|||
=============
|
||||
*/
|
||||
void RE_EndFrame( int *frontEndMsec, int *backEndMsec ) {
|
||||
swapBuffersCommand_t *cmd;
|
||||
swapBuffersCommand_t *cmd;
|
||||
|
||||
if ( !tr.registered ) {
|
||||
return;
|
||||
}
|
||||
cmd = (swapBuffersCommand_t *) R_GetCommandBufferReserved( sizeof( *cmd ), 0 );
|
||||
if ( !cmd ) {
|
||||
|
||||
cmd = (swapBuffersCommand_t*)R_GetCommandBuffer(sizeof(*cmd));
|
||||
if (!cmd) {
|
||||
return;
|
||||
}
|
||||
cmd->commandId = RC_SWAP_BUFFERS;
|
||||
|
||||
R_IssueRenderCommands( qtrue );
|
||||
cmd->commandId = RC_FLUSH;
|
||||
|
||||
R_InitNextFrame();
|
||||
R_IssueRenderCommands( qfalse );
|
||||
|
||||
if ( frontEndMsec ) {
|
||||
if (frontEndMsec) {
|
||||
*frontEndMsec = tr.frontEndMsec;
|
||||
}
|
||||
tr.frontEndMsec = 0;
|
||||
if ( backEndMsec ) {
|
||||
if (backEndMsec) {
|
||||
*backEndMsec = backEnd.pc.msec;
|
||||
}
|
||||
backEnd.pc.msec = 0;
|
||||
|
@ -516,3 +508,20 @@ void RE_EndFrame( int *frontEndMsec, int *backEndMsec ) {
|
|||
styleUpdated[i] = false;
|
||||
}
|
||||
}
|
||||
|
||||
void RE_SubmitStereoFrame( ) {
|
||||
swapBuffersCommand_t *cmd;
|
||||
|
||||
if ( !tr.registered ) {
|
||||
return;
|
||||
}
|
||||
|
||||
cmd = (swapBuffersCommand_t*)R_GetCommandBuffer(sizeof(*cmd));
|
||||
if (!cmd) {
|
||||
return;
|
||||
}
|
||||
|
||||
cmd->commandId = RC_SWAP_BUFFERS;
|
||||
|
||||
R_IssueRenderCommands( qtrue );
|
||||
}
|
||||
|
|
|
@ -324,6 +324,10 @@ void R_Splash()
|
|||
|
||||
static void GLW_InitTextureCompression( void )
|
||||
{
|
||||
glConfig.textureCompression = TC_NONE;
|
||||
return;
|
||||
|
||||
|
||||
bool newer_tc, old_tc;
|
||||
// Check for available tc methods.
|
||||
newer_tc = ri.GL_ExtensionSupported("GL_ARB_texture_compression") && ri.GL_ExtensionSupported("GL_EXT_texture_compression_s3tc");
|
||||
|
@ -1564,7 +1568,7 @@ void R_Register( void )
|
|||
//
|
||||
|
||||
r_allowExtensions = ri.Cvar_Get( "r_allowExtensions", "1", CVAR_ARCHIVE_ND | CVAR_LATCH );
|
||||
r_ext_compressed_textures = ri.Cvar_Get( "r_ext_compress_textures", "1", CVAR_ARCHIVE_ND | CVAR_LATCH );
|
||||
r_ext_compressed_textures = ri.Cvar_Get( "r_ext_compress_textures", "0", CVAR_ARCHIVE_ND | CVAR_LATCH );
|
||||
r_ext_compressed_lightmaps = ri.Cvar_Get( "r_ext_compress_lightmaps", "0", CVAR_ARCHIVE_ND | CVAR_LATCH );
|
||||
r_ext_preferred_tc_method = ri.Cvar_Get( "r_ext_preferred_tc_method", "0", CVAR_ARCHIVE_ND | CVAR_LATCH );
|
||||
r_ext_gamma_control = ri.Cvar_Get( "r_ext_gamma_control", "1", CVAR_ARCHIVE_ND | CVAR_LATCH );
|
||||
|
@ -2087,6 +2091,7 @@ extern "C" Q_EXPORT refexport_t* QDECL GetRefAPI ( int apiVersion, refimport_t *
|
|||
|
||||
REX(BeginFrame);
|
||||
REX(EndFrame);
|
||||
REX(SubmitStereoFrame);
|
||||
|
||||
REX(ProcessDissolve);
|
||||
REX(InitDissolve);
|
||||
|
|
|
@ -1784,6 +1784,7 @@ typedef enum {
|
|||
RC_DRAW_BUFFER,
|
||||
RC_SWAP_BUFFERS,
|
||||
RC_WORLD_EFFECTS,
|
||||
RC_FLUSH
|
||||
} renderCommand_t;
|
||||
|
||||
|
||||
|
@ -1824,6 +1825,7 @@ void RE_LAGoggles( void );
|
|||
void RE_Scissor ( float x, float y, float w, float h);
|
||||
void RE_BeginFrame( stereoFrame_t stereoFrame );
|
||||
void RE_EndFrame( int *frontEndMsec, int *backEndMsec );
|
||||
void RE_SubmitStereoFrame( );
|
||||
qboolean RE_ProcessDissolve(void);
|
||||
qboolean RE_InitDissolve(qboolean bForceCircularExtroWipe);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue