only show cursor if a cursor character is rendered
This commit is contained in:
parent
9b593ce231
commit
08b9c26dd1
|
@ -6,6 +6,7 @@
|
||||||
|
|
||||||
int cursorPosX = 0;
|
int cursorPosX = 0;
|
||||||
int cursorPosY = 0;
|
int cursorPosY = 0;
|
||||||
|
bool showCursor = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author: Julian Hinxlage
|
* @author: Julian Hinxlage
|
||||||
|
@ -14,24 +15,30 @@ int cursorPosY = 0;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void threadHandler(Font &font){
|
void threadHandler(Font &font){
|
||||||
static bool showCurser{false};
|
static bool cursorState{false};
|
||||||
|
|
||||||
int start = font.height() / 4;
|
int start = 0;
|
||||||
int end = font.height() * 3 / 4 + 1;
|
int end = font.height();
|
||||||
auto bc = vkvm::getBackgroundColor();
|
auto bc = vkvm::getBackgroundColor();
|
||||||
auto fc = vkvm::getForegroundColor();
|
auto fc = vkvm::getForegroundColor();
|
||||||
|
|
||||||
while(true){
|
while(true){
|
||||||
for (int i = start; i < end; i++) {
|
if(showCursor) {
|
||||||
if (showCurser) {
|
int x = cursorPosX - 1;
|
||||||
vkvm::setPixel(cursorPosX, cursorPosY + i, bc);
|
if (x < 0) {
|
||||||
|
x = 0;
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
vkvm::setPixel(cursorPosX, cursorPosY + i, fc);
|
for (int i = start; i < end; i++) {
|
||||||
|
if (cursorState) {
|
||||||
|
vkvm::setPixel(x, cursorPosY + i, bc);
|
||||||
|
} else {
|
||||||
|
vkvm::setPixel(x, cursorPosY + i, fc);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
vkvm::callEvent(vkvm::EventType::Redraw);
|
||||||
|
cursorState = !cursorState;
|
||||||
}
|
}
|
||||||
vkvm::callEvent(vkvm::EventType::Redraw);
|
|
||||||
showCurser = !showCurser;
|
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(800));
|
std::this_thread::sleep_for(std::chrono::milliseconds(800));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -56,6 +63,7 @@ int main() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
showCursor = false;
|
||||||
int x = 0;
|
int x = 0;
|
||||||
int y = 0;
|
int y = 0;
|
||||||
for(char c : currentText){
|
for(char c : currentText){
|
||||||
|
@ -65,6 +73,7 @@ int main() {
|
||||||
}else if(c == -127){
|
}else if(c == -127){
|
||||||
cursorPosX = x * font.width();
|
cursorPosX = x * font.width();
|
||||||
cursorPosY = y * font.height();
|
cursorPosY = y * font.height();
|
||||||
|
showCursor = true;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
if(x == perRow){
|
if(x == perRow){
|
||||||
|
|
Loading…
Reference in New Issue