Skip to content

Commit 2c98f3d

Browse files
committed
Canvas OSD was already correct for AHI
Reverted changes for canvas OSD. The fix now only affects character based OSDs.
1 parent 61951e0 commit 2c98f3d

File tree

5 files changed

+14
-20
lines changed

5 files changed

+14
-20
lines changed

src/main/io/osd_canvas.c

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,7 @@ void osdDrawArtificialHorizonLine(displayCanvas_t *canvas, float pitchAngle, flo
329329
displayCanvasContextPop(canvas);
330330
}
331331

332-
static bool osdCanvasDrawArtificialHorizonWidget(displayPort_t *display, displayCanvas_t *canvas, const osdDrawPoint_t *p, float pitchAngle, float rollAngle, bool isInverted)
332+
static bool osdCanvasDrawArtificialHorizonWidget(displayPort_t *display, displayCanvas_t *canvas, const osdDrawPoint_t *p, float pitchAngle, float rollAngle)
333333
{
334334
UNUSED(display);
335335
UNUSED(p);
@@ -346,10 +346,7 @@ static bool osdCanvasDrawArtificialHorizonWidget(displayPort_t *display, display
346346
int ahiX = (canvas->width - ahiWidth) / 2;
347347
int ahiHeight = osdConfig()->ahi_height;
348348
int ahiY = ((canvas->height - ahiHeight) / 2);
349-
if (isInverted)
350-
ahiY -= osdConfig()->ahi_vertical_offset;
351-
else
352-
ahiY += osdConfig()->ahi_vertical_offset;
349+
ahiY += osdConfig()->ahi_vertical_offset;
353350

354351
if (ahiY < 0) {
355352
ahiY = 0;
@@ -402,7 +399,7 @@ static bool osdCanvasDrawArtificialHorizonWidget(displayPort_t *display, display
402399
return false;
403400
}
404401

405-
void osdCanvasDrawArtificialHorizon(displayPort_t *display, displayCanvas_t *canvas, const osdDrawPoint_t *p, float pitchAngle, float rollAngle, bool isInverted)
402+
void osdCanvasDrawArtificialHorizon(displayPort_t *display, displayCanvas_t *canvas, const osdDrawPoint_t *p, float pitchAngle, float rollAngle)
406403
{
407404
UNUSED(display);
408405
UNUSED(p);
@@ -417,7 +414,7 @@ void osdCanvasDrawArtificialHorizon(displayPort_t *display, displayCanvas_t *can
417414
float totalError = fabsf(prevPitchAngle - pitchAngle) + fabsf(prevRollAngle - rollAngle);
418415
if ((now > nextDrawMinMs && totalError > 0.05f)|| now > nextDrawMaxMs) {
419416

420-
if (!osdCanvasDrawArtificialHorizonWidget(display, canvas, p, pitchAngle, rollAngle, isInverted)) {
417+
if (!osdCanvasDrawArtificialHorizonWidget(display, canvas, p, pitchAngle, rollAngle)) {
421418
switch ((osd_ahi_style_e)osdConfig()->ahi_style) {
422419
case OSD_AHI_STYLE_DEFAULT:
423420
{

src/main/io/osd_canvas.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,6 @@ typedef struct osdDrawPoint_s osdDrawPoint_t;
3434

3535
void osdCanvasDrawVario(displayPort_t *display, displayCanvas_t *canvas, const osdDrawPoint_t *p, float zvel);
3636
void osdCanvasDrawDirArrow(displayPort_t *display, displayCanvas_t *canvas, const osdDrawPoint_t *p, float degrees);
37-
void osdCanvasDrawArtificialHorizon(displayPort_t *display, displayCanvas_t *canvas, const osdDrawPoint_t *p, float pitchAngle, float rollAngle, bool isInverted);
37+
void osdCanvasDrawArtificialHorizon(displayPort_t *display, displayCanvas_t *canvas, const osdDrawPoint_t *p, float pitchAngle, float rollAngle);
3838
void osdCanvasDrawHeadingGraph(displayPort_t *display, displayCanvas_t *canvas, const osdDrawPoint_t *p, int heading);
3939
bool osdCanvasDrawSidebars(displayPort_t *display, displayCanvas_t *canvas);

src/main/io/osd_common.c

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -147,21 +147,19 @@ void osdDrawArtificialHorizon(displayPort_t *display, displayCanvas_t *canvas, c
147147
{
148148
uint8_t gx;
149149
uint8_t gy;
150-
bool isInverted = false;
151-
152-
// Correct pitch when inverted
153-
if (rollAngle < -1.570796f || rollAngle > 1.570796f) {
154-
isInverted = true;
155-
pitchAngle = -pitchAngle;
156-
}
157150

158151
#if defined(USE_CANVAS)
159152
if (canvas) {
160-
osdCanvasDrawArtificialHorizon(display, canvas, p, pitchAngle, rollAngle, isInverted);
153+
osdCanvasDrawArtificialHorizon(display, canvas, p, pitchAngle, rollAngle);
161154
} else {
162155
#endif
156+
// Correct pitch when inverted
157+
if (rollAngle < -1.570796f || rollAngle > 1.570796f) {
158+
pitchAngle = -pitchAngle;
159+
}
160+
163161
osdDrawPointGetGrid(&gx, &gy, display, canvas, p);
164-
osdGridDrawArtificialHorizon(display, gx, gy, pitchAngle, rollAngle, isInverted);
162+
osdGridDrawArtificialHorizon(display, gx, gy, pitchAngle, rollAngle);
165163
#if defined(USE_CANVAS)
166164
}
167165
#endif

src/main/io/osd_grid.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,11 +109,10 @@ static float osdGetAspectRatioCorrection(void)
109109
return osdDisplayIsPAL() ? 12.0f/15.0f : 12.0f/18.46f;
110110
}
111111

112-
void osdGridDrawArtificialHorizon(displayPort_t *display, unsigned gx, unsigned gy, float pitchAngle, float rollAngle, bool isInverted)
112+
void osdGridDrawArtificialHorizon(displayPort_t *display, unsigned gx, unsigned gy, float pitchAngle, float rollAngle)
113113
{
114114
UNUSED(gx);
115115
UNUSED(gy);
116-
UNUSED(isInverted);
117116

118117
uint8_t elemPosX;
119118
uint8_t elemPosY;

src/main/io/osd_grid.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,6 @@ typedef struct displayPort_s displayPort_t;
3030

3131
void osdGridDrawVario(displayPort_t *display, unsigned gx, unsigned gy, float zvel);
3232
void osdGridDrawDirArrow(displayPort_t *display, unsigned gx, unsigned gy, float degrees);
33-
void osdGridDrawArtificialHorizon(displayPort_t *display, unsigned gx, unsigned gy, float pitchAngle, float rollAngle, bool isInverted);
33+
void osdGridDrawArtificialHorizon(displayPort_t *display, unsigned gx, unsigned gy, float pitchAngle, float rollAngle);
3434
void osdGridDrawHeadingGraph(displayPort_t *display, unsigned gx, unsigned gy, int heading);
3535
void osdGridDrawSidebars(displayPort_t *display);

0 commit comments

Comments
 (0)