本文整理汇总了C++中editor_display类的典型用法代码示例。如果您正苦于以下问题:C++ editor_display类的具体用法?C++ editor_display怎么用?C++ editor_display使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了editor_display类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: set_mouse_overlay
void mouse_action_starting_position::set_mouse_overlay(editor_display& disp)
{
surface image = image::get_image("editor/tool-overlay-starting-position.png");
Uint8 alpha = 196;
int size = image->w;
int zoom = static_cast<int>(size * disp.get_zoom_factor());
// Add the alpha factor and scale the image
image = scale_surface(adjust_surface_alpha(image, alpha), zoom, zoom);
disp.set_mouseover_hex_overlay(image);
}
开发者ID:Yossarian,项目名称:WesnothAddonServer,代码行数:11,代码来源:mouse_action.cpp
示例2: set_terrain_mouse_overlay
void mouse_action::set_terrain_mouse_overlay(editor_display& disp, const t_translation::t_terrain & fg,
const t_translation::t_terrain & bg)
{
surface image_fg(image::get_image(disp.get_map().get_terrain_info(fg).editor_image()));
surface image_bg(image::get_image(disp.get_map().get_terrain_info(bg).editor_image()));
if (image_fg == nullptr || image_bg == nullptr) {
ERR_ED << "Missing terrain icon" << std::endl;
disp.set_mouseover_hex_overlay(nullptr);
return;
}
// Create a transparent surface of the right size.
surface image = create_neutral_surface(image_fg->w, image_fg->h);
// For efficiency the size of the tile is cached.
// We assume all tiles are of the same size.
// The zoom factor can change, so it's not cached.
// NOTE: when zooming and not moving the mouse, there are glitches.
// Since the optimal alpha factor is unknown, it has to be calculated
// on the fly, and caching the surfaces makes no sense yet.
static const fixed_t alpha = 196;
static const int size = image_fg->w;
static const int half_size = size / 2;
static const int quarter_size = size / 4;
static const int offset = 2;
static const int new_size = half_size - 2;
// Blit left side
image_fg = scale_surface(image_fg, new_size, new_size);
SDL_Rect rcDestLeft = sdl::create_rect(offset, quarter_size, 0, 0);
blit_surface ( image_fg, nullptr, image, &rcDestLeft );
// Blit right side
image_bg = scale_surface(image_bg, new_size, new_size);
SDL_Rect rcDestRight = sdl::create_rect(half_size, quarter_size, 0, 0);
blit_surface ( image_bg, nullptr, image, &rcDestRight );
//apply mask so the overlay is contained within the mouseover hex
image = mask_surface(image, image::get_hexmask());
// Add the alpha factor
image = adjust_surface_alpha(image, alpha);
// scale the image
const int zoom = disp.hex_size();
if (zoom != game_config::tile_size) {
image = scale_surface(image, zoom, zoom);
}
// Set as mouseover
disp.set_mouseover_hex_overlay(image);
}
开发者ID:CliffsDover,项目名称:wesnoth,代码行数:53,代码来源:mouse_action.cpp
示例3: set_terrain_mouse_overlay
void mouse_action::set_terrain_mouse_overlay(editor_display& disp, t_translation::t_terrain fg,
t_translation::t_terrain bg)
{
surface image_fg(image::get_image("terrain/"
+ disp.get_map().get_terrain_info(fg).editor_image() + ".png"));
surface image_bg(image::get_image("terrain/"
+ disp.get_map().get_terrain_info(bg).editor_image() + ".png"));
if (image_fg == NULL || image_bg == NULL) {
ERR_ED << "Missing terrain icon\n";
disp.set_mouseover_hex_overlay(NULL);
return;
}
// Create a transparent surface of the right size.
surface image = create_compatible_surface(image_fg, image_fg->w, image_fg->h);
SDL_FillRect(image,NULL,SDL_MapRGBA(image->format,0,0,0, 0));
// For efficiency the size of the tile is cached.
// We assume all tiles are of the same size.
// The zoom factor can change, so it's not cached.
// NOTE: when zooming and not moving the mouse, there are glitches.
// Since the optimal alpha factor is unknown, it has to be calculated
// on the fly, and caching the surfaces makes no sense yet.
static const Uint8 alpha = 196;
static const int size = image_fg->w;
static const int half_size = size / 2;
static const int quarter_size = size / 4;
static const int offset = 2;
static const int new_size = half_size - 2;
const int zoom = static_cast<int>(size * disp.get_zoom_factor());
// Blit left side
image_fg = scale_surface(image_fg, new_size, new_size);
SDL_Rect rcDestLeft = { offset, quarter_size, 0, 0 };
SDL_BlitSurface ( image_fg, NULL, image, &rcDestLeft );
// Blit left side
image_bg = scale_surface(image_bg, new_size, new_size);
SDL_Rect rcDestRight = { half_size, quarter_size, 0, 0 };
SDL_BlitSurface ( image_bg, NULL, image, &rcDestRight );
//apply mask so the overlay is contained within the mouseover hex
surface mask(image::get_image("terrain/alphamask.png"));
image = mask_surface(image, mask);
// Add the alpha factor and scale the image
image = scale_surface(adjust_surface_alpha(image, alpha), zoom, zoom);
// Set as mouseover
disp.set_mouseover_hex_overlay(image);
}
开发者ID:Yossarian,项目名称:WesnothAddonServer,代码行数:52,代码来源:mouse_action.cpp
示例4: affected_hexes
std::set<map_location> mouse_action_select::affected_hexes(
editor_display& disp, const map_location& hex)
{
if (has_shift_modifier()) {
return disp.map().get_contiguous_terrain_tiles(hex);
} else {
return brush_drag_mouse_action::affected_hexes(disp, hex);
}
}
开发者ID:paezao,项目名称:wesnoth,代码行数:9,代码来源:mouse_action_select.cpp
示例5: set_mouse_overlay
void mouse_action_village::set_mouse_overlay(editor_display& disp)
{
surface image60 = image::get_image("icons/action/editor-tool-village_60.png");
//TODO avoid hardcoded hex field size
surface image = create_neutral_surface(72,72);
SDL_Rect r = sdl::create_rect(6, 6, 0, 0);
blit_surface(image60, NULL, image, &r);
Uint8 alpha = 196;
int size = image->w;
int zoom = static_cast<int>(size * disp.get_zoom_factor());
// Add the alpha factor and scale the image
image = scale_surface(adjust_surface_alpha(image, alpha), zoom, zoom);
disp.set_mouseover_hex_overlay(image);
}
开发者ID:8680-wesnoth,项目名称:wesnoth-fork-old,代码行数:18,代码来源:mouse_action_village.cpp
示例6: set_unit_mouse_overlay
void mouse_action_unit::set_unit_mouse_overlay(editor_display& disp, const unit_type& u)
{
std::stringstream filename;
filename << u.image() << "~RC(" << u.flag_rgb() << '>'
<< team::get_side_color_index(disp.viewing_side()) << ')';
surface image(image::get_image(filename.str()));
Uint8 alpha = 196;
//TODO don't hardcode
int size = 72;
//int size = image->w;
int zoom = static_cast<int>(size * disp.get_zoom_factor());
// Add the alpha factor and scale the image
image = scale_surface(adjust_surface_alpha(image, alpha), zoom, zoom);
disp.set_mouseover_hex_overlay(image);
}
开发者ID:8680-wesnoth,项目名称:wesnoth-fork-old,代码行数:18,代码来源:mouse_action_unit.cpp
示例7:
palette_manager::palette_manager(editor_display& gui, const config& cfg
, mouse_action** active_mouse_action)
: gui::widget(gui.video()),
gui_(gui),
palette_start_(0),
mouse_action_(active_mouse_action),
terrain_palette_(new terrain_palette(gui, cfg, active_mouse_action)),
unit_palette_(new unit_palette(gui, cfg, active_mouse_action)),
empty_palette_(new empty_palette(gui)),
item_palette_(new item_palette(gui, cfg, active_mouse_action))
{
unit_palette_->setup(cfg);
terrain_palette_->setup(cfg);
item_palette_->setup(cfg);
}
开发者ID:Martin9295,项目名称:wesnoth,代码行数:15,代码来源:palette_manager.cpp
示例8:
palette_manager::palette_manager(editor_display& gui, const config& cfg
, editor_toolkit& toolkit)
: gui::widget(gui.video()),
gui_(gui),
palette_start_(0),
toolkit_(toolkit),
terrain_palette_(new terrain_palette(gui, cfg, toolkit)),
unit_palette_(new unit_palette(gui, cfg, toolkit)),
empty_palette_(new empty_palette(gui)),
item_palette_(new item_palette(gui, cfg, toolkit))
, location_palette_(new location_palette(gui, cfg, toolkit))
{
unit_palette_->setup(cfg);
terrain_palette_->setup(cfg);
item_palette_->setup(cfg);
}
开发者ID:aquileia,项目名称:wesnoth,代码行数:16,代码来源:palette_manager.cpp
示例9: move
void mouse_action_item::move(editor_display& disp, const map_location& hex)
{
if (hex != previous_move_hex_) {
update_brush_highlights(disp, hex);
std::set<map_location> adjacent_set;
map_location adjacent[6];
get_adjacent_tiles(previous_move_hex_, adjacent);
for (int i = 0; i < 6; i++)
adjacent_set.insert(adjacent[i]);
disp.invalidate(adjacent_set);
previous_move_hex_ = hex;
// const item_map& items = disp.get_items();
// const item_map::const_item_iterator item_it = items.find(hex);
// if (item_it != items.end()) {
//
// disp.set_mouseover_hex_overlay(nullptr);
//
// SDL_Rect rect;
// rect.x = disp.get_location_x(hex);
// rect.y = disp.get_location_y(hex);
// rect.h = disp.hex_size();
// rect.w = disp.hex_size();
// std::stringstream str;
// str << N_("ID: ") << item_it->id() << "\n"
// << N_("Name: ") << item_it->name() << "\n"
// << N_("Type: ") << item_it->type_name();
// tooltips::clear_tooltips();
// tooltips::add_tooltip(rect, str.str());
// }
// else {
// set_mouse_overlay(disp);
// }
}
}
开发者ID:aquileia,项目名称:wesnoth,代码行数:39,代码来源:mouse_action_item.cpp
示例10: update_brush_highlights
void mouse_action::update_brush_highlights(editor_display& disp, const map_location& hex)
{
disp.set_brush_locs(affected_hexes(disp, hex));
}
开发者ID:Yossarian,项目名称:WesnothAddonServer,代码行数:4,代码来源:mouse_action.cpp
示例11:
std::set<map_location> mouse_action_fill::affected_hexes(
editor_display& disp, const map_location& hex)
{
return disp.map().get_contigious_terrain_tiles(hex);
}
开发者ID:Yossarian,项目名称:WesnothAddonServer,代码行数:5,代码来源:mouse_action.cpp
注:本文中的editor_display类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论