📄 zoom-region_8c-source.html
字号:
<a name="l00101"></a>00101 <span class="stringliteral">"CONTRASTG"</span>,<a name="l00102"></a>00102 <span class="stringliteral">"CONTRASTB"</span>,<a name="l00103"></a>00103 <span class="stringliteral">"XSCALE"</span>,<a name="l00104"></a>00104 <span class="stringliteral">"YSCALE"</span>,<a name="l00105"></a>00105 <span class="stringliteral">"BORDERSIZE"</span>,<a name="l00106"></a>00106 <span class="stringliteral">"BORDERCOLOR"</span>,<a name="l00107"></a>00107 <span class="stringliteral">"XALIGN"</span>,<a name="l00108"></a>00108 <span class="stringliteral">"YALIGN"</span>,<a name="l00109"></a>00109 <span class="stringliteral">"VIEWPORT"</span>,<a name="l00110"></a>00110 <span class="stringliteral">"TESTPATTERN"</span>,<a name="l00111"></a>00111 <span class="stringliteral">"TIMING_TEST"</span>,<a name="l00112"></a>00112 <span class="stringliteral">"TIMING_OUTPUT"</span>,<a name="l00113"></a>00113 <span class="stringliteral">"TIMING_PAN_RATE"</span>,<a name="l00114"></a>00114 <span class="stringliteral">"EXIT_MAGNIFIER"</span><a name="l00115"></a>00115 };<a name="l00116"></a>00116 <span class="preprocessor">#endif</span><a name="l00117"></a>00117 <span class="preprocessor"></span><a name="l00118"></a><a class="code" href="zoom-region_8c.html#6861353f6d7e3bc04b5031cefb88137b">00118</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {<a name="l00119"></a>00119 <a class="code" href="zoom-region_8c.html#6861353f6d7e3bc04b5031cefb88137b2bb57f2168411ed590a1b17b48eea02a">ZOOM_REGION_ERROR_NONE</a>,<a name="l00120"></a>00120 <a class="code" href="zoom-region_8c.html#6861353f6d7e3bc04b5031cefb88137bc23c2b87f81026c681a76180ea50cb31">ZOOM_REGION_ERROR_NO_TARGET_DRAWABLE</a>,<a name="l00121"></a>00121 <a class="code" href="zoom-region_8c.html#6861353f6d7e3bc04b5031cefb88137bb4a210b7e66557b35ec04c4fe5378bfc">ZOOM_REGION_ERROR_TOO_BIG</a><a name="l00122"></a>00122 } <a class="code" href="zoom-region_8c.html#6861353f6d7e3bc04b5031cefb88137b">ZoomRegionPixmapCreationError</a>;<a name="l00123"></a>00123 <a name="l00124"></a><a class="code" href="zoom-region_8c.html#f5a65b17998f0a7cdcd718c7b454b5a9">00124</a> <span class="keyword">static</span> <span class="keywordtype">float</span> <a class="code" href="zoom-region_8c.html#f5a65b17998f0a7cdcd718c7b454b5a9">timing_scale_max</a> = 0;<a name="l00125"></a><a class="code" href="zoom-region_8c.html#53823284870b5ea31f5854adfb92d464">00125</a> <span class="keyword">static</span> <span class="keywordtype">float</span> <a class="code" href="zoom-region_8c.html#53823284870b5ea31f5854adfb92d464">timing_idle_max</a> = 0;<a name="l00126"></a><a class="code" href="zoom-region_8c.html#1d66ad6c26e6408fbb7320d854be39d1">00126</a> <span class="keyword">static</span> <span class="keywordtype">float</span> <a class="code" href="zoom-region_8c.html#1d66ad6c26e6408fbb7320d854be39d1">timing_frame_max</a> = 0;<a name="l00127"></a><a class="code" href="zoom-region_8c.html#6032a974dfb2be4c27356966d93df24e">00127</a> <span class="keyword">static</span> <span class="keywordtype">float</span> <a class="code" href="zoom-region_8c.html#6032a974dfb2be4c27356966d93df24e">cps_max</a> = 0;<a name="l00128"></a><a class="code" href="zoom-region_8c.html#ba35d4b55cc5de2e69c9bfc26e8f60c7">00128</a> <span class="keyword">static</span> <span class="keywordtype">float</span> <a class="code" href="zoom-region_8c.html#ba35d4b55cc5de2e69c9bfc26e8f60c7">nrr_max</a> = 0;<a name="l00129"></a><a class="code" href="zoom-region_8c.html#27e04bad95d3c0e260e2f8a8acdee6c7">00129</a> <span class="keyword">static</span> <span class="keywordtype">float</span> <a class="code" href="zoom-region_8c.html#27e04bad95d3c0e260e2f8a8acdee6c7">update_nrr_max</a> = 0;<a name="l00130"></a><a class="code" href="zoom-region_8c.html#d42c22767d695f3cc0d9cd8ffc28b89c">00130</a> <span class="keyword">static</span> gboolean <a class="code" href="zoom-region_8c.html#d42c22767d695f3cc0d9cd8ffc28b89c">reset_timing</a> = FALSE;<a name="l00131"></a><a class="code" href="zoom-region_8c.html#8d375162a6d9c98280a560a77187bf43">00131</a> <span class="keyword">static</span> gboolean <a class="code" href="zoom-region_8c.html#8d375162a6d9c98280a560a77187bf43">timing_test</a> = FALSE;<a name="l00132"></a>00132 <a name="l00133"></a><a class="code" href="zoom-region_8c.html#8726e0d0717ab1f1f48bf7fea4985104">00133</a> <span class="keyword">static</span> guint <a class="code" href="zoom-region_8c.html#8726e0d0717ab1f1f48bf7fea4985104">pending_idle_handler</a> = 0;<a name="l00134"></a><a class="code" href="zoom-region_8c.html#ab979723ec356b3002ce28d3128310e5">00134</a> <span class="keyword">static</span> gboolean <a class="code" href="zoom-region_8c.html#ab979723ec356b3002ce28d3128310e5">processing_updates</a> = FALSE;<a name="l00135"></a><a class="code" href="zoom-region_8c.html#03a92f0be266cf6637372ae4cc0bfb24">00135</a> <span class="keyword">static</span> gboolean <a class="code" href="zoom-region_8c.html#03a92f0be266cf6637372ae4cc0bfb24">timing_start</a> = FALSE;<a name="l00136"></a>00136 <a name="l00137"></a>00137 <span class="preprocessor">#ifdef TEST_XTST_CURSOR</span><a name="l00138"></a>00138 <span class="preprocessor"></span><span class="keyword">static</span> Cursor *x_cursors;<a name="l00139"></a>00139 <span class="keyword">static</span> Window cursor_window = None;<a name="l00140"></a>00140 <span class="preprocessor">#endif</span><a name="l00141"></a>00141 <span class="preprocessor"></span><a name="l00142"></a><a class="code" href="zoom-region_8c.html#c671d176344adb406953475bec818df4">00142</a> <span class="keyword">static</span> gboolean <a class="code" href="zoom-region_8c.html#c671d176344adb406953475bec818df4">can_coalesce</a> = TRUE ; <span class="comment">/* change this when event coalescing is working */</span><a name="l00143"></a>00143 <a name="l00144"></a><a class="code" href="zoom-region_8c.html#14b3714f43c739f37851ccaeb72fce1f">00144</a> <span class="preprocessor">#define CLAMP_B_C(v) (t = (v), CLAMP (t, -1, 1));</span><a name="l00145"></a>00145 <span class="preprocessor"></span><a name="l00146"></a>00146 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="zoom-region_8c.html#de348ac4fd4573da1e8288be4f4f2b68">zoom_region_sync</a> (<a class="code" href="structZoomRegion.html">ZoomRegion</a> *region);<a name="l00147"></a>00147 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="zoom-region_8c.html#01f8aa0da123c8fce6a76c84fb105b3d">zoom_region_finalize</a> (GObject *object);<a name="l00148"></a>00148 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="zoom-region_8c.html#f3f158c7dc7bc81c1f4db9aeb4b52869">zoom_region_update</a> (<a class="code" href="structZoomRegion.html">ZoomRegion</a> *<a class="code" href="magnifier-main_8c.html#7155900ae5785c02d682d6ebdfdfa432">zoom_region</a>,<a name="l00149"></a>00149 <span class="keyword">const</span> GdkRectangle rect);<a name="l00150"></a>00150 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="zoom-region_8c.html#20ddaf4938aff3ab9fc06a9f333e452f">zoom_region_queue_update</a> (<a class="code" href="structZoomRegion.html">ZoomRegion</a> *<a class="code" href="magnifier-main_8c.html#7155900ae5785c02d682d6ebdfdfa432">zoom_region</a>,<a name="l00151"></a>00151 <span class="keyword">const</span> GdkRectangle rect);<a name="l00152"></a>00152 <a name="l00153"></a>00153 <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="zoom-region_8c.html#655e3e80b9cbecbc552fe91983c7313c">zoom_region_process_updates</a> (gpointer data);<a name="l00154"></a>00154 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="zoom-region_8c.html#f42a261956ada61485912afee4c26a14">zoom_region_paint</a> (<a class="code" href="structZoomRegion.html">ZoomRegion</a> *<a class="code" href="magnifier-main_8c.html#7155900ae5785c02d682d6ebdfdfa432">zoom_region</a>, GdkRectangle *rect);<a name="l00155"></a>00155 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="zoom-region_8c.html#22429a789007f3b43907e81cd382c4ba">zoom_region_paint_pixmap</a> (<a class="code" href="structZoomRegion.html">ZoomRegion</a> *<a class="code" href="magnifier-main_8c.html#7155900ae5785c02d682d6ebdfdfa432">zoom_region</a>, GdkRectangle *rect);<a name="l00156"></a>00156 <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="zoom-region_8c.html#31b21b12640c4d23f771e4cbc1e0a14d">zoom_region_update_pointer_timeout</a> (gpointer data);<a name="l00157"></a>00157 <span class="keyword">static</span> GdkRectangle <a class="code" href="zoom-region_8c.html#0b0fe1c491e287892ad71b46031ef8c6">zoom_region_rect_from_bounds</a> (<a class="code" href="structZoomRegion.html">ZoomRegion</a> *<a class="code" href="magnifier-main_8c.html#7155900ae5785c02d682d6ebdfdfa432">zoom_region</a>,<a name="l00158"></a>00158 <span class="keyword">const</span> <a class="code" href="structGNOME__Magnifier__RectBounds__type.html">GNOME_Magnifier_RectBounds</a> *bounds);<a name="l00159"></a>00159 <span class="keyword">static</span> <a class="code" href="zoom-region_8c.html#6861353f6d7e3bc04b5031cefb88137b">ZoomRegionPixmapCreationError</a> <a class="code" href="zoom-region_8c.html#c9e0a52ed5315056ea504ce976d91e9d">zoom_region_create_pixmap</a> (<a class="code" href="structZoomRegion.html">ZoomRegion</a> *<a class="code" href="magnifier-main_8c.html#7155900ae5785c02d682d6ebdfdfa432">zoom_region</a>);<a name="l00160"></a>00160 <span class="keyword">static</span> GdkRectangle <a class="code" href="zoom-region_8c.html#c6ef31fe87f4ef234bf6bfc2cb6b7554">zoom_region_update_pixmap</a> (<a class="code" href="structZoomRegion.html">ZoomRegion</a> *<a class="code" href="magnifier-main_8c.html#7155900ae5785c02d682d6ebdfdfa432">zoom_region</a>, <span class="keyword">const</span> GdkRectangle update_rect, GdkRectangle *paint_rect);<a name="l00161"></a>00161 <a name="l00162"></a>00162 <span class="keywordtype">void</span><a name="l00163"></a><a class="code" href="zoom-region_8c.html#c0d7ea1d8a2f67a892c18c395d623a8b">00163</a> <a class="code" href="zoom-region_8c.html#c0d7ea1d8a2f67a892c18c395d623a8b">reset_timing_stats</a>()<a name="l00164"></a>00164 {<a name="l00165"></a>00165 <a class="code" href="zoom-region_8c.html#f5a65b17998f0a7cdcd718c7b454b5a9">timing_scale_max</a> = 0;<a name="l00166"></a>00166 <a class="code" href="zoom-region_8c.html#53823284870b5ea31f5854adfb92d464">timing_idle_max</a> = 0;<a name="l00167"></a>00167 <a class="code" href="zoom-region_8c.html#1d66ad6c26e6408fbb7320d854be39d1">timing_frame_max</a> = 0;<a name="l00168"></a>00168 <a class="code" href="zoom-region_8c.html#6032a974dfb2be4c27356966d93df24e">cps_max</a> = 0;<a name="l00169"></a>00169 <a class="code" href="zoom-region_8c.html#ba35d4b55cc5de2e69c9bfc26e8f60c7">nrr_max</a> = 0;<a name="l00170"></a>00170 <a class="code" href="zoom-region_8c.html#27e04bad95d3c0e260e2f8a8acdee6c7">update_nrr_max</a> = 0;<a name="l00171"></a>00171 <a class="code" href="magnifier_8h.html#46b757b00d8b7930d1da9f08206efdc7">mag_timing</a>.<a class="code" href="structtiming.html#e67bd50895f8db28632f4c5c60ad23de">num_scale_samples</a> = 0;<a name="l00172"></a>00172 <a class="code" href="magnifier_8h.html#46b757b00d8b7930d1da9f08206efdc7">mag_timing</a>.<a class="code" href="structtiming.html#442cbbe347ea611e5d27cff62b63768f">num_idle_samples</a> = 0;<a name="l00173"></a>00173 <a class="code" href="magnifier_8h.html#46b757b00d8b7930d1da9f08206efdc7">mag_timing</a>.<a class="code" href="structtiming.html#9e0bbc07e75ab0cce6307fe03f145af9">num_frame_samples</a> = 0;<a name="l00174"></a>00174 <a class="code" href="magnifier_8h.html#46b757b00d8b7930d1da9f08206efdc7">mag_timing</a>.<a class="code" href="structtiming.html#7663fa9a147f16eaacfead58199be9b2">num_line_samples</a> = 0;<a name="l00175"></a>00175 <a class="code" href="magnifier_8h.html#46b757b00d8b7930d1da9f08206efdc7">mag_timing</a>.<a class="code" href="structtiming.html#a4b1f9e99037f27caddc5bdc63df9337">scale_total</a> = 0;<a name="l00176"></a>00176 <a class="code" href="magnifier_8h.html#46b757b00d8b7930d1da9f08206efdc7">mag_timing</a>.<a class="code" href="structtiming.html#4e0299775a05b84adc610e7fd753c19e">idle_total</a> = 0;<a name="l00177"></a>00177 <a class="code" href="magnifier_8h.html#46b757b00d8b7930d1da9f08206efdc7">mag_timing</a>.<a class="code" href="structtiming.html#9185371aab48747229524e59b1f60827">frame_total</a> = 0;<a name="l00178"></a>00178 <a class="code" href="magnifier_8h.html#46b757b00d8b7930d1da9f08206efdc7">mag_timing</a>.<a class="code" href="structtiming.html#1b3bc2c92b70fee0c3b65ecd419314ba">update_pixels_total</a> = 0;<a name="l00179"></a>00179 <a class="code" href="magnifier_8h.html#46b757b00d8b7930d1da9f08206efdc7">mag_timing</a>.<a class="code" href="structtiming.html#1b3bc2c92b70fee0c3b65ecd419314ba">update_pixels_total</a> = 0;<a name="l00180"></a>00180 <a class="code" href="magnifier_8h.html#46b757b00d8b7930d1da9f08206efdc7">mag_timing</a>.<a class="code" href="structtiming.html#f82178bcc581d99f6908ff8bc5018019">dx_total</a> = 0;<a name="l00181"></a>00181 <a class="code" href="magnifier_8h.html#46b757b00d8b7930d1da9f08206efdc7">mag_timing</a>.<a class="code" href="structtiming.html#d1852307007cdd73bd8c5064ef915a8f">dy_total</a> = 0;<a name="l00182"></a>00182 <a class="code" href="magnifier_8h.html#46b757b00d8b7930d1da9f08206efdc7">mag_timing</a>.<a class="code" href="structtiming.html#4a71dff512d4a2826d02dc821b5b804d">last_frame_val</a> = 0;<a name="l00183"></a>00183 <a class="code" href="magnifier_8h.html#46b757b00d8b7930d1da9f08206efdc7">mag_timing</a>.<a class="code" href="structtiming.html#1ad8f471fda3800c5a4fc3b8a79ce318">last_dy</a> = 0;<a name="l00184"></a>00184 g_timer_start (<a class="code" href="magnifier_8h.html#46b757b00d8b7930d1da9f08206efdc7">mag_timing</a>.<a class="code" href="structtiming.html#1b1f0b6bf795529b8a7ba62e239e2906">process</a>);<a name="l00185"></a>00185 }<a name="l00186"></a>00186 <a name="l00189"></a>00189 <span class="preprocessor">#undef DEBUG</span><a name="l00190"></a>00190 <span class="preprocessor"></span><span class="preprocessor">#ifdef DEBUG</span><a name="l00191"></a>00191 <span class="preprocessor"></span><span class="preprocessor">#define DEBUG_RECT(a, b) _debug_announce_rect (a, b)</span><a name="l00192"></a>00192 <span class="preprocessor"></span><span class="preprocessor">#else</span><a name="l00193"></a><a class="code" href="zoom-region_8c.html#fd75412a9e5fbefb4852b72f4725f53a">00193</a> <span class="preprocessor"></span><span class="preprocessor">#define DEBUG_RECT(a, b) </span><a name="l00194"></a>00194 <span class="preprocessor"></span><span class="preprocessor">#endif</span><a name="l00195"></a>00195 <span class="preprocessor"></span><span class="keyword">static</span> <span class="keywordtype">void</span><a name="l00196"></a><a class="code" href="zoom-region_8c.html#5e542d1aba829a29d6cb0213048494f4">00196</a> <a class="code" href="zoom-region_8c.html#5e542d1aba829a29d6cb0213048494f4">_debug_announce_rect</a> (<span class="keywordtype">char</span> *msg, GdkRectangle rect)<a name="l00197"></a>00197 {<a name="l00198"></a>00198 fprintf (stderr, <span class="stringliteral">"%s: (%d,%d - %d,%d)\n"</span>,<a name="l00199"></a>00199 msg, rect.x, rect.y, rect.x + rect.width, rect.y + rect.height);<a name="l00200"></a>00200 }<a name="l00201"></a>00201 <a name="l00202"></a>00202 <span class="keyword">static</span> gboolean<a name="l00203"></a><a class="code" href="zoom-region_8c.html#fe0f09ff41d1ad18b66d0b1834a01cb3">00203</a> <a class="code" href="zoom-region_8c.html#fe0f09ff41d1ad18b66d0b1834a01cb3">_diff_pixbufs</a> (<span class="keyword">const</span> GdkPixbuf *a, <span class="keyword">const</span> GdkPixbuf *b)<a name="l00204"></a>00204 {<a name="l00205"></a>00205 <span class="keywordtype">long</span> i, j;<a name="l00206"></a>00206 <span class="keywordtype">int</span> bits_per_byte = 8; <span class="comment">/* always true? */</span><a name="l00207"></a>00207 guchar *pa = gdk_pixbuf_get_pixels (a);<a name="l00208"></a>00208 guchar *pb = gdk_pixbuf_get_pixels (b);<a name="l00209"></a>00209 guchar *cpa, *cpb;<a name="l00210"></a>00210 <span class="keywordtype">long</span> rsa = gdk_pixbuf_get_rowstride (a);<a name="l00211"></a>00211 <span class="keywordtype">long</span> rsb = gdk_pixbuf_get_rowstride (b);<a name="l00212"></a>00212 <span class="keywordtype">long</span> rowbytes = gdk_pixbuf_get_width (a) *<a name="l00213"></a>00213 gdk_pixbuf_get_bits_per_sample (a) *<a name="l00214"></a>00214 gdk_pixbuf_get_n_channels (a)/ bits_per_byte;<a name="l00215"></a>00215 <span class="keywordtype">long</span> n_rows = gdk_pixbuf_get_height (a);<a name="l00216"></a>00216 <a name="l00217"></a>00217 <span class="keywordflow">if</span> (gdk_pixbuf_get_height (b) != n_rows)<a name="l00218"></a>00218 <span class="keywordflow">return</span> TRUE;<a name="l00219"></a>00219 <span class="keywordflow">if</span> (gdk_pixbuf_get_width (b) != gdk_pixbuf_get_width (a))<a name="l00220"></a>00220 <span class="keywordflow">return</span> TRUE;<a name="l00221"></a>00221 <span class="keywordflow">for</span> (j = 0; j < n_rows; ++j)<a name="l00222"></a>00222 {<a name="l00223"></a>00223 cpa = pa + j * rsa;<a name="l00224"></a>00224 cpb = pb + j * rsb;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -