* fixed problem with new modes system (reported by Vladimir Ravodin) (merged)

This commit is contained in:
Jonas Maebe 2001-04-14 16:06:03 +00:00
parent e0e6efbd3f
commit bd745d3e82
2 changed files with 31 additions and 9 deletions

View File

@ -2303,7 +2303,12 @@ end;
{ _GraphResult is now already set to grOK by DetectGraph }
IntCurrentDriver := GraphDriver;
IntCurrentNewDriver := GraphDriver;
if (graphDriver >= lowNewDriver) and
(graphDriver <= highNewDriver) then
IntCurrentNewDriver := GraphDriver
else IntCurrentNewDriver := -1;
{ Actually set the graph mode...}
if firstCallOfInitgraph then
begin
@ -2324,7 +2329,12 @@ end;
begin
_GraphResult := grOK;
IntCurrentDriver := GraphDriver;
IntCurrentNewDriver := GraphDriver;
if (graphDriver >= lowNewDriver) and
(graphDriver <= highNewDriver) then
IntCurrentNewDriver := GraphDriver
else IntCurrentNewDriver := -1;
if firstCallOfInitgraph then
begin
SaveVideoState;
@ -2441,7 +2451,10 @@ begin
end;
{
$Log$
Revision 1.5 2000-12-07 17:19:47 jonas
Revision 1.6 2001-04-14 16:06:03 jonas
* fixed problem with new modes system (reported by Vladimir Ravodin) (merged)
Revision 1.5 2000/12/07 17:19:47 jonas
* new constant handling: from now on, hex constants >$7fffffff are
parsed as unsigned constants (otherwise, $80000000 got sign extended
and became $ffffffff80000000), all constants in the longint range

View File

@ -406,6 +406,7 @@ end;
procedure SetGraphMode(mode: smallint);
var
modeinfo: PModeInfo;
usedDriver: Integer;
begin
{ check if the mode exists... }
{ Depending on the modenumber, we search using the old or new }
@ -417,12 +418,19 @@ end;
detectMode:
begin
mode := -32767;
usedDriver := IntcurrentNewDriver;
modeInfo := searchmode(IntcurrentNewDriver,mode);
end;
lowNewMode..highNewMode:
modeInfo := searchmode(IntcurrentNewDriver,mode);
begin
usedDriver := IntcurrentNewDriver;
modeInfo := searchmode(IntcurrentNewDriver,mode);
end;
else
modeinfo := searchmode(IntcurrentDriver,mode);
begin
usedDriver := IntcurrentDriver;
modeinfo := searchmode(IntcurrentDriver,mode);
end;
end;
if not assigned(modeinfo) then
begin
@ -434,8 +442,6 @@ end;
end;
{ reset all hooks...}
DefaultHooks;
{ arccall not reset - tested against VGA BGI driver }
{ Setup all hooks if none, keep old defaults...}
{ required hooks - returns error if no hooks to these }
{ routines. }
@ -531,7 +537,7 @@ end;
OutTextXY:=modeInfo^.OutTextXY;
IntCurrentMode := modeinfo^.ModeNumber;
IntCurrentDriver := modeinfo^.DriverNumber;
IntCurrentDriver := usedDriver;
{$ifdef logging}
logln('Entering mode '+strf(intCurrentMode)+' of driver '+strf(intCurrentDriver));
{$endif logging}
@ -592,7 +598,10 @@ end;
{
$Log$
Revision 1.5 2001-04-13 23:49:48 peter
Revision 1.6 2001-04-14 16:06:03 jonas
* fixed problem with new modes system (reported by Vladimir Ravodin) (merged)
Revision 1.5 2001/04/13 23:49:48 peter
* fixes for the stricter compiler
Revision 1.4 2000/08/12 12:27:14 jonas