[common]: move array length into a common helper

Since it is more generally useful, and less cryptic this way.
This commit is contained in:
Tudor Brindus 2021-07-11 18:54:28 -04:00 committed by Geoffrey McRae
parent 893b2500c2
commit 92706caddc
2 changed files with 30 additions and 4 deletions

View File

@ -0,0 +1,26 @@
/**
* Looking Glass
* Copyright (C) 2017-2021 The Looking Glass Authors
* https://looking-glass.io
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc., 59
* Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef _LG_ARRAY_H_
#define _LG_ARRAY_H_
#define ARRAY_LENGTH(arr) (sizeof(arr) / sizeof(*(arr)))
#endif

View File

@ -20,6 +20,7 @@
#include "interface/capture.h" #include "interface/capture.h"
#include "interface/platform.h" #include "interface/platform.h"
#include "common/array.h"
#include "common/debug.h" #include "common/debug.h"
#include "common/windebug.h" #include "common/windebug.h"
#include "common/option.h" #include "common/option.h"
@ -716,14 +717,13 @@ static void computeFrameDamage(Texture * tex)
// By default, damage the full frame. // By default, damage the full frame.
tex->damageRectsCount = 0; tex->damageRectsCount = 0;
const int maxDamageRectsCount = const int maxDamageRectsCount = ARRAY_LENGTH(tex->damageRects);
sizeof(tex->damageRects) / sizeof(*tex->damageRects);
// Compute dirty rectangles. // Compute dirty rectangles.
RECT dirtyRects[maxDamageRectsCount]; RECT dirtyRects[maxDamageRectsCount];
UINT dirtyRectsBufferSizeRequired; UINT dirtyRectsBufferSizeRequired;
if (IDXGIOutputDuplication_GetFrameDirtyRects(this->dup, if (IDXGIOutputDuplication_GetFrameDirtyRects(this->dup,
sizeof(dirtyRects) / sizeof(*dirtyRects), dirtyRects, ARRAY_LENGTH(dirtyRects), dirtyRects,
&dirtyRectsBufferSizeRequired) != S_OK) &dirtyRectsBufferSizeRequired) != S_OK)
return; return;
@ -738,7 +738,7 @@ static void computeFrameDamage(Texture * tex)
DXGI_OUTDUPL_MOVE_RECT moveRects[(maxDamageRectsCount - dirtyRectsCount) / 2]; DXGI_OUTDUPL_MOVE_RECT moveRects[(maxDamageRectsCount - dirtyRectsCount) / 2];
UINT moveRectsBufferSizeRequired; UINT moveRectsBufferSizeRequired;
if (IDXGIOutputDuplication_GetFrameMoveRects(this->dup, if (IDXGIOutputDuplication_GetFrameMoveRects(this->dup,
sizeof(moveRects) / sizeof(*moveRects), moveRects, ARRAY_LENGTH(moveRects), moveRects,
&moveRectsBufferSizeRequired) != S_OK) &moveRectsBufferSizeRequired) != S_OK)
return; return;