Fix id[Simple]Window for x86_64

This commit is contained in:
dhewg 2011-12-01 14:42:22 +01:00
parent eb2faa05f2
commit 1d9fd6948a
4 changed files with 24 additions and 24 deletions

View file

@ -254,8 +254,8 @@ void idSimpleWindow::Redraw(float x, float y) {
textRect.Offset(-x, -y);
}
int idSimpleWindow::GetWinVarOffset( idWinVar *wv, drawWin_t* owner) {
int ret = -1;
intptr_t idSimpleWindow::GetWinVarOffset( idWinVar *wv, drawWin_t* owner) {
intptr_t ret = -1;
if ( wv == &rect ) {
ret = (ptrdiff_t)&this->rect - (ptrdiff_t)this;

View file

@ -49,7 +49,7 @@ public:
idStr name;
idWinVar * GetWinVarByName(const char *_name);
int GetWinVarOffset( idWinVar *wv, drawWin_t* owner);
intptr_t GetWinVarOffset( idWinVar *wv, drawWin_t* owner);
size_t Size();
idWindow* GetParent ( void ) { return mParent; }

View file

@ -1714,8 +1714,8 @@ void idWindow::PostParse() {
idWindow::GetWinVarOffset
================
*/
int idWindow::GetWinVarOffset( idWinVar *wv, drawWin_t* owner) {
int ret = -1;
intptr_t idWindow::GetWinVarOffset( idWinVar *wv, drawWin_t* owner) {
intptr_t ret = -1;
if ( wv == &rect ) {
ret = (ptrdiff_t)&this->rect - (ptrdiff_t)this;
@ -2763,7 +2763,7 @@ idWindow::EmitOp
================
*/
int idWindow::EmitOp( int a, int b, wexpOpType_t opType, wexpOp_t **opp ) {
intptr_t idWindow::EmitOp( intptr_t a, intptr_t b, wexpOpType_t opType, wexpOp_t **opp ) {
wexpOp_t *op;
/*
// optimize away identity operations
@ -2814,8 +2814,8 @@ int idWindow::EmitOp( int a, int b, wexpOpType_t opType, wexpOp_t **opp ) {
idWindow::ParseEmitOp
================
*/
int idWindow::ParseEmitOp( idParser *src, int a, wexpOpType_t opType, int priority, wexpOp_t **opp ) {
int b = ParseExpressionPriority( src, priority );
intptr_t idWindow::ParseEmitOp( idParser *src, intptr_t a, wexpOpType_t opType, int priority, wexpOp_t **opp ) {
intptr_t b = ParseExpressionPriority( src, priority );
return EmitOp( a, b, opType, opp );
}
@ -2827,9 +2827,9 @@ idWindow::ParseTerm
Returns a register index
=================
*/
int idWindow::ParseTerm( idParser *src, idWinVar *var, int component ) {
intptr_t idWindow::ParseTerm( idParser *src, idWinVar *var, intptr_t component ) {
idToken token;
int a, b;
intptr_t a, b;
src->ReadToken( &token );
@ -2872,7 +2872,7 @@ int idWindow::ParseTerm( idParser *src, idWinVar *var, int component ) {
var = GetWinVarByName(token, true);
}
if (var) {
a = (int)var;
a = (intptr_t)var;
//assert(dynamic_cast<idWinVec4*>(var));
var->Init(token, this);
b = component;
@ -2902,7 +2902,7 @@ int idWindow::ParseTerm( idParser *src, idWinVar *var, int component ) {
// ugly but used for post parsing to fixup named vars
char *p = new char[token.Length()+1];
strcpy(p, token);
a = (int)p;
a = (intptr_t)p;
b = -2;
return EmitOp(a, b, WOP_TYPE_VAR);
}
@ -2917,9 +2917,9 @@ Returns a register index
=================
*/
#define TOP_PRIORITY 4
int idWindow::ParseExpressionPriority( idParser *src, int priority, idWinVar *var, int component ) {
intptr_t idWindow::ParseExpressionPriority( idParser *src, int priority, idWinVar *var, intptr_t component ) {
idToken token;
int a;
intptr_t a;
if ( priority == 0 ) {
return ParseTerm( src, var, component );
@ -2974,7 +2974,7 @@ int idWindow::ParseExpressionPriority( idParser *src, int priority, idWinVar *va
}
if ( priority == 4 && token == "?" ) {
wexpOp_t *oop = NULL;
int o = ParseEmitOp( src, a, WOP_TYPE_COND, priority, &oop );
intptr_t o = ParseEmitOp( src, a, WOP_TYPE_COND, priority, &oop );
if ( !src->ReadToken( &token ) ) {
return o;
}
@ -3000,7 +3000,7 @@ idWindow::ParseExpression
Returns a register index
================
*/
int idWindow::ParseExpression(idParser *src, idWinVar *var, int component) {
intptr_t idWindow::ParseExpression(idParser *src, idWinVar *var, intptr_t component) {
return ParseExpressionPriority( src, TOP_PRIORITY, var );
}
@ -3864,7 +3864,7 @@ void idWindow::FixupParms() {
const char *p = (const char*)(ops[i].a);
idWinVar *var = GetWinVarByName(p, true);
delete []p;
ops[i].a = (int)var;
ops[i].a = (intptr_t)var;
ops[i].b = -1;
}
}

View file

@ -106,7 +106,7 @@ typedef enum {
typedef struct {
wexpOpType_t opType;
int a, b, c, d;
intptr_t a, b, c, d;
} wexpOp_t;
struct idRegEntry {
@ -230,7 +230,7 @@ public:
virtual idWinVar *GetWinVarByName (const char *_name, bool winLookup = false, drawWin_t** owner = NULL);
int GetWinVarOffset( idWinVar *wv, drawWin_t *dw );
intptr_t GetWinVarOffset( idWinVar *wv, drawWin_t *dw );
float GetMaxCharHeight();
float GetMaxCharWidth();
void SetFont();
@ -300,7 +300,7 @@ public:
bool RunScript(int n);
bool RunScriptList(idGuiScriptList *src);
void SetRegs(const char *key, const char *val);
int ParseExpression( idParser *src, idWinVar *var = NULL, int component = 0 );
intptr_t ParseExpression( idParser *src, idWinVar *var = NULL, intptr_t component = 0 );
int ExpressionConstant(float f);
idRegisterList *RegList() { return &regList; }
void AddCommand(const char *cmd);
@ -350,10 +350,10 @@ protected:
int ExpressionTemporary();
wexpOp_t *ExpressionOp();
int EmitOp( int a, int b, wexpOpType_t opType, wexpOp_t **opp = NULL );
int ParseEmitOp( idParser *src, int a, wexpOpType_t opType, int priority, wexpOp_t **opp = NULL );
int ParseTerm( idParser *src, idWinVar *var = NULL, int component = 0 );
int ParseExpressionPriority( idParser *src, int priority, idWinVar *var = NULL, int component = 0 );
intptr_t EmitOp( intptr_t a, intptr_t b, wexpOpType_t opType, wexpOp_t **opp = NULL );
intptr_t ParseEmitOp( idParser *src, intptr_t a, wexpOpType_t opType, int priority, wexpOp_t **opp = NULL );
intptr_t ParseTerm( idParser *src, idWinVar *var = NULL, intptr_t component = 0 );
intptr_t ParseExpressionPriority( idParser *src, int priority, idWinVar *var = NULL, intptr_t component = 0 );
void EvaluateRegisters(float *registers);
void SaveExpressionParseState();
void RestoreExpressionParseState();