set up multiframerate for power saving but commented out. Discovered that thread sleep wasn't working, switched to SDL_Delay. added animated plane position updates
This commit is contained in:
parent
472aa85cb7
commit
b7b5b69914
18
Aircraft.cpp
18
Aircraft.cpp
|
@ -32,6 +32,24 @@
|
||||||
#include "Aircraft.h"
|
#include "Aircraft.h"
|
||||||
#include "AircraftLabel.h"
|
#include "AircraftLabel.h"
|
||||||
|
|
||||||
|
float Aircraft::getLastLon() {
|
||||||
|
if(lonHistory.size() > 1) {
|
||||||
|
return lonHistory.end()[-2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
float Aircraft::getLastLat() {
|
||||||
|
if(latHistory.size() > 1) {
|
||||||
|
return latHistory.end()[-2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
float Aircraft::getLastHeading() {
|
||||||
|
if(headingHistory.size() > 1) {
|
||||||
|
return headingHistory.end()[-2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Aircraft::Aircraft(uint32_t addr) {
|
Aircraft::Aircraft(uint32_t addr) {
|
||||||
this->addr = addr;
|
this->addr = addr;
|
||||||
prev_seen = 0;
|
prev_seen = 0;
|
||||||
|
|
|
@ -39,6 +39,12 @@ class AircraftLabel;
|
||||||
|
|
||||||
class Aircraft {
|
class Aircraft {
|
||||||
public:
|
public:
|
||||||
|
float getLastLon();
|
||||||
|
float getLastLat();
|
||||||
|
float getLastHeading();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
uint32_t addr; // ICAO address
|
uint32_t addr; // ICAO address
|
||||||
char flight[16]; // Flight number
|
char flight[16]; // Flight number
|
||||||
unsigned char signalLevel[8]; // Last 8 Signal Amplitudes
|
unsigned char signalLevel[8]; // Last 8 Signal Amplitudes
|
||||||
|
|
|
@ -334,6 +334,7 @@ void AircraftLabel::calculateForces(Aircraft *check_p) {
|
||||||
}
|
}
|
||||||
|
|
||||||
labelLevel += level_rate;
|
labelLevel += level_rate;
|
||||||
|
isChanging = true;
|
||||||
lastLevelChange = now();
|
lastLevelChange = now();
|
||||||
}
|
}
|
||||||
} else if (labelLevel > 1.2f + density_mult * calculateDensity(head, labelLevel + 1)) {
|
} else if (labelLevel > 1.2f + density_mult * calculateDensity(head, labelLevel + 1)) {
|
||||||
|
@ -343,6 +344,7 @@ void AircraftLabel::calculateForces(Aircraft *check_p) {
|
||||||
}
|
}
|
||||||
|
|
||||||
labelLevel -= level_rate;
|
labelLevel -= level_rate;
|
||||||
|
isChanging = true;
|
||||||
lastLevelChange = now();
|
lastLevelChange = now();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -392,6 +394,10 @@ void AircraftLabel::applyForces() {
|
||||||
dy = 0;
|
dy = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(dx < 1 || dy < 1) {
|
||||||
|
isChanging = true;
|
||||||
|
}
|
||||||
|
|
||||||
float new_x = 0;
|
float new_x = 0;
|
||||||
float new_y = 0;
|
float new_y = 0;
|
||||||
|
|
||||||
|
@ -633,6 +639,13 @@ void AircraftLabel::draw(SDL_Renderer *renderer, bool selected) {
|
||||||
if(h < 0.05f) {
|
if(h < 0.05f) {
|
||||||
h = 0;
|
h = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
isChanging = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool AircraftLabel::getIsChanging() {
|
||||||
|
return isChanging;
|
||||||
}
|
}
|
||||||
|
|
||||||
AircraftLabel::AircraftLabel(Aircraft *p, bool metric, int screen_width, int screen_height, TTF_Font *font) {
|
AircraftLabel::AircraftLabel(Aircraft *p, bool metric, int screen_width, int screen_height, TTF_Font *font) {
|
||||||
|
@ -666,6 +679,8 @@ AircraftLabel::AircraftLabel(Aircraft *p, bool metric, int screen_width, int scr
|
||||||
|
|
||||||
labelLevel = 0;
|
labelLevel = 0;
|
||||||
|
|
||||||
|
isChanging = false;
|
||||||
|
|
||||||
flightLabel.setFont(font);
|
flightLabel.setFont(font);
|
||||||
altitudeLabel.setFont(font);
|
altitudeLabel.setFont(font);
|
||||||
speedLabel.setFont(font);
|
speedLabel.setFont(font);
|
||||||
|
|
|
@ -16,6 +16,7 @@ class AircraftLabel {
|
||||||
void calculateForces(Aircraft *check_p);
|
void calculateForces(Aircraft *check_p);
|
||||||
void applyForces();
|
void applyForces();
|
||||||
void move(float dx, float dy);
|
void move(float dx, float dy);
|
||||||
|
bool getIsChanging();
|
||||||
|
|
||||||
void draw(SDL_Renderer *renderer, bool selected);
|
void draw(SDL_Renderer *renderer, bool selected);
|
||||||
|
|
||||||
|
@ -63,6 +64,8 @@ class AircraftLabel {
|
||||||
int screen_width;
|
int screen_width;
|
||||||
int screen_height;
|
int screen_height;
|
||||||
|
|
||||||
|
bool isChanging;
|
||||||
|
|
||||||
std::chrono::high_resolution_clock::time_point lastLevelChange;
|
std::chrono::high_resolution_clock::time_point lastLevelChange;
|
||||||
|
|
||||||
///////////
|
///////////
|
||||||
|
|
134
View.cpp
134
View.cpp
|
@ -83,6 +83,40 @@ SDL_Color setColor(uint8_t r, uint8_t g, uint8_t b) {
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float lerp(float a, float b, float factor) {
|
||||||
|
if(factor > 1.0f) {
|
||||||
|
factor = 1.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(factor < 0.0f) {
|
||||||
|
factor = 0.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (1.0f - factor) * a + factor * b;
|
||||||
|
}
|
||||||
|
|
||||||
|
float lerpAngle(float a, float b, float factor) {
|
||||||
|
float diff = fabs(b - a);
|
||||||
|
if (diff > 180.0f)
|
||||||
|
{
|
||||||
|
if (b > a)
|
||||||
|
{
|
||||||
|
a += 360.0f;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
b += 360.0f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
float value = (a + ((b - a) * factor));
|
||||||
|
|
||||||
|
if (value >= 0.0f && value <= 360.0f)
|
||||||
|
return value;
|
||||||
|
|
||||||
|
return fmod(value,360.0f);
|
||||||
|
}
|
||||||
|
|
||||||
SDL_Color lerpColor(SDL_Color aColor, SDL_Color bColor, float factor) {
|
SDL_Color lerpColor(SDL_Color aColor, SDL_Color bColor, float factor) {
|
||||||
if(factor > 1.0f) {
|
if(factor > 1.0f) {
|
||||||
factor = 1.0f;
|
factor = 1.0f;
|
||||||
|
@ -401,15 +435,15 @@ void View::drawPlaneIcon(int x, int y, float heading, SDL_Color planeColor)
|
||||||
x2 = x + round(bodyWidth*out[0]);
|
x2 = x + round(bodyWidth*out[0]);
|
||||||
y2 = y + round(bodyWidth*out[1]);
|
y2 = y + round(bodyWidth*out[1]);
|
||||||
|
|
||||||
trigonRGBA (renderer, x1, y1, x2, y2, x+round(-body * vec[0]), y+round(-body*vec[1]),planeColor.r,planeColor.g,planeColor.b,SDL_ALPHA_OPAQUE);
|
filledTrigonRGBA (renderer, x1, y1, x2, y2, x+round(-body * vec[0]), y+round(-body*vec[1]),planeColor.r,planeColor.g,planeColor.b,SDL_ALPHA_OPAQUE);
|
||||||
trigonRGBA (renderer, x1, y1, x2, y2, x+round(body * vec[0]), y+round(body*vec[1]),planeColor.r,planeColor.g,planeColor.b,SDL_ALPHA_OPAQUE);
|
filledTrigonRGBA (renderer, x1, y1, x2, y2, x+round(body * vec[0]), y+round(body*vec[1]),planeColor.r,planeColor.g,planeColor.b,SDL_ALPHA_OPAQUE);
|
||||||
|
|
||||||
// x1 = x + round(-body*vec[0] - bodyWidth*out[0]);
|
x1 = x + round(15*vec[0]);
|
||||||
// y1 = y + round(-body*vec[1] - bodyWidth*out[1]);
|
y1 = y + round(15*vec[1]);
|
||||||
// x2 = x + round(body*vec[0] - bodyWidth*out[0]);
|
x2 = x + round(30*vec[0]);
|
||||||
// y2 = y + round(body*vec[1] - bodyWidth*out[1]);
|
y2 = y + round(30*vec[1]);
|
||||||
|
|
||||||
// lineRGBA(renderer,x,y,x2,y2,planeColor.r,planeColor.g,planeColor.b,SDL_ALPHA_OPAQUE);
|
lineRGBA(renderer,x1,y1,x2,y2,255,255,255,SDL_ALPHA_OPAQUE);
|
||||||
|
|
||||||
// x1 = x + round(-body*vec[0] + bodyWidth*out[0]);
|
// x1 = x + round(-body*vec[0] + bodyWidth*out[0]);
|
||||||
// y1 = y + round(-body*vec[1] + bodyWidth*out[1]);
|
// y1 = y + round(-body*vec[1] + bodyWidth*out[1]);
|
||||||
|
@ -427,7 +461,7 @@ void View::drawPlaneIcon(int x, int y, float heading, SDL_Color planeColor)
|
||||||
x2 = x + round(wing*out[0]);
|
x2 = x + round(wing*out[0]);
|
||||||
y2 = y + round(wing*out[1]);
|
y2 = y + round(wing*out[1]);
|
||||||
|
|
||||||
trigonRGBA(renderer, x1, y1, x2, y2, x+round(body*wingThick*vec[0]), y+round(body*wingThick*vec[1]),planeColor.r,planeColor.g,planeColor.b,SDL_ALPHA_OPAQUE);
|
filledTrigonRGBA(renderer, x1, y1, x2, y2, x+round(body*wingThick*vec[0]), y+round(body*wingThick*vec[1]),planeColor.r,planeColor.g,planeColor.b,SDL_ALPHA_OPAQUE);
|
||||||
|
|
||||||
//tail
|
//tail
|
||||||
x1 = x + round(-body*.75*vec[0] - tail*out[0]);
|
x1 = x + round(-body*.75*vec[0] - tail*out[0]);
|
||||||
|
@ -435,7 +469,7 @@ void View::drawPlaneIcon(int x, int y, float heading, SDL_Color planeColor)
|
||||||
x2 = x + round(-body*.75*vec[0] + tail*out[0]);
|
x2 = x + round(-body*.75*vec[0] + tail*out[0]);
|
||||||
y2 = y + round(-body*.75*vec[1] + tail*out[1]);
|
y2 = y + round(-body*.75*vec[1] + tail*out[1]);
|
||||||
|
|
||||||
trigonRGBA (renderer, x1, y1, x2, y2, x+round(-body*tailThick*vec[0]), y+round(-body*tailThick*vec[1]),planeColor.r,planeColor.g,planeColor.b,SDL_ALPHA_OPAQUE);
|
filledTrigonRGBA (renderer, x1, y1, x2, y2, x+round(-body*tailThick*vec[0]), y+round(-body*tailThick*vec[1]),planeColor.r,planeColor.g,planeColor.b,SDL_ALPHA_OPAQUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void View::drawTrails(int left, int top, int right, int bottom) {
|
void View::drawTrails(int left, int top, int right, int bottom) {
|
||||||
|
@ -754,9 +788,7 @@ void View::moveLabels(float dx, float dy) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
float View::resolveLabelConflicts() {
|
void View::resolveLabelConflicts() {
|
||||||
float maxV = 0.0f;
|
|
||||||
|
|
||||||
Aircraft *p = appData->aircraftList.head;
|
Aircraft *p = appData->aircraftList.head;
|
||||||
|
|
||||||
while(p) {
|
while(p) {
|
||||||
|
@ -783,12 +815,14 @@ float View::resolveLabelConflicts() {
|
||||||
|
|
||||||
if(p->label) {
|
if(p->label) {
|
||||||
p->label->applyForces();
|
p->label->applyForces();
|
||||||
|
|
||||||
|
// if(p->label->getIsChanging()) {
|
||||||
|
// highFramerate = true;
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
p = p->next;
|
p = p->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
return maxV;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void View::drawPlanes() {
|
void View::drawPlanes() {
|
||||||
|
@ -819,6 +853,7 @@ void View::drawPlanes() {
|
||||||
|
|
||||||
float age_ms = elapsed(p->created);
|
float age_ms = elapsed(p->created);
|
||||||
if(age_ms < 500) {
|
if(age_ms < 500) {
|
||||||
|
//highFramerate = true;
|
||||||
float ratio = age_ms / 500.0f;
|
float ratio = age_ms / 500.0f;
|
||||||
float radius = (1.0f - ratio * ratio) * screen_width / 8;
|
float radius = (1.0f - ratio * ratio) * screen_width / 8;
|
||||||
for(float theta = 0; theta < 2*M_PI; theta += M_PI / 4) {
|
for(float theta = 0; theta < 2*M_PI; theta += M_PI / 4) {
|
||||||
|
@ -829,6 +864,10 @@ void View::drawPlanes() {
|
||||||
if(MODES_ACFLAGS_HEADING_VALID) {
|
if(MODES_ACFLAGS_HEADING_VALID) {
|
||||||
int usex = x;
|
int usex = x;
|
||||||
int usey = y;
|
int usey = y;
|
||||||
|
float useHeading = static_cast<float>(p->track);
|
||||||
|
|
||||||
|
p->x = usex;
|
||||||
|
p->y = usey;
|
||||||
|
|
||||||
planeColor = lerpColor(style.planeColor, style.planeGoneColor, elapsed_s(p->msSeen) / DISPLAY_ACTIVE);
|
planeColor = lerpColor(style.planeColor, style.planeGoneColor, elapsed_s(p->msSeen) / DISPLAY_ACTIVE);
|
||||||
|
|
||||||
|
@ -836,19 +875,23 @@ void View::drawPlanes() {
|
||||||
planeColor = style.selectedColor;
|
planeColor = style.selectedColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if(outOfBounds(x,y)) {
|
if(outOfBounds(x,y)) {
|
||||||
drawPlaneOffMap(x, y, &(p->x), &(p->y), planeColor);
|
drawPlaneOffMap(x, y, &(p->x), &(p->y), planeColor);
|
||||||
} else {
|
} else {
|
||||||
drawPlaneIcon(usex, usey, p->track, planeColor);
|
if(elapsed(p->msSeenLatLon) < 500) {
|
||||||
|
//highFramerate = true;
|
||||||
|
circleRGBA(renderer, p->x, p->y, elapsed(p->msSeenLatLon) * screen_width / (8192), 127,127, 127, 255 - (uint8_t)(255.0 * elapsed(p->msSeenLatLon) / 500.0));
|
||||||
|
|
||||||
p->x = usex;
|
pxFromLonLat(&dx, &dy, p->getLastLon(), p->getLastLat());
|
||||||
p->y = usey;
|
screenCoords(&x, &y, dx, dy);
|
||||||
|
|
||||||
|
usex = lerp(x,usex,elapsed(p->msSeenLatLon) / 500.0);
|
||||||
|
usey = lerp(y,usey,elapsed(p->msSeenLatLon) / 500.0);
|
||||||
|
useHeading = lerpAngle(p->getLastHeading(),useHeading,elapsed(p->msSeenLatLon) / 500.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
drawPlaneIcon(usex, usey, useHeading, planeColor);
|
||||||
//show latlon ping
|
|
||||||
if(elapsed(p->msSeenLatLon) < 500) {
|
|
||||||
circleRGBA(renderer, p->x, p->y, elapsed(p->msSeenLatLon) * screen_width / (8192), 127,127, 127, 255 - (uint8_t)(255.0 * elapsed(p->msSeenLatLon) / 500.0));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
drawPlaneText(p);
|
drawPlaneText(p);
|
||||||
|
@ -877,6 +920,8 @@ void View::animateCenterAbsolute(float x, float y) {
|
||||||
mapTargetMaxDist = 0.25 * maxDist;
|
mapTargetMaxDist = 0.25 * maxDist;
|
||||||
|
|
||||||
mapMoved = 1;
|
mapMoved = 1;
|
||||||
|
highFramerate = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void View::moveCenterAbsolute(float x, float y) {
|
void View::moveCenterAbsolute(float x, float y) {
|
||||||
|
@ -898,6 +943,7 @@ void View::moveCenterAbsolute(float x, float y) {
|
||||||
mapTargetLat = 0;
|
mapTargetLat = 0;
|
||||||
|
|
||||||
mapMoved = 1;
|
mapMoved = 1;
|
||||||
|
highFramerate = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void View::moveCenterRelative(float dx, float dy) {
|
void View::moveCenterRelative(float dx, float dy) {
|
||||||
|
@ -923,6 +969,7 @@ void View::moveCenterRelative(float dx, float dy) {
|
||||||
mapTargetLat = 0;
|
mapTargetLat = 0;
|
||||||
|
|
||||||
mapMoved = 1;
|
mapMoved = 1;
|
||||||
|
highFramerate = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void View::zoomMapToTarget() {
|
void View::zoomMapToTarget() {
|
||||||
|
@ -931,6 +978,7 @@ void View::zoomMapToTarget() {
|
||||||
maxDist += 0.1 * (mapTargetMaxDist - maxDist);
|
maxDist += 0.1 * (mapTargetMaxDist - maxDist);
|
||||||
mapAnimating = 1;
|
mapAnimating = 1;
|
||||||
mapMoved = 1;
|
mapMoved = 1;
|
||||||
|
highFramerate = true;
|
||||||
} else {
|
} else {
|
||||||
mapTargetMaxDist = 0;
|
mapTargetMaxDist = 0;
|
||||||
}
|
}
|
||||||
|
@ -945,6 +993,7 @@ void View::moveMapToTarget() {
|
||||||
|
|
||||||
mapAnimating = 1;
|
mapAnimating = 1;
|
||||||
mapMoved = 1;
|
mapMoved = 1;
|
||||||
|
highFramerate = true;
|
||||||
} else {
|
} else {
|
||||||
mapTargetLon = 0;
|
mapTargetLon = 0;
|
||||||
mapTargetLat = 0;
|
mapTargetLat = 0;
|
||||||
|
@ -970,6 +1019,7 @@ void View::moveMapToTarget() {
|
||||||
|
|
||||||
void View::drawClick() {
|
void View::drawClick() {
|
||||||
if(clickx && clicky) {
|
if(clickx && clicky) {
|
||||||
|
highFramerate = true;
|
||||||
|
|
||||||
int radius = .25 * elapsed(clickTime);
|
int radius = .25 * elapsed(clickTime);
|
||||||
int alpha = 128 - static_cast<int>(0.5 * elapsed(clickTime));
|
int alpha = 128 - static_cast<int>(0.5 * elapsed(clickTime));
|
||||||
|
@ -1052,6 +1102,7 @@ void View::registerMouseMove(int x, int y) {
|
||||||
// latLonFromScreenCoords(&(mouse->lat), &(mouse->lon), x, screen_height-y);
|
// latLonFromScreenCoords(&(mouse->lat), &(mouse->lon), x, screen_height-y);
|
||||||
// mouse->live = 1;
|
// mouse->live = 1;
|
||||||
// }
|
// }
|
||||||
|
highFramerate = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -1059,7 +1110,19 @@ void View::registerMouseMove(int x, int y) {
|
||||||
//
|
//
|
||||||
|
|
||||||
void View::draw() {
|
void View::draw() {
|
||||||
drawStartTime = now();
|
|
||||||
|
int targetFrameTime = 15;
|
||||||
|
|
||||||
|
// if(highFramerate) {
|
||||||
|
// targetFrameTime = 15;
|
||||||
|
// }
|
||||||
|
// highFramerate = false;
|
||||||
|
|
||||||
|
// if (elapsed(lastFrameTime) < targetFrameTime) {
|
||||||
|
// SDL_Delay(static_cast<Uint32>(targetFrameTime - elapsed(lastFrameTime)));
|
||||||
|
// }
|
||||||
|
|
||||||
|
SDL_Delay(targetFrameTime);
|
||||||
|
|
||||||
moveMapToTarget();
|
moveMapToTarget();
|
||||||
zoomMapToTarget();
|
zoomMapToTarget();
|
||||||
|
@ -1080,18 +1143,27 @@ void View::draw() {
|
||||||
//drawMouse();
|
//drawMouse();
|
||||||
drawClick();
|
drawClick();
|
||||||
|
|
||||||
// if(fps) {
|
if(fps) {
|
||||||
// char fps[60] = " ";
|
char fps[60] = " ";
|
||||||
// snprintf(fps,40," %d lines @ %.1ffps", lineCount, 1000.0 / elapsed(lastFrameTime));
|
snprintf(fps,40,"%.1f", 1000.0 / elapsed(lastFrameTime));
|
||||||
|
|
||||||
// drawStringBG(fps, 0,0, mapFont, style.subLabelColor, style.backgroundColor);
|
|
||||||
// }
|
int left = 5;
|
||||||
|
int top = 5;
|
||||||
|
drawStatusBox(&left, &top, "fps", fps, style.white);
|
||||||
|
}
|
||||||
|
|
||||||
|
SDL_Delay(33);
|
||||||
|
|
||||||
SDL_RenderPresent(renderer);
|
SDL_RenderPresent(renderer);
|
||||||
|
|
||||||
if (elapsed(drawStartTime) < FRAMETIME) {
|
|
||||||
std::this_thread::sleep_for(fmilliseconds{FRAMETIME} - (now() - drawStartTime));
|
|
||||||
}
|
|
||||||
|
//if (elapsed(lastFrameTime) < targetFrameTime) {
|
||||||
|
//std::this_thread::sleep_for(fmilliseconds{targetFrameTime - elapsed(lastFrameTime)});
|
||||||
|
//std::this_thread::sleep_for(fmilliseconds{100.0f});
|
||||||
|
//}
|
||||||
|
|
||||||
lastFrameTime = now();
|
lastFrameTime = now();
|
||||||
}
|
}
|
||||||
|
@ -1108,6 +1180,8 @@ View::View(AppData *appData){
|
||||||
fullscreen = 0;
|
fullscreen = 0;
|
||||||
screen_index = 0;
|
screen_index = 0;
|
||||||
|
|
||||||
|
highFramerate = false;
|
||||||
|
|
||||||
centerLon = 0;
|
centerLon = 0;
|
||||||
centerLat = 0;
|
centerLat = 0;
|
||||||
|
|
||||||
|
|
4
View.h
4
View.h
|
@ -108,7 +108,7 @@ class View {
|
||||||
void drawGeography();
|
void drawGeography();
|
||||||
void drawSignalMarks(Aircraft *p, int x, int y);
|
void drawSignalMarks(Aircraft *p, int x, int y);
|
||||||
void drawPlaneText(Aircraft *p);
|
void drawPlaneText(Aircraft *p);
|
||||||
float resolveLabelConflicts();
|
void resolveLabelConflicts();
|
||||||
void drawPlanes();
|
void drawPlanes();
|
||||||
void animateCenterAbsolute(float x, float y);
|
void animateCenterAbsolute(float x, float y);
|
||||||
void moveCenterAbsolute(float x, float y);
|
void moveCenterAbsolute(float x, float y);
|
||||||
|
@ -147,6 +147,8 @@ class View {
|
||||||
int mapRedraw;
|
int mapRedraw;
|
||||||
int mapAnimating;
|
int mapAnimating;
|
||||||
|
|
||||||
|
bool highFramerate;
|
||||||
|
|
||||||
float currentLon;
|
float currentLon;
|
||||||
float currentLat;
|
float currentLat;
|
||||||
std::chrono::high_resolution_clock::time_point lastFrameTime;
|
std::chrono::high_resolution_clock::time_point lastFrameTime;
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
./viz1090 --screensize 640 360 --fullscreen --server adsb --lat 47.6 --lon -122.3
|
./viz1090 --screensize 1920 1080 --fullscreen --server adsb --lat 47.6 --lon -122.3
|
||||||
|
|
Loading…
Reference in a new issue