Code: Select all
/*
===============
TexMgr_Imagedump_f -- dump all current textures to TGA files
===============
*/
void TexMgr_Imagedump_f (void)
{
.
.
.
buffer = malloc(glt->width*glt->height*4);
glGetTexImage(GL_TEXTURE_2D, 0, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
Image_WriteTGA (tganame, buffer, glt->width, glt->height, 32, true);
.
.
.
Con_Printf ("dumped %i textures to %s\n", numgltextures, dirname);
}
Accessing the clipboard is easy enough ...
Code: Select all
char *Sys_GetClipboardData (void)
{
HANDLE th;
char *clipText, *s, *t;
static char clipboard[SYS_CLIPBOARD_SIZE];
if (!OpenClipboard(NULL))
return NULL;
if (!(th = GetClipboardData(CF_TEXT)))
{
CloseClipboard ();
return NULL;
}
if (!(clipText = GlobalLock(th)))
{
CloseClipboard ();
return NULL;
}
s = clipText;
t = clipboard;
/*
\e Write an <escape> character.
\a Write a <bell> character.
\b Write a <backspace> character.
\f Write a <form-feed> character.
\n Write a <new-line> character.
\r Write a <carriage return> character.
\t Write a <tab> character.
\v Write a <vertical tab> character.
\' Write a <single quote> character.
\\ Write a backslash character.
*/
// Filter out newlines, carriage return and backspace characters
while (*s && t - clipboard < SYS_CLIPBOARD_SIZE - 1 && *s != '\n' && *s != '\r' && *s != '\b')
*t++ = *s++;
*t = 0;
GlobalUnlock (th);
CloseClipboard ();
return clipboard;
}
// copies given text to clipboard
void Sys_CopyToClipboard(const char *text)
{
char *clipText;
HGLOBAL hglbCopy;
if (!OpenClipboard(NULL))
return;
if (!EmptyClipboard())
{
CloseClipboard();
return;
}
if (!(hglbCopy = GlobalAlloc(GMEM_DDESHARE, strlen(text) + 1)))
{
CloseClipboard();
return;
}
if (!(clipText = GlobalLock(hglbCopy)))
{
CloseClipboard();
return;
}
strcpy((char *) clipText, text);
GlobalUnlock(hglbCopy);
SetClipboardData(CF_TEXT, hglbCopy);
CloseClipboard();
}