mirror of
https://github.com/Detanup01/gbe_fork.git
synced 2024-11-23 11:15:34 +08:00
steam screenshot
This commit is contained in:
parent
a01c35187d
commit
c477a031ac
@ -26,6 +26,8 @@ struct screenshot_infos_t {
|
|||||||
};
|
};
|
||||||
|
|
||||||
class Steam_Screenshots :
|
class Steam_Screenshots :
|
||||||
|
public ISteamScreenshots001,
|
||||||
|
public ISteamScreenshots002,
|
||||||
public ISteamScreenshots
|
public ISteamScreenshots
|
||||||
{
|
{
|
||||||
class Local_Storage *local_storage{};
|
class Local_Storage *local_storage{};
|
||||||
|
@ -609,9 +609,11 @@ ISteamScreenshots *Steam_Client::GetISteamScreenshots( HSteamUser hSteamuser, HS
|
|||||||
PRINT_DEBUG("%s", pchVersion);
|
PRINT_DEBUG("%s", pchVersion);
|
||||||
if (!steam_pipes.count(hSteamPipe) || !hSteamuser) return NULL;
|
if (!steam_pipes.count(hSteamPipe) || !hSteamuser) return NULL;
|
||||||
|
|
||||||
// Here we always use the STEAMSCREENSHOTS_INTERFACE_VERSION003 since 01-02 has small difference
|
if (strcmp(pchVersion, "STEAMSCREENSHOTS_INTERFACE_VERSION001") == 0) {
|
||||||
|
return reinterpret_cast<ISteamScreenshots *>(static_cast<ISteamScreenshots001 *>(steam_screenshots));
|
||||||
if (strcmp(pchVersion, STEAMSCREENSHOTS_INTERFACE_VERSION) == 0) {
|
} else if (strcmp(pchVersion, "STEAMSCREENSHOTS_INTERFACE_VERSION002") == 0) {
|
||||||
|
return reinterpret_cast<ISteamScreenshots *>(static_cast<ISteamScreenshots002 *>(steam_screenshots));
|
||||||
|
} else if (strcmp(pchVersion, STEAMSCREENSHOTS_INTERFACE_VERSION) == 0) {
|
||||||
return reinterpret_cast<ISteamScreenshots *>(static_cast<ISteamScreenshots *>(steam_screenshots));
|
return reinterpret_cast<ISteamScreenshots *>(static_cast<ISteamScreenshots *>(steam_screenshots));
|
||||||
} else {
|
} else {
|
||||||
return reinterpret_cast<ISteamScreenshots *>(static_cast<ISteamScreenshots *>(steam_screenshots));
|
return reinterpret_cast<ISteamScreenshots *>(static_cast<ISteamScreenshots *>(steam_screenshots));
|
||||||
|
42
sdk/steam/isteamscreenshot001.h
Normal file
42
sdk/steam/isteamscreenshot001.h
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
//====== Copyright © 1996-2008, Valve Corporation, All rights reserved. =======
|
||||||
|
//
|
||||||
|
// Purpose: public interface to user remote file storage in Steam
|
||||||
|
//
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
#ifndef ISTEAMSCREENSHOTS001_H
|
||||||
|
#define ISTEAMSCREENSHOTS001_H
|
||||||
|
#ifdef _WIN32
|
||||||
|
#pragma once
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// Purpose: Functions for adding screenshots to the user's screenshot library
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
class ISteamScreenshots001
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// Writes a screenshot to the user's screenshot library given the raw image data, which must be in RGB format.
|
||||||
|
// The return value is a handle that is valid for the duration of the game process and can be used to apply tags.
|
||||||
|
virtual ScreenshotHandle WriteScreenshot( void *pubRGB, uint32 cubRGB, int nWidth, int nHeight ) = 0;
|
||||||
|
|
||||||
|
// Adds a screenshot to the user's screenshot library from disk. If a thumbnail is provided, it must be 200 pixels wide and the same aspect ratio
|
||||||
|
// as the screenshot, otherwise a thumbnail will be generated if the user uploads the screenshot. The screenshots must be in either JPEG or TGA format.
|
||||||
|
// The return value is a handle that is valid for the duration of the game process and can be used to apply tags.
|
||||||
|
virtual ScreenshotHandle AddScreenshotToLibrary( const char *pchJpegOrTGAFilename, const char *pchJpegOrTGAThumbFilename, int nWidth, int nHeight ) = 0;
|
||||||
|
|
||||||
|
// Causes the Steam overlay to take a screenshot. If screenshots are being hooked by the game then a ScreenshotRequested_t callback is sent back to the game instead.
|
||||||
|
virtual void TriggerScreenshot() = 0;
|
||||||
|
|
||||||
|
// Toggles whether the overlay handles screenshots when the user presses the screenshot hotkey, or the game handles them. If the game is hooking screenshots,
|
||||||
|
// then the ScreenshotRequested_t callback will be sent if the user presses the hotkey, and the game is expected to call WriteScreenshot or AddScreenshotToLibrary
|
||||||
|
// in response.
|
||||||
|
virtual void HookScreenshots( bool bHook ) = 0;
|
||||||
|
|
||||||
|
// Sets metadata about a screenshot's location (for example, the name of the map)
|
||||||
|
virtual bool SetLocation( ScreenshotHandle hScreenshot, const char *pchLocation ) = 0;
|
||||||
|
|
||||||
|
// Tags a user as being visible in the screenshot
|
||||||
|
virtual bool TagUser( ScreenshotHandle hScreenshot, CSteamID steamID ) = 0;
|
||||||
|
};
|
||||||
|
#endif // ISTEAMSCREENSHOTS001_H
|
46
sdk/steam/isteamscreenshot002.h
Normal file
46
sdk/steam/isteamscreenshot002.h
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
//====== Copyright <20> 1996-2008, Valve Corporation, All rights reserved. =======
|
||||||
|
//
|
||||||
|
// Purpose: public interface to user remote file storage in Steam
|
||||||
|
//
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
#ifndef ISTEAMSCREENSHOTS002_H
|
||||||
|
#define ISTEAMSCREENSHOTS002_H
|
||||||
|
#ifdef _WIN32
|
||||||
|
#pragma once
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// Purpose: Functions for adding screenshots to the user's screenshot library
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
class ISteamScreenshots002
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// Writes a screenshot to the user's screenshot library given the raw image data, which must be in RGB format.
|
||||||
|
// The return value is a handle that is valid for the duration of the game process and can be used to apply tags.
|
||||||
|
virtual ScreenshotHandle WriteScreenshot( void *pubRGB, uint32 cubRGB, int nWidth, int nHeight ) = 0;
|
||||||
|
|
||||||
|
// Adds a screenshot to the user's screenshot library from disk. If a thumbnail is provided, it must be 200 pixels wide and the same aspect ratio
|
||||||
|
// as the screenshot, otherwise a thumbnail will be generated if the user uploads the screenshot. The screenshots must be in either JPEG or TGA format.
|
||||||
|
// The return value is a handle that is valid for the duration of the game process and can be used to apply tags.
|
||||||
|
// JPEG, TGA, and PNG formats are supported.
|
||||||
|
virtual ScreenshotHandle AddScreenshotToLibrary( const char *pchFilename, const char *pchThumbnailFilename, int nWidth, int nHeight ) = 0;
|
||||||
|
|
||||||
|
// Causes the Steam overlay to take a screenshot. If screenshots are being hooked by the game then a ScreenshotRequested_t callback is sent back to the game instead.
|
||||||
|
virtual void TriggerScreenshot() = 0;
|
||||||
|
|
||||||
|
// Toggles whether the overlay handles screenshots when the user presses the screenshot hotkey, or the game handles them. If the game is hooking screenshots,
|
||||||
|
// then the ScreenshotRequested_t callback will be sent if the user presses the hotkey, and the game is expected to call WriteScreenshot or AddScreenshotToLibrary
|
||||||
|
// in response.
|
||||||
|
virtual void HookScreenshots( bool bHook ) = 0;
|
||||||
|
|
||||||
|
// Sets metadata about a screenshot's location (for example, the name of the map)
|
||||||
|
virtual bool SetLocation( ScreenshotHandle hScreenshot, const char *pchLocation ) = 0;
|
||||||
|
|
||||||
|
// Tags a user as being visible in the screenshot
|
||||||
|
virtual bool TagUser( ScreenshotHandle hScreenshot, CSteamID steamID ) = 0;
|
||||||
|
|
||||||
|
// Tags a published file as being visible in the screenshot
|
||||||
|
virtual bool TagPublishedFile( ScreenshotHandle hScreenshot, PublishedFileId_t unPublishedFileID ) = 0;
|
||||||
|
};
|
||||||
|
#endif // ISTEAMSCREENSHOTS002_H
|
Loading…
Reference in New Issue
Block a user