line rasterizer test
Revision | ccdfa922c3ea27a9e6fe98f483f460648c7c0f95 (tree) |
---|---|
Time | 2011-02-06 21:53:27 |
Author | beru <berupon@gmai...> |
Commiter | beru |
revised
@@ -24,27 +24,49 @@ gl::LineDrawer8_Nelson<float> lineDrawer_Nelson; | ||
24 | 24 | void renderLines(gl::IBufferLineDrawer<float, uint8_t>& ld, float x) |
25 | 25 | { |
26 | 26 | ld.SetBuffer(&buff); |
27 | - for (int i=0; i<20; ++i) { | |
28 | - ld.DrawLine(220, x, 10+i*20, x+100, 20+i*50); | |
27 | + float offset = 0; | |
28 | + for (int s=0; s<16; ++s) { | |
29 | + int slide = s * 120; | |
30 | + int ei = 25; | |
31 | + for (int i=0; i<ei; ++i) { | |
32 | + int y = 30 + 40 * i; | |
33 | + ld.DrawLine( | |
34 | + 220, | |
35 | + x+slide, y, | |
36 | + x+100+slide, y+offset | |
37 | + ); | |
38 | + | |
39 | + TCHAR str[32]; | |
40 | + RECT rec; | |
41 | + rec.left = x + slide; | |
42 | + rec.right = rec.left + 100; | |
43 | + rec.top = y - 20; | |
44 | + rec.bottom = rec.top + 20; | |
45 | + _stprintf(str, _T("%.1f"), offset); | |
46 | + ::DrawText(hMemDC, str, -1, &rec, DT_LEFT); | |
47 | + offset += 0.1; | |
48 | + } | |
29 | 49 | } |
30 | 50 | } |
31 | 51 | |
32 | 52 | void render(UINT vk) |
33 | 53 | { |
54 | + ::SetBkMode(hMemDC, TRANSPARENT); | |
55 | + ::SetTextColor(hMemDC, RGB(255,255,255)); | |
34 | 56 | gl::Buffer2D_Fill<uint8_t>(buff, 0); |
35 | 57 | // buff.SetPixel(100, 220, 0xff); |
36 | 58 | switch (vk) { |
37 | 59 | case 'B': |
38 | - renderLines(lineDrawer_Bresenham, 30); | |
60 | + renderLines(lineDrawer_Bresenham, 10); | |
39 | 61 | break; |
40 | 62 | case 'D': |
41 | - renderLines(lineDrawer_DDA, 30); | |
63 | + renderLines(lineDrawer_DDA, 10); | |
42 | 64 | break; |
43 | 65 | case 'W': |
44 | - renderLines(lineDrawer_Wu, 30); | |
66 | + renderLines(lineDrawer_Wu, 10); | |
45 | 67 | break; |
46 | 68 | case 'N': |
47 | - renderLines(lineDrawer_Nelson, 30); | |
69 | + renderLines(lineDrawer_Nelson, 10); | |
48 | 70 | } |
49 | 71 | } |
50 | 72 |