| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- //====== Copyright � 1996-2008, Valve Corporation, All rights reserved. =======
- //
- // Purpose: public interface to user remote file storage in Steam
- //
- //=============================================================================
- #ifndef ISTEAMSCREENSHOTS_H
- #define ISTEAMSCREENSHOTS_H
- #ifdef _WIN32
- #pragma once
- #endif
- #include "isteamclient.h"
- const uint32 k_nScreenshotMaxTaggedUsers = 32;
- const uint32 k_nScreenshotMaxTaggedPublishedFiles = 32;
- const int k_cubUFSTagTypeMax = 255;
- const int k_cubUFSTagValueMax = 255;
- // Required with of a thumbnail provided to AddScreenshotToLibrary. If you do not provide a thumbnail
- // one will be generated.
- const int k_ScreenshotThumbWidth = 200;
- // Handle is valid for the lifetime of your process and no longer
- typedef uint32 ScreenshotHandle;
- #define INVALID_SCREENSHOT_HANDLE 0
- enum EVRScreenshotType
- {
- k_EVRScreenshotType_None = 0,
- k_EVRScreenshotType_Mono = 1,
- k_EVRScreenshotType_Stereo = 2,
- k_EVRScreenshotType_MonoCubemap = 3,
- k_EVRScreenshotType_MonoPanorama = 4,
- k_EVRScreenshotType_StereoPanorama = 5
- };
- //-----------------------------------------------------------------------------
- // Purpose: Functions for adding screenshots to the user's screenshot library
- //-----------------------------------------------------------------------------
- class ISteamScreenshots
- {
- 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;
- // Returns true if the app has hooked the screenshot
- virtual bool IsScreenshotsHooked() = 0;
- // Adds a VR screenshot to the user's screenshot library from disk in the supported type.
- // pchFilename should be the normal 2D image used in the library view
- // pchVRFilename should contain the image that matches the correct type
- // 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 AddVRScreenshotToLibrary( EVRScreenshotType eType, const char *pchFilename, const char *pchVRFilename ) = 0;
- };
- #define STEAMSCREENSHOTS_INTERFACE_VERSION "STEAMSCREENSHOTS_INTERFACE_VERSION003"
- // callbacks
- #if defined( VALVE_CALLBACK_PACK_SMALL )
- #pragma pack( push, 4 )
- #elif defined( VALVE_CALLBACK_PACK_LARGE )
- #pragma pack( push, 8 )
- #else
- #error isteamclient.h must be included
- #endif
- //-----------------------------------------------------------------------------
- // Purpose: Screenshot successfully written or otherwise added to the library
- // and can now be tagged
- //-----------------------------------------------------------------------------
- struct ScreenshotReady_t
- {
- enum { k_iCallback = k_iSteamScreenshotsCallbacks + 1 };
- ScreenshotHandle m_hLocal;
- EResult m_eResult;
- };
- //-----------------------------------------------------------------------------
- // Purpose: Screenshot has been requested by the user. Only sent if
- // HookScreenshots() has been called, in which case Steam will not take
- // the screenshot itself.
- //-----------------------------------------------------------------------------
- struct ScreenshotRequested_t
- {
- enum { k_iCallback = k_iSteamScreenshotsCallbacks + 2 };
- };
- #pragma pack( pop )
- #endif // ISTEAMSCREENSHOTS_H
|