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.
1 #include "precompiled.h"
2 //
3 // Copyright (c) 2012-2013 The ANGLE Project Authors. All rights reserved.
4 // Use of this source code is governed by a BSD-style license that can be
5 // found in the LICENSE file.
6 //
8 // ShaderExecutable11.cpp: Implements a D3D11-specific class to contain shader
9 // executable implementation details.
11 #include "libGLESv2/renderer/ShaderExecutable11.h"
13 #include "common/debug.h"
15 namespace rx
16 {
18 ShaderExecutable11::ShaderExecutable11(const void *function, size_t length, ID3D11PixelShader *executable)
19 : ShaderExecutable(function, length)
20 {
21 mPixelExecutable = executable;
22 mVertexExecutable = NULL;
23 mGeometryExecutable = NULL;
25 mConstantBuffer = NULL;
26 }
28 ShaderExecutable11::ShaderExecutable11(const void *function, size_t length, ID3D11VertexShader *executable)
29 : ShaderExecutable(function, length)
30 {
31 mVertexExecutable = executable;
32 mPixelExecutable = NULL;
33 mGeometryExecutable = NULL;
35 mConstantBuffer = NULL;
36 }
38 ShaderExecutable11::ShaderExecutable11(const void *function, size_t length, ID3D11GeometryShader *executable)
39 : ShaderExecutable(function, length)
40 {
41 mGeometryExecutable = executable;
42 mVertexExecutable = NULL;
43 mPixelExecutable = NULL;
45 mConstantBuffer = NULL;
46 }
48 ShaderExecutable11::~ShaderExecutable11()
49 {
50 if (mVertexExecutable)
51 {
52 mVertexExecutable->Release();
53 }
54 if (mPixelExecutable)
55 {
56 mPixelExecutable->Release();
57 }
58 if (mGeometryExecutable)
59 {
60 mGeometryExecutable->Release();
61 }
63 if (mConstantBuffer)
64 {
65 mConstantBuffer->Release();
66 }
67 }
69 ShaderExecutable11 *ShaderExecutable11::makeShaderExecutable11(ShaderExecutable *executable)
70 {
71 ASSERT(HAS_DYNAMIC_TYPE(ShaderExecutable11*, executable));
72 return static_cast<ShaderExecutable11*>(executable);
73 }
75 ID3D11VertexShader *ShaderExecutable11::getVertexShader() const
76 {
77 return mVertexExecutable;
78 }
80 ID3D11PixelShader *ShaderExecutable11::getPixelShader() const
81 {
82 return mPixelExecutable;
83 }
85 ID3D11GeometryShader *ShaderExecutable11::getGeometryShader() const
86 {
87 return mGeometryExecutable;
88 }
90 ID3D11Buffer *ShaderExecutable11::getConstantBuffer(ID3D11Device *device, unsigned int registerCount)
91 {
92 if (!mConstantBuffer && registerCount > 0)
93 {
94 D3D11_BUFFER_DESC constantBufferDescription = {0};
95 constantBufferDescription.ByteWidth = registerCount * sizeof(float[4]);
96 constantBufferDescription.Usage = D3D11_USAGE_DYNAMIC;
97 constantBufferDescription.BindFlags = D3D11_BIND_CONSTANT_BUFFER;
98 constantBufferDescription.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
99 constantBufferDescription.MiscFlags = 0;
100 constantBufferDescription.StructureByteStride = 0;
102 HRESULT result = device->CreateBuffer(&constantBufferDescription, NULL, &mConstantBuffer);
103 ASSERT(SUCCEEDED(result));
104 }
106 return mConstantBuffer;
107 }
109 }