HRESULT InitGeometry() { ////////////////////////////////////////////////////////////////////////// // Create layer ////////////////////////////////////////////////////////////////////////// CLayer* _layer; scom_new<CLayer>(&_layer); _layer->FinalConstruct(pRenderer); g_layer1 = _layer; scom_new<CLayer>(&_layer); _layer->FinalConstruct(pRenderer); g_layer2 = _layer; size_t ncommands; PathCommand *commands; size_t npoints; VML::Vector2 *points; ////////////////////////////////////////////////////////////////////////// // Border ////////////////////////////////////////////////////////////////////////// PathCommand cmds0[] = { PC_MOVE, PC_BEZIER_2, PC_LINE, PC_BEZIER_2, PC_LINE, PC_BEZIER_2, PC_LINE, PC_BEZIER_2, PC_CLOSE, }; ncommands = 9; commands = cmds0; float w = 120.0f; float h = 70.0f; float r = 10.0f; VML::Vector2 points0[] = { VML::Vector2(w - r, h), VML::Vector2(w, h), VML::Vector2(w, h - r), VML::Vector2(w, -h + r), VML::Vector2(w, -h), VML::Vector2(w - r, -h), VML::Vector2(-w + r,-h), VML::Vector2(-w, -h), VML::Vector2(-w, -h + r), VML::Vector2(-w, h - r), VML::Vector2(-w, h), VML::Vector2(-w + r, h), }; npoints = 12; points = points0; IPath* path = g_layer1->AddNewComponent(); IPathBuffer* buff = path->getPathBuffer(); buff->setPoints(points, npoints); buff->setCommands(commands, ncommands); path->setProperty(PP_FILL_STYLE, FS_GRAD_Y); path->setProperty(PP_FILL_COLOR1, 0xff000000); path->setProperty(PP_FILL_COLOR2, 0xff000000); path->setProperty(PP_STROKE_STYLE, SS_NONE); path->setProperty(PP_STROKE_COLOR1, 0xff000000); path->setProperty(PP_STROKE_COLOR2, 0xff000000); path->setStrokeWidth(2.0f); ////////////////////////////////////////////////////////////////////////// // Text ////////////////////////////////////////////////////////////////////////// PathCommand cmds2[] = { PC_MOVE, PC_LINE, PC_LINE, PC_LINE, PC_CLOSE, PC_MOVE, PC_LINE, PC_LINE, PC_LINE, PC_CLOSE, PC_MOVE, PC_LINE, PC_LINE, PC_LINE, PC_CLOSE, }; ncommands = 15; commands = cmds2; w = 30.0f; h = 20.0f; r = 5.0f; VML::Vector2 points2[] = { VML::Vector2(-w, h), VML::Vector2(w, h), VML::Vector2(w, -h), VML::Vector2(-w, -h), VML::Vector2(-w + r, h - r), VML::Vector2(w - r, h - r), VML::Vector2(w - r, -h + r), VML::Vector2(-w + r, -h + r), VML::Vector2(-w + r*3, h - r*3), VML::Vector2(w - r*3, h - r*3), VML::Vector2(w - r*3, -h + r*3), VML::Vector2(-w + r*3, -h + r*3), }; npoints = 12; points = points2; path = g_layer2->AddNewComponent(); buff = path->getPathBuffer(); buff->setPoints(points, npoints); buff->setCommands(commands, ncommands); path->setProperty(PP_FILL_STYLE, FS_SOLID); path->setProperty(PP_FILL_COLOR1, 0xa06060ff); path->setProperty(PP_FILL_COLOR2, 0xa06060ff); path->setProperty(PP_STROKE_STYLE, SS_LINE_SOLID); path->setProperty(PP_STROKE_COLOR1, 0xf060c0ff); path->setProperty(PP_STROKE_COLOR2, 0xffff0000); path->setStrokeWidth(2.0f); ////////////////////////////////////////////////////////////////////////// // Border ////////////////////////////////////////////////////////////////////////// PathCommand cmds1[] = { PC_MOVE, PC_BEZIER_2, PC_LINE, PC_BEZIER_2, PC_LINE, PC_BEZIER_2, PC_LINE, PC_BEZIER_2, PC_CLOSE, PC_MOVE, PC_LINE, PC_LINE, PC_LINE, PC_CLOSE, }; ncommands = 14; commands = cmds1; w = 100.0f; h = 50.0f; r = 10.0f; VML::Vector2 points1[] = { VML::Vector2(w - r, h), VML::Vector2(w, h), VML::Vector2(w, h - r), VML::Vector2(w, -h + r), VML::Vector2(w, -h), VML::Vector2(w - r, -h), VML::Vector2(-w + r, -h), VML::Vector2(-w, -h), VML::Vector2(-w, -h + r), VML::Vector2(-w, h - r), VML::Vector2(-w, h), VML::Vector2(-w + r, h), VML::Vector2(-30.0f, 20.0f), VML::Vector2(30.0f, 20.0f), VML::Vector2(30.0f, -20.0f), VML::Vector2(-30.0f, -20.0f), }; npoints = 16; points = points1; path = g_layer2->AddNewComponent(); buff = path->getPathBuffer(); buff->setPoints(points, npoints); buff->setCommands(commands, ncommands); path->setProperty(PP_FILL_STYLE, FS_GRAD_Y); path->setProperty(PP_FILL_COLOR1, 0x50c8c8c8); path->setProperty(PP_FILL_COLOR2, 0xfffafafa); path->setProperty(PP_STROKE_STYLE, SS_LINE_SOLID); path->setProperty(PP_STROKE_COLOR1, 0xff707070); path->setProperty(PP_STROKE_COLOR2, 0xffff0000); path->setStrokeWidth(2.0f); g_layer1->AddUser(); g_layer2->AddUser(); return S_OK; }