Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
BC_CommonBitMatrix.cpp
Go to the documentation of this file.
1
// Copyright 2014 The PDFium Authors
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
// Original code is licensed as follows:
7
/*
8
* Copyright 2007 ZXing authors
9
*
10
* Licensed under the Apache License, Version 2.0 (the "License");
11
* you may not use this file except in compliance with the License.
12
* You may obtain a copy of the License at
13
*
14
* http://www.apache.org/licenses/LICENSE-2.0
15
*
16
* Unless required by applicable law or agreed to in writing, software
17
* distributed under the License is distributed on an "AS IS" BASIS,
18
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
* See the License for the specific language governing permissions and
20
* limitations under the License.
21
*/
22
23
#
include
"fxbarcode/common/BC_CommonBitMatrix.h"
24
25
#
include
"core/fxcrt/check_op.h"
26
#
include
"core/fxcrt/fixed_size_data_vector.h"
27
28
CBC_CommonBitMatrix
::
CBC_CommonBitMatrix
(size_t width, size_t height)
29
:
m_height
(
height
),
m_rowSize
((
width
+ 31) >> 5) {
30
static
constexpr
int32_t kMaxBits = 1024 * 1024 * 1024;
// 1 Gb.
31
CHECK_LT
(m_rowSize, kMaxBits / m_height);
32
m_bits = FixedSizeDataVector<uint32_t>::Zeroed(m_rowSize * m_height);
33
}
34
35
CBC_CommonBitMatrix
::~
CBC_CommonBitMatrix
() =
default
;
36
37
bool
CBC_CommonBitMatrix
::
Get
(size_t x, size_t y)
const
{
38
size_t offset = y * m_rowSize + (x >> 5);
39
return
((m_bits.span()[offset] >> (x & 0x1f)) & 1) != 0;
40
}
41
42
void
CBC_CommonBitMatrix
::
Set
(size_t x, size_t y) {
43
size_t offset = y * m_rowSize + (x >> 5);
44
m_bits.span()[offset] |= 1u << (x & 0x1f);
45
}
CHECK_LT
#define CHECK_LT(x, y)
Definition
check_op.h:12
CBC_CommonBitMatrix
Definition
BC_CommonBitMatrix.h:15
CBC_CommonBitMatrix::Set
void Set(size_t x, size_t y)
Definition
BC_CommonBitMatrix.cpp:42
CBC_CommonBitMatrix::~CBC_CommonBitMatrix
~CBC_CommonBitMatrix()
CBC_CommonBitMatrix::CBC_CommonBitMatrix
CBC_CommonBitMatrix(size_t width, size_t height)
Definition
BC_CommonBitMatrix.cpp:28
CBC_CommonBitMatrix::Get
bool Get(size_t x, size_t y) const
Definition
BC_CommonBitMatrix.cpp:37
qtwebengine
src
3rdparty
chromium
third_party
pdfium
fxbarcode
common
BC_CommonBitMatrix.cpp
Generated on
for Qt by
1.14.0