Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
SRB2
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
264
Issues
264
List
Board
Labels
Milestones
Merge Requests
74
Merge Requests
74
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
STJr
SRB2
Commits
fef15be0
Commit
fef15be0
authored
Jun 27, 2020
by
GoldenTails
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Create a slightly more dynamic, optional frame delay system to show off your terrible hardware with
parent
0435acd5
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
26 additions
and
4 deletions
+26
-4
d_netcmd.c
src/d_netcmd.c
+1
-0
m_anigif.c
src/m_anigif.c
+24
-3
m_anigif.h
src/m_anigif.h
+1
-1
No files found.
src/d_netcmd.c
View file @
fef15be0
...
...
@@ -675,6 +675,7 @@ void D_RegisterClientCommands(void)
// GIF variables
CV_RegisterVar
(
&
cv_gif_optimize
);
CV_RegisterVar
(
&
cv_gif_downscale
);
CV_RegisterVar
(
&
cv_gif_dynamicdelay
);
CV_RegisterVar
(
&
cv_gif_localcolortable
);
#ifdef WALLSPLATS
...
...
src/m_anigif.c
View file @
fef15be0
...
...
@@ -18,6 +18,7 @@
#include "z_zone.h"
#include "v_video.h"
#include "i_video.h"
#include "i_system.h" // I_GetTimeMicros
#include "m_misc.h"
#include "st_stuff.h" // st_palette
...
...
@@ -30,11 +31,13 @@
consvar_t
cv_gif_optimize
=
{
"gif_optimize"
,
"On"
,
CV_SAVE
,
CV_OnOff
,
NULL
,
0
,
NULL
,
NULL
,
0
,
0
,
NULL
};
consvar_t
cv_gif_downscale
=
{
"gif_downscale"
,
"On"
,
CV_SAVE
,
CV_OnOff
,
NULL
,
0
,
NULL
,
NULL
,
0
,
0
,
NULL
};
consvar_t
cv_gif_dynamicdelay
=
{
"gif_dynamicdelay"
,
"On"
,
CV_SAVE
,
CV_OnOff
,
NULL
,
0
,
NULL
,
NULL
,
0
,
0
,
NULL
};
consvar_t
cv_gif_localcolortable
=
{
"gif_localcolortable"
,
"On"
,
CV_SAVE
,
CV_OnOff
,
NULL
,
0
,
NULL
,
NULL
,
0
,
0
,
NULL
};
#ifdef HAVE_ANIGIF
static
boolean
gif_optimize
=
false
;
// So nobody can do something dumb
static
boolean
gif_downscale
=
false
;
// like changing cvars mid output
static
boolean
gif_dynamicdelay
=
false
;
// and messing something up
// Palette handling
static
boolean
gif_localcolortable
=
false
;
...
...
@@ -44,6 +47,7 @@ static RGBA_t *gif_framepalette = NULL;
static
FILE
*
gif_out
=
NULL
;
static
INT32
gif_frames
=
0
;
static
UINT32
gif_prevframems
=
0
;
static
UINT8
gif_writeover
=
0
;
...
...
@@ -588,11 +592,25 @@ static void GIF_framewrite(void)
// screen regions are handled in GIF_lzw
{
int
d1
=
(
int
)((
100
.
0
f
/
NEWTICRATE
)
*
(
gif_frames
+
1
));
int
d2
=
(
int
)((
100
.
0
f
/
NEWTICRATE
)
*
(
gif_frames
));
UINT16
delay
=
d1
-
d2
;
UINT16
delay
;
INT32
startline
;
if
(
gif_dynamicdelay
)
{
// golden's attempt at creating a "dynamic delay"
float
delayf
=
ceil
(
100
.
0
f
/
NEWTICRATE
);
delay
=
(
UINT16
)((
I_GetTimeMicros
()
-
gif_prevframems
)
/
10
/
1000
);
if
(
delay
<
(
int
)(
delayf
))
delay
=
(
int
)(
delayf
);
}
else
{
// the original code
int
d1
=
(
int
)((
100
.
0
f
/
NEWTICRATE
)
*
(
gif_frames
+
1
));
int
d2
=
(
int
)((
100
.
0
f
/
NEWTICRATE
)
*
(
gif_frames
));
delay
=
d1
-
d2
;
}
WRITEMEM
(
p
,
gifframe_gchead
,
4
);
WRITEUINT16
(
p
,
delay
);
...
...
@@ -670,6 +688,7 @@ static void GIF_framewrite(void)
}
fwrite
(
gifframe_data
,
1
,
(
p
-
gifframe_data
),
gif_out
);
++
gif_frames
;
gif_prevframems
=
I_GetTimeMicros
();
}
...
...
@@ -690,12 +709,14 @@ INT32 GIF_open(const char *filename)
gif_optimize
=
(
!!
cv_gif_optimize
.
value
);
gif_downscale
=
(
!!
cv_gif_downscale
.
value
);
gif_dynamicdelay
=
(
!!
cv_gif_dynamicdelay
.
value
);
gif_localcolortable
=
(
!!
cv_gif_localcolortable
.
value
);
gif_colorprofile
=
(
!!
cv_screenshot_colorprofile
.
value
);
gif_headerpalette
=
GIF_getpalette
(
0
);
GIF_headwrite
();
gif_frames
=
0
;
gif_prevframems
=
I_GetTimeMicros
();
return
1
;
}
...
...
src/m_anigif.h
View file @
fef15be0
...
...
@@ -27,6 +27,6 @@ void GIF_frame(void);
INT32
GIF_close
(
void
);
#endif
extern
consvar_t
cv_gif_optimize
,
cv_gif_downscale
,
cv_gif_localcolortable
;
extern
consvar_t
cv_gif_optimize
,
cv_gif_downscale
,
cv_gif_
dynamicdelay
,
cv_gif_
localcolortable
;
#endif
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment