Sat, 03 Jan 2015 20:18:00 +0100
Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.
michael@0 | 1 | // |
michael@0 | 2 | // Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved. |
michael@0 | 3 | // Use of this source code is governed by a BSD-style license that can be |
michael@0 | 4 | // found in the LICENSE file. |
michael@0 | 5 | // |
michael@0 | 6 | |
michael@0 | 7 | // VertexBuffer9.h: Defines the D3D9 VertexBuffer implementation. |
michael@0 | 8 | |
michael@0 | 9 | #ifndef LIBGLESV2_RENDERER_VERTEXBUFFER9_H_ |
michael@0 | 10 | #define LIBGLESV2_RENDERER_VERTEXBUFFER9_H_ |
michael@0 | 11 | |
michael@0 | 12 | #include "libGLESv2/renderer/VertexBuffer.h" |
michael@0 | 13 | |
michael@0 | 14 | namespace rx |
michael@0 | 15 | { |
michael@0 | 16 | class Renderer9; |
michael@0 | 17 | |
michael@0 | 18 | class VertexBuffer9 : public VertexBuffer |
michael@0 | 19 | { |
michael@0 | 20 | public: |
michael@0 | 21 | explicit VertexBuffer9(rx::Renderer9 *const renderer); |
michael@0 | 22 | virtual ~VertexBuffer9(); |
michael@0 | 23 | |
michael@0 | 24 | virtual bool initialize(unsigned int size, bool dynamicUsage); |
michael@0 | 25 | |
michael@0 | 26 | static VertexBuffer9 *makeVertexBuffer9(VertexBuffer *vertexBuffer); |
michael@0 | 27 | |
michael@0 | 28 | virtual bool storeVertexAttributes(const gl::VertexAttribute &attrib, GLint start, GLsizei count, GLsizei instances, |
michael@0 | 29 | unsigned int offset); |
michael@0 | 30 | virtual bool storeRawData(const void* data, unsigned int size, unsigned int offset); |
michael@0 | 31 | |
michael@0 | 32 | virtual bool getSpaceRequired(const gl::VertexAttribute &attrib, GLsizei count, GLsizei instances, unsigned int *outSpaceRequired) const; |
michael@0 | 33 | |
michael@0 | 34 | virtual bool requiresConversion(const gl::VertexAttribute &attrib) const; |
michael@0 | 35 | |
michael@0 | 36 | unsigned int getVertexSize(const gl::VertexAttribute &attrib) const; |
michael@0 | 37 | D3DDECLTYPE getDeclType(const gl::VertexAttribute &attrib) const; |
michael@0 | 38 | |
michael@0 | 39 | virtual unsigned int getBufferSize() const; |
michael@0 | 40 | virtual bool setBufferSize(unsigned int size); |
michael@0 | 41 | virtual bool discard(); |
michael@0 | 42 | |
michael@0 | 43 | IDirect3DVertexBuffer9 *getBuffer() const; |
michael@0 | 44 | |
michael@0 | 45 | private: |
michael@0 | 46 | DISALLOW_COPY_AND_ASSIGN(VertexBuffer9); |
michael@0 | 47 | |
michael@0 | 48 | rx::Renderer9 *const mRenderer; |
michael@0 | 49 | |
michael@0 | 50 | IDirect3DVertexBuffer9 *mVertexBuffer; |
michael@0 | 51 | unsigned int mBufferSize; |
michael@0 | 52 | bool mDynamicUsage; |
michael@0 | 53 | |
michael@0 | 54 | // Attribute format conversion |
michael@0 | 55 | enum { NUM_GL_VERTEX_ATTRIB_TYPES = 6 }; |
michael@0 | 56 | |
michael@0 | 57 | struct FormatConverter |
michael@0 | 58 | { |
michael@0 | 59 | bool identity; |
michael@0 | 60 | std::size_t outputElementSize; |
michael@0 | 61 | void (*convertArray)(const void *in, std::size_t stride, std::size_t n, void *out); |
michael@0 | 62 | D3DDECLTYPE d3dDeclType; |
michael@0 | 63 | }; |
michael@0 | 64 | |
michael@0 | 65 | static bool mTranslationsInitialized; |
michael@0 | 66 | static void initializeTranslations(DWORD declTypes); |
michael@0 | 67 | |
michael@0 | 68 | // [GL types as enumerated by typeIndex()][normalized][size - 1] |
michael@0 | 69 | static FormatConverter mFormatConverters[NUM_GL_VERTEX_ATTRIB_TYPES][2][4]; |
michael@0 | 70 | |
michael@0 | 71 | struct TranslationDescription |
michael@0 | 72 | { |
michael@0 | 73 | DWORD capsFlag; |
michael@0 | 74 | FormatConverter preferredConversion; |
michael@0 | 75 | FormatConverter fallbackConversion; |
michael@0 | 76 | }; |
michael@0 | 77 | |
michael@0 | 78 | // This table is used to generate mFormatConverters. |
michael@0 | 79 | // [GL types as enumerated by typeIndex()][normalized][size - 1] |
michael@0 | 80 | static const TranslationDescription mPossibleTranslations[NUM_GL_VERTEX_ATTRIB_TYPES][2][4]; |
michael@0 | 81 | |
michael@0 | 82 | static unsigned int typeIndex(GLenum type); |
michael@0 | 83 | static const FormatConverter &formatConverter(const gl::VertexAttribute &attribute); |
michael@0 | 84 | |
michael@0 | 85 | static bool spaceRequired(const gl::VertexAttribute &attrib, std::size_t count, GLsizei instances, |
michael@0 | 86 | unsigned int *outSpaceRequired); |
michael@0 | 87 | }; |
michael@0 | 88 | |
michael@0 | 89 | } |
michael@0 | 90 | |
michael@0 | 91 | #endif // LIBGLESV2_RENDERER_VERTEXBUFFER9_H_ |