|
|
@@ -176,8 +176,10 @@ bool PGEntry::
|
|
|
cull_callback(CullTraverser *trav, CullTraverserData &data) {
|
|
|
LightReMutexHolder holder(_lock);
|
|
|
PGItem::cull_callback(trav, data);
|
|
|
- update_text();
|
|
|
- update_cursor();
|
|
|
+ if (Thread::get_current_pipeline_stage() == 0) {
|
|
|
+ update_text();
|
|
|
+ update_cursor();
|
|
|
+ }
|
|
|
|
|
|
// Now render the text.
|
|
|
CullTraverserData next_data(data, _text_render_root.node());
|
|
|
@@ -260,7 +262,7 @@ press(const MouseWatcherParameter ¶m, bool background) {
|
|
|
}
|
|
|
_cursor_stale = true;
|
|
|
if (overflow_mode){
|
|
|
- _text_geom_stale = true;
|
|
|
+ _text_geom_stale = true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -276,7 +278,7 @@ press(const MouseWatcherParameter ¶m, bool background) {
|
|
|
}
|
|
|
_cursor_stale = true;
|
|
|
if (overflow_mode){
|
|
|
- _text_geom_stale = true;
|
|
|
+ _text_geom_stale = true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -286,7 +288,7 @@ press(const MouseWatcherParameter ¶m, bool background) {
|
|
|
_cursor_position = 0;
|
|
|
_cursor_stale = true;
|
|
|
if (overflow_mode){
|
|
|
- _text_geom_stale = true;
|
|
|
+ _text_geom_stale = true;
|
|
|
}
|
|
|
type(param);
|
|
|
}
|
|
|
@@ -297,7 +299,7 @@ press(const MouseWatcherParameter ¶m, bool background) {
|
|
|
_cursor_position = _text.get_num_characters();
|
|
|
_cursor_stale = true;
|
|
|
if (overflow_mode){
|
|
|
- _text_geom_stale = true;
|
|
|
+ _text_geom_stale = true;
|
|
|
}
|
|
|
type(param);
|
|
|
}
|
|
|
@@ -306,6 +308,17 @@ press(const MouseWatcherParameter ¶m, bool background) {
|
|
|
}
|
|
|
}
|
|
|
PGItem::press(param, background);
|
|
|
+
|
|
|
+#ifdef THREADED_PIPELINE
|
|
|
+ if (Pipeline::get_render_pipeline()->get_num_stages() > 1) {
|
|
|
+ if (_text_geom_stale) {
|
|
|
+ update_text();
|
|
|
+ }
|
|
|
+ if (_cursor_stale) {
|
|
|
+ update_cursor();
|
|
|
+ }
|
|
|
+ }
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -411,6 +424,17 @@ keystroke(const MouseWatcherParameter ¶m, bool background) {
|
|
|
}
|
|
|
}
|
|
|
PGItem::keystroke(param, background);
|
|
|
+
|
|
|
+#ifdef THREADED_PIPELINE
|
|
|
+ if (Pipeline::get_render_pipeline()->get_num_stages() > 1) {
|
|
|
+ if (_text_geom_stale) {
|
|
|
+ update_text();
|
|
|
+ }
|
|
|
+ if (_cursor_stale) {
|
|
|
+ update_cursor();
|
|
|
+ }
|
|
|
+ }
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -434,6 +458,17 @@ candidate(const MouseWatcherParameter ¶m, bool background) {
|
|
|
}
|
|
|
}
|
|
|
PGItem::candidate(param, background);
|
|
|
+
|
|
|
+#ifdef THREADED_PIPELINE
|
|
|
+ if (Pipeline::get_render_pipeline()->get_num_stages() > 1) {
|
|
|
+ if (_text_geom_stale) {
|
|
|
+ update_text();
|
|
|
+ }
|
|
|
+ if (_cursor_stale) {
|
|
|
+ update_cursor();
|
|
|
+ }
|
|
|
+ }
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -924,4 +959,10 @@ update_state() {
|
|
|
} else {
|
|
|
set_state(S_inactive);
|
|
|
}
|
|
|
+#ifdef THREADED_PIPELINE
|
|
|
+ if (Pipeline::get_render_pipeline()->get_num_stages() > 1) {
|
|
|
+ update_text();
|
|
|
+ update_cursor();
|
|
|
+ }
|
|
|
+#endif
|
|
|
}
|