Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
苍蓝
ygopro
Commits
81f20984
Commit
81f20984
authored
Aug 10, 2017
by
mercury233
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://github.com/Fluorohydride/ygopro
into mac-test
parents
8705e6b4
06ea1af8
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
112 additions
and
108 deletions
+112
-108
gframe/CGUITTFont.cpp
gframe/CGUITTFont.cpp
+26
-20
gframe/CGUITTFont.h
gframe/CGUITTFont.h
+3
-3
gframe/config.h
gframe/config.h
+80
-80
gframe/deck_con.cpp
gframe/deck_con.cpp
+1
-5
strings.conf
strings.conf
+2
-0
No files found.
gframe/CGUITTFont.cpp
View file @
81f20984
...
...
@@ -230,7 +230,7 @@ CGUITTFont* CGUITTFont::create(IrrlichtDevice *device, const io::path& filename,
//! Constructor.
CGUITTFont
::
CGUITTFont
(
IGUIEnvironment
*
env
)
:
use_monochrome
(
false
),
use_transparency
(
true
),
use_hinting
(
true
),
use_auto_hinting
(
true
),
batch_load_size
(
1
),
Device
(
0
),
Environment
(
env
),
Driver
(
0
),
GlobalKerningWidth
(
0
),
GlobalKerningHeight
(
0
)
{
batch_load_size
(
1
),
Device
(
0
),
Environment
(
env
),
Driver
(
0
),
GlobalKerningWidth
(
0
),
GlobalKerningHeight
(
0
)
,
supposed_line_height
(
0
)
{
#ifdef _DEBUG
setDebugName
(
"CGUITTFont"
);
#endif
...
...
@@ -345,6 +345,24 @@ bool CGUITTFont::load(const io::path& filename, const u32 size, const bool antia
getGlyphIndexByChar
((
uchar32_t
)
0
);
batch_load_size
=
old_size
;
// Calculate the supposed line height of this font (of this size) --
// Not using FT_SizeMetric::ascender or height, but actually by testing some of the glyphs,
// to see what should give a reasonable not cluttered line height.
// The ascender or height info may as well just be arbitrary ones.
// Get the maximum font height. Unfortunately, we have to do this hack as
// Irrlicht will draw things wrong. In FreeType, the font size is the
// maximum size for a single glyph, but that glyph may hang "under" the
// draw line, increasing the total font height to beyond the set size.
// Irrlicht does not understand this concept when drawing fonts. Also, I
// add +1 to give it a 1 pixel blank border. This makes things like
// tooltips look nicer.
s32
test1
=
getHeightFromCharacter
((
uchar32_t
)
'g'
)
+
1
;
s32
test2
=
getHeightFromCharacter
((
uchar32_t
)
'j'
)
+
1
;
s32
test3
=
getHeightFromCharacter
((
uchar32_t
)
0x55B5
)
+
1
;
supposed_line_height
=
core
::
max_
(
test1
,
core
::
max_
(
test2
,
test3
));
return
true
;
}
...
...
@@ -443,8 +461,8 @@ CGUITTGlyphPage* CGUITTFont::createGlyphPage(const u8& pixel_mode) {
if
(
page_texture_size
.
Width
>
max_texture_size
.
Width
||
page_texture_size
.
Height
>
max_texture_size
.
Height
)
page_texture_size
=
max_texture_size
;
page
->
texture_size
=
page_texture_size
;
page
->
pixel_mode
=
pixel_mode
;
page
->
texture_size
=
page_texture_size
;
page
->
pixel_mode
=
pixel_mode
;
if
(
page
)
{
// Determine the number of glyph slots on the page and add it to the list of pages.
...
...
@@ -521,7 +539,7 @@ void CGUITTFont::draw(const core::stringw& text, const core::rect<s32>& position
if
(
lineBreak
)
{
previousChar
=
0
;
offset
.
Y
+=
font_metrics
.
ascender
/
64
;
offset
.
Y
+=
supposed_line_height
;
//
font_metrics.ascender / 64;
offset
.
X
=
position
.
UpperLeftCorner
.
X
;
if
(
hcenter
)
...
...
@@ -576,20 +594,8 @@ core::dimension2d<u32> CGUITTFont::getDimension(const wchar_t* text) const {
}
core
::
dimension2d
<
u32
>
CGUITTFont
::
getDimension
(
const
core
::
ustring
&
text
)
const
{
// Get the maximum font height. Unfortunately, we have to do this hack as
// Irrlicht will draw things wrong. In FreeType, the font size is the
// maximum size for a single glyph, but that glyph may hang "under" the
// draw line, increasing the total font height to beyond the set size.
// Irrlicht does not understand this concept when drawing fonts. Also, I
// add +1 to give it a 1 pixel blank border. This makes things like
// tooltips look nicer.
s32
test1
=
getHeightFromCharacter
((
uchar32_t
)
'g'
)
+
1
;
s32
test2
=
getHeightFromCharacter
((
uchar32_t
)
'j'
)
+
1
;
s32
test3
=
getHeightFromCharacter
((
uchar32_t
)
'_'
)
+
1
;
s32
max_font_height
=
core
::
max_
(
test1
,
core
::
max_
(
test2
,
test3
));
core
::
dimension2d
<
u32
>
text_dimension
(
0
,
max_font_height
);
core
::
dimension2d
<
u32
>
line
(
0
,
max_font_height
);
core
::
dimension2d
<
u32
>
text_dimension
(
0
,
supposed_line_height
);
core
::
dimension2d
<
u32
>
line
(
0
,
supposed_line_height
);
uchar32_t
previousChar
=
0
;
core
::
ustring
::
const_iterator
iter
=
text
.
begin
();
...
...
@@ -618,7 +624,7 @@ core::dimension2d<u32> CGUITTFont::getDimension(const core::ustring& text) const
if
(
text_dimension
.
Width
<
line
.
Width
)
text_dimension
.
Width
=
line
.
Width
;
line
.
Width
=
0
;
line
.
Height
=
max_font
_height
;
line
.
Height
=
supposed_line
_height
;
continue
;
}
line
.
Width
+=
getWidthFromCharacter
(
p
);
...
...
@@ -937,7 +943,7 @@ core::array<scene::ISceneNode*> CGUITTFont::addTextSceneNode(const wchar_t* text
if
(
line_break
)
{
previous_char
=
0
;
offset
.
Y
-=
tt_face
->
size
->
metrics
.
ascender
/
64
;
offset
.
Y
-=
supposed_line_height
;
//
tt_face->size->metrics.ascender / 64;
offset
.
X
=
start_point
.
X
;
if
(
center
)
offset
.
X
+=
(
text_size
.
Width
-
getDimensionUntilEndOfLine
(
text
+
1
).
Width
)
>>
1
;
...
...
gframe/CGUITTFont.h
View file @
81f20984
...
...
@@ -143,12 +143,11 @@ public:
void
updateTexture
()
{
if
(
!
dirty
)
return
;
if
(
!
texture
)
{
if
(
!
texture
)
{
if
(
!
createPageTexture
(
pixel_mode
,
texture_size
))
// TODO: add error message?
return
;
}
}
void
*
ptr
=
texture
->
lock
();
video
::
ECOLOR_FORMAT
format
=
texture
->
getColorFormat
();
...
...
@@ -378,6 +377,7 @@ private:
s32
GlobalKerningWidth
;
s32
GlobalKerningHeight
;
s32
supposed_line_height
;
core
::
ustring
Invisible
;
};
...
...
gframe/config.h
View file @
81f20984
#ifndef __CONFIG_H
#define __CONFIG_H
#pragma once
#define _IRR_STATIC_LIB_
#define IRR_COMPILE_WITH_DX9_DEV_PACK
#ifdef _WIN32
#include <WinSock2.h>
#include <windows.h>
#include <ws2tcpip.h>
#ifdef _MSC_VER
#define myswprintf _swprintf
#else
#define myswprintf swprintf
#endif
#define socklen_t int
#else //_WIN32
#include <errno.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <unistd.h>
#ifndef __CONFIG_H
#define __CONFIG_H
#pragma once
#define _IRR_STATIC_LIB_
#define IRR_COMPILE_WITH_DX9_DEV_PACK
#ifdef _WIN32
#include <WinSock2.h>
#include <windows.h>
#include <ws2tcpip.h>
#ifdef _MSC_VER
#define myswprintf _swprintf
#else
#define myswprintf swprintf
#endif
#define socklen_t int
#else //_WIN32
#include <errno.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <unistd.h>
#include <locale.h>
#define SD_BOTH 2
#define SOCKET int
#define closesocket close
#define INVALID_SOCKET -1
#define SOCKET_ERROR -1
#define SOCKADDR_IN sockaddr_in
#define SOCKADDR sockaddr
#define SOCKET_ERRNO() (errno)
#include <wchar.h>
#define myswprintf(buf, fmt, ...) swprintf(buf, 4096, fmt, ##__VA_ARGS__)
inline
int
_wtoi
(
const
wchar_t
*
s
)
{
wchar_t
*
endptr
;
return
(
int
)
wcstol
(
s
,
&
endptr
,
10
);
}
#endif
#define SD_BOTH 2
#define SOCKET int
#define closesocket close
#define INVALID_SOCKET -1
#define SOCKET_ERROR -1
#define SOCKADDR_IN sockaddr_in
#define SOCKADDR sockaddr
#define SOCKET_ERRNO() (errno)
#include <wchar.h>
#define myswprintf(buf, fmt, ...) swprintf(buf, 4096, fmt, ##__VA_ARGS__)
inline
int
_wtoi
(
const
wchar_t
*
s
)
{
wchar_t
*
endptr
;
return
(
int
)
wcstol
(
s
,
&
endptr
,
10
);
}
#endif
#include <irrlicht.h>
#ifdef __APPLE__
#include <OpenGL/gl.h>
#ifdef __APPLE__
#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#else
#include <GL/gl.h>
#include <GL/gl.h>
#include <GL/glu.h>
#endif
#include "CGUITTFont.h"
#include "CGUIImageButton.h"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#include <time.h>
#include "bufferio.h"
#include "mymutex.h"
#include "mysignal.h"
#include "mythread.h"
#include "../ocgcore/ocgapi.h"
#include "../ocgcore/card.h"
using
namespace
irr
;
using
namespace
core
;
using
namespace
scene
;
using
namespace
video
;
using
namespace
io
;
using
namespace
gui
;
extern
const
unsigned
short
PRO_VERSION
;
extern
int
enable_log
;
extern
bool
exit_on_return
;
extern
bool
open_file
;
extern
wchar_t
open_file_name
[
256
];
#endif
#endif
#include "CGUITTFont.h"
#include "CGUIImageButton.h"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#include <time.h>
#include "bufferio.h"
#include "mymutex.h"
#include "mysignal.h"
#include "mythread.h"
#include "../ocgcore/ocgapi.h"
#include "../ocgcore/card.h"
using
namespace
irr
;
using
namespace
core
;
using
namespace
scene
;
using
namespace
video
;
using
namespace
io
;
using
namespace
gui
;
extern
const
unsigned
short
PRO_VERSION
;
extern
int
enable_log
;
extern
bool
exit_on_return
;
extern
bool
open_file
;
extern
wchar_t
open_file_name
[
256
];
#endif
gframe/deck_con.cpp
View file @
81f20984
...
...
@@ -224,11 +224,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
mainGame
->
env
->
addMessageBox
(
L""
,
dataManager
.
GetSysString
(
1410
));
break
;
}
// clear imgCard
mainGame
->
imgCard
->
setImage
(
imageManager
.
tCover
[
0
]);
// send result to server
mainGame
->
imgCard
->
setImage
(
imageManager
.
tCover
[
0
]);
char
deckbuf
[
1024
];
char
*
pdeck
=
deckbuf
;
BufferIO
::
WriteInt32
(
pdeck
,
deckManager
.
current_deck
.
main
.
size
()
+
deckManager
.
current_deck
.
extra
.
size
());
...
...
strings.conf
View file @
81f20984
...
...
@@ -843,3 +843,5 @@
!
setname
0
x103
幻变骚灵 オルターガイスト
!
setname
0
x104
机怪虫 クローラー
!
setname
0
x105
玄化 メタファイズ
!
setname
0
x106
复仇死灵
Vendread
!
setname
0
x107
F
.
A
.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment