mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 02:15:43 -04:00
Merge branch 'release/1.10.x'
This commit is contained in:
commit
ca577c8b35
@ -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.
|
||||||
*/
|
*/
|
||||||
|
@ -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,
|
||||||
|
@ -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
|
||||||
|
@ -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,
|
||||||
|
@ -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,
|
||||||
|
@ -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;
|
||||||
|
@ -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() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user