Merge branch 'release/1.10.x'

This commit is contained in:
rdb 2021-02-15 14:14:10 +01:00
commit ca577c8b35
7 changed files with 46 additions and 26 deletions

View File

@ -192,7 +192,7 @@ GraphicsEngine::
/** /**
* Specifies how future objects created via make_gsg(), make_buffer(), and * Specifies how future objects created via make_gsg(), make_buffer(), and
* make_window() will be threaded. This does not affect any already-created * make_output() will be threaded. This does not affect any already-created
* objects. * objects.
*/ */
void GraphicsEngine:: void GraphicsEngine::
@ -2154,7 +2154,7 @@ do_draw(GraphicsOutput *win, GraphicsStateGuardian *gsg, DisplayRegion *dr, Thre
} }
/** /**
* An internal function called by make_window() and make_buffer() and similar * An internal function called by make_output() and make_buffer() and similar
* functions to add the newly-created GraphicsOutput object to the engine's * functions to add the newly-created GraphicsOutput object to the engine's
* list of windows, and to request that the window be opened. * list of windows, and to request that the window be opened.
*/ */

View File

@ -63,7 +63,7 @@ static CubeFaceDef cube_faces[6] = {
/** /**
* Normally, the GraphicsOutput constructor is not called directly; these are * Normally, the GraphicsOutput constructor is not called directly; these are
* created instead via the GraphicsEngine::make_window() function. * created instead via the GraphicsEngine::make_output() function.
*/ */
GraphicsOutput:: GraphicsOutput::
GraphicsOutput(GraphicsEngine *engine, GraphicsPipe *pipe, GraphicsOutput(GraphicsEngine *engine, GraphicsPipe *pipe,

View File

@ -14,7 +14,7 @@
/** /**
* Returns true if the window has not yet been opened, or has been fully * Returns true if the window has not yet been opened, or has been fully
* closed, false if it is open. The window is not opened immediately after * closed, false if it is open. The window is not opened immediately after
* GraphicsEngine::make_window() is called; nor is it closed immediately after * GraphicsEngine::make_output() is called; nor is it closed immediately after
* GraphicsEngine::remove_window() is called. Either operation may take a * GraphicsEngine::remove_window() is called. Either operation may take a
* frame or two. * frame or two.
*/ */
@ -34,7 +34,7 @@ is_fullscreen() const {
/** /**
* If this flag is false, the window is redrawn only after it has received a * If this flag is false, the window is redrawn only after it has received a
* recent "unexpose" or "draw" event from the underlying windowing systme. If * recent "unexpose" or "draw" event from the underlying windowing system. If
* this flag is true, the window is redrawn every frame regardless. Setting * this flag is true, the window is redrawn every frame regardless. Setting
* this false may prevent the window from redrawing unnecessarily when it is * this false may prevent the window from redrawing unnecessarily when it is
* hidden, and may play nicer with other windows on the desktop, but may * hidden, and may play nicer with other windows on the desktop, but may

View File

@ -27,7 +27,7 @@ TypeHandle GraphicsWindow::_type_handle;
/** /**
* Normally, the GraphicsWindow constructor is not called directly; these are * Normally, the GraphicsWindow constructor is not called directly; these are
* created instead via the GraphicsEngine::make_window() function. * created instead via the GraphicsEngine::make_output() function.
*/ */
GraphicsWindow:: GraphicsWindow::
GraphicsWindow(GraphicsEngine *engine, GraphicsPipe *pipe, GraphicsWindow(GraphicsEngine *engine, GraphicsPipe *pipe,

View File

@ -27,7 +27,7 @@ TypeHandle SubprocessWindow::_type_handle;
/** /**
* Normally, the SubprocessWindow constructor is not called directly; these * Normally, the SubprocessWindow constructor is not called directly; these
* are created instead via the GraphicsEngine::make_window() function. * are created instead via the GraphicsEngine::make_output() function.
*/ */
SubprocessWindow:: SubprocessWindow::
SubprocessWindow(GraphicsEngine *engine, GraphicsPipe *pipe, SubprocessWindow(GraphicsEngine *engine, GraphicsPipe *pipe,

View File

@ -13,9 +13,12 @@
#include "virtualFileHTTP.h" #include "virtualFileHTTP.h"
#include "virtualFileMountHTTP.h" #include "virtualFileMountHTTP.h"
#include "ramfile.h"
#include "stringStream.h" #include "stringStream.h"
#include "zStream.h" #include "zStream.h"
#include <iterator>
#ifdef HAVE_OPENSSL #ifdef HAVE_OPENSSL
using std::istream; using std::istream;

View File

@ -38,25 +38,39 @@ using std::string;
// USE_MD5_FOR_HASHTABLE_INDEX_VALUES // USE_MD5_FOR_HASHTABLE_INDEX_VALUES
/* /*
* Patch File Format IF THIS CHANGES, UPDATE installerApplyPatch.cxx IN THE * Patch File Format
* INSTALLER [ HEADER ] 4 bytes 0xfeebfaac ("magic number") (older patch * IF THIS CHANGES, UPDATE installerApplyPatch.cxx IN THE INSTALLER
* files have a magic number 0xfeebfaab, indicating they are version number *
* 0.) 2 bytes version number (if magic number == 0xfeebfaac) 4 bytes length * [ HEADER ]
* of starting file (if version >= 1) 16 bytes MD5 of starting file (if * 4 bytes 0xfeebfaac ("magic number")
* version >= 1) 4 bytes length of resulting patched file 16 bytes MD5 of * (older patch files have a magic number 0xfeebfaab,
* resultant patched file Note that MD5 hashes are written in the order * indicating they are version number 0.)
* observed by HashVal::read_stream() and HashVal::write_stream(), which is * 2 bytes version number (if magic number == 0xfeebfaac)
* not the normal linear order. (Each group of four bytes is reversed.) * 4 bytes length of starting file (if version >= 1)
* 16 bytes MD5 of starting file (if version >= 1)
* 4 bytes length of resulting patched file
* 16 bytes MD5 of resultant patched file
*
* Note that MD5 hashes are written in the order observed by
* HashVal::read_stream() and HashVal::write_stream(), which is not
* the normal linear order. (Each group of four bytes is reversed.)
*/ */
const int _v0_header_length = 4 + 4 + 16; const int _v0_header_length = 4 + 4 + 16;
const int _v1_header_length = 4 + 2 + 4 + 16 + 4 + 16; const int _v1_header_length = 4 + 2 + 4 + 16 + 4 + 16;
/* /*
* [ ADDCOPY pairs; repeated N times ] 2 bytes AL = ADD length AL bytes * [ ADD/COPY pairs; repeated N times ]
* bytes to add 2 bytes CL = COPY length 4 bytes offset of data to copy from * 2 bytes AL = ADD length
* original file, if CL != 0. If version >= 2, offset is relative to end of * AL bytes bytes to add
* previous copy block; if version < 2, offset is relative to beginning of * 2 bytes CL = COPY length
* file. [ TERMINATOR ] 2 bytes zero-length ADD 2 bytes zero-length COPY * 4 bytes offset of data to copy from original file, if CL != 0.
* If version >= 2, offset is relative to end of previous
* copy block; if version < 2, offset is relative to
* beginning of file.
*
* [ TERMINATOR ]
* 2 bytes zero-length ADD
* 2 bytes zero-length COPY
*/ */
// Defines // Defines
@ -249,11 +263,14 @@ read_header(const Filename &patch_file) {
} }
/** /**
* Perform one buffer's worth of patching Returns EU_ok while patching Returns * Perform one buffer's worth of patching.
* EU_success when done If error happens will return one of: EU_error_abort : * Returns one of the following values:
* Patching has not been initiated EU_error_file_invalid : file is corrupted * @li @c EU_ok : while patching
* EU_error_invalid_checksum : incompatible patch file * @li @c EU_success : when done
* EU_error_write_file_rename : could not rename file * @li @c EU_error_abort : Patching has not been initiated
* @li @c EU_error_file_invalid : file is corrupted
* @li @c EU_error_invalid_checksum : incompatible patch file
* @li @c EU_error_write_file_rename : could not rename file
*/ */
int Patchfile:: int Patchfile::
run() { run() {