ultralight-ux / ultralight Goto Github PK
View Code? Open in Web Editor NEWLightweight, high-performance HTML renderer for game and app developers.
Home Page: https://ultralig.ht
Lightweight, high-performance HTML renderer for game and app developers.
Home Page: https://ultralig.ht
Is your feature request related to a problem? Please describe.
On relisten.net, we have a column-based interface that makes use of overflow-y: auto
. These currently do not scroll at all.
Describe the solution you'd like
I would like those content areas to scroll with the same smoothness as a whole page scroll.
Describe alternatives you've considered
None.
Additional context
We are using CSS Flexbox for layout and perhaps that is affecting it.
Is your feature request related to a problem? Please describe.
Once you download the SDK for Windows and try to build and run, there are a few things required that are not explicitly mentioned.
Describe the solution you'd like
Make a guide that explains clearly how to setup your environment in order to build and run the samples
This basically includes two things
Summarize the Issue
Failed to load project at 'ultralight-sdk-0.9-mac-x64/Browser.xcodeproj', incompatible project version.
Platform Info:
Implement a multi-threaded CPU-based driver that renders View to a pixel buffer.
Majority of work is already done, just need to rebuild a few static dependencies.
I was hoping to hop in and say hello somewhere.
Building from the VS solution, then running the browser demo gives the error 'api-ms-win-shcore-scaling-l1-1-1.dll is missing'.
sdk 0.9.1
VS2017 15.8.7
Win7 64bit latest updates
Handle CSS/SVG Filter Effects correctly in the renderer and shader code.
Sites are not rendering properly:
Log in Xcode:
objc[85844]: Class WebFileManagerDelegate is implemented in both /System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/WebCore.framework/Versions/A/WebCore (0x7fffb0b27f78) and /Users/alecgorge/Library/Developer/Xcode/DerivedData/Browser-aeadycjcfqoiryfaxrdbtykvqdbg/Build/Products/Debug/Browser.app/Contents/MacOS/Browser (0x10003bb78). One of the two will be used. Which one is undefined.
2018-08-10 09:31:07.061937-0700 Browser[85844:10322124] [DYMTLInitPlatform] platform initialization successful
2018-08-10 09:31:07.177535-0700 Browser[85844:10322041] Metal GPU Frame Capture Enabled
2018-08-10 09:31:07.177820-0700 Browser[85844:10322041] Metal API Validation Enabled
2018-08-10 09:31:07.515603-0700 Browser[85844:10322121] MessageTracer: Falling back to default whitelist
TODO: Image::loadPlatformResource missingImage
2018-08-10 09:32:05.649231-0700 Browser[85844:10322041] Texture ID 6 doesn't exist.
2018-08-10 09:32:05.649264-0700 Browser[85844:10322041] Texture ID 6 doesn't exist.
2018-08-10 09:32:05.649275-0700 Browser[85844:10322041] Texture ID 6 doesn't exist.
2018-08-10 09:32:05.649283-0700 Browser[85844:10322041] Texture ID 6 doesn't exist.
2018-08-10 09:32:05.649292-0700 Browser[85844:10322041] Texture ID 6 doesn't exist.
2018-08-10 09:32:05.649301-0700 Browser[85844:10322041] Texture ID 6 doesn't exist.
2018-08-10 09:32:05.649310-0700 Browser[85844:10322041] Texture ID 6 doesn't exist.
2018-08-10 09:32:05.649318-0700 Browser[85844:10322041] Texture ID 6 doesn't exist.
2018-08-10 09:32:05.649328-0700 Browser[85844:10322041] Texture ID 6 doesn't exist.
2018-08-10 09:32:05.649337-0700 Browser[85844:10322041] Texture ID 6 doesn't exist.
2018-08-10 09:32:05.649345-0700 Browser[85844:10322041] Texture ID 6 doesn't exist.
2018-08-10 09:32:05.649353-0700 Browser[85844:10322041] Texture ID 6 doesn't exist.
2018-08-10 09:32:05.649362-0700 Browser[85844:10322041] Texture ID 6 doesn't exist.
PathImpl::IsPointFilled NOTIMPLEMENTED()
PathImpl::IsPointFilled NOTIMPLEMENTED()
Steps to Reproduce
Open the browser test project and go to any site
Platform Info:
Do you guys have any plans to support mobile devices (iOS and Android)?
Adding support for WebSockets enables the ability to build real-time web applications that can run on the desktop. This is very useful if you have a frontend that gets data from a WebSocket based source.
In Browser project for macOS there are currently two bugs:
You can log JavaScript errors like this (in case anyone else goes searching):
Tab.cc:43
printf("%d (%d) [%d:%d] - %s: %s\n", source, level, line_number, column_number, source_id.utf8().data(), message.utf8().data());
From a suggestion by derefr on Hacker News:
> > with most memory being allocated by the JavaScriptCore VM
If I'm writing a green-field HTML5 app, and I don't derive any benefit from Javascript, is the interface between Ultralight and JavaScriptCore clean enough to just rip out the JS support altogether, replacing it with something simpler?
I'm picturing:
1. I embed Ultralight into a process that exposes a simple script-loading API, ala the one in JSCore;
2. I write HTML with no <script> elements, just elements with onclick/ontouch/etc. handler attrs, where these handlers just contain a UUID;
3. Ultralight passes the "script code" (i.e. the UUID) to my trivial script-loading API, which simply looks up a native handler based on the provided UUID, and returns its function pointer;
4. Ultralight holds onto that function pointer and treats it just like a regular thunkable Javascript handler function pointer.
In other words, all the "dynamism" of the HTML would be handled by native, static code in my compiled binary, with the only thing being set up at runtime being the binding of DOM elements to those known-at-compile-time native handlers. The QML/XAML/NIB approach.
Summarize the Issue
Samples provide do not compile with a function with return value does not compile
1>c:\users\robto\downloads\ultralight-master\ultralight-master\samples\browser\src\ui.cc(88): error C2593: 'operator =' is ambiguous
1> c:\users\robto\downloads\ultralight-master\ultralight-master\deps\framework\jshelpers.h(237): note: could be 'framework::JSPropertyValue &framework::JSPropertyValue::operator =(const framework::JSPropertyValue &)'
1> c:\users\robto\downloads\ultralight-master\ultralight-master\deps\framework\jshelpers.h(230): note: or 'framework::JSPropertyValue &framework::JSPropertyValue::operator =(const framework::JSCallbackWithRetval &)'
1> c:\users\robto\downloads\ultralight-master\ultralight-master\deps\framework\jshelpers.h(227): note: or 'framework::JSPropertyValue &framework::JSPropertyValue::operator =(const framework::JSCallback &)'
1> c:\users\robto\downloads\ultralight-master\ultralight-master\deps\framework\jshelpers.h(224): note: or 'framework::JSPropertyValue &framework::JSPropertyValue::operator =(const framework::JSValue &)'
1> c:\users\robto\downloads\ultralight-master\ultralight-master\samples\browser\src\ui.cc(88): note: while trying to match the argument list '(framework::JSPropertyValue, std::_Binder<std::_Unforced,const framework::JSValue (__thiscall UI::* )(const framework::JSObject &,const framework::JSArgs &),UI *const ,const std::_Ph<1> &,const std::_Ph<2> &>)'
Steps to Reproduce
add a callback with return value
Platform Info:
Begin basic C# bindings (pinvoke wrapper for both Ultralight API + Framework API). This ticket depends on: #15
.NET Controls (such as WebBrowser Control replacement) are planned after this.
Error:
marler8997@z620dev016:~/git/ultralight/build/samples/Browser$ ./Browser -h
GLFW Error: Requested OpenGL version 3.2, got version 3.0
Platform:
marler8997@z620dev016:~/git/ultralight/build/samples/Browser$ uname -a
Linux z620dev016 4.15.0-34-generic #37~16.04.1-Ubuntu SMP Tue Aug 28 10:44:06 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Summarize the Issue
If a page has an active setTimeout callback, after releasing the view object, Ultralight will crash (Somewhere in UltralightCore.dll, when calling ucrtbase.dll!_free_base()
, according to my debugger)
Steps to Reproduce
I have the following JavaScript file:
var counter = 0;
function setTitle() {
document.title = "Test page " + counter;
counter += 1;
setTimeout(setTitle, 1000);
}
setTitle();
When this script is loaded on the page, it will crash ultralight as soon as the view with that page on it is released.
Platform Info:
Should theoretically be possible to port Ultralight over to UWP since we have minimal reliance on WinAPI calls. Needs exploration.
hi there, I saw that you are talking about adding additional findings for other languages. Are there any plans for golang? If not, please feel free to just close this ticket off.
Summarize the Issue
passing arg to c++ function crashes
Steps to Reproduce
run sample browser app - click on address input move cursor to end of string ( or enter new url ) press enter.
void UI::OnRequestChangeURL(const JSObject& obj, const JSArgs& args) {
if (args.size() == 1) {
if (args[0].IsString() )
{
-> ultralight::String url = args[0];
if (!tabs_.empty()) {
auto& tab = tabs_[active_tab_id_];
tab->view()->LoadURL(url);
}
}
}
}
Platform Info:
Summarize the Issue
Linking of sample Browser.exe is not working
Steps to Reproduce
By simply build it in incompatible compiler to the libs delivered.
Platform Info:
E:\dane\ultralight-master\build>make
[ 55%] Built target glfw
[ 58%] Linking CXX executable Browser.exe
CMakeFiles\Browser.dir/objects.a(Browser.cc.obj):Browser.cc:(.text+0xef): undefi
ned reference to __imp__ZN10ultralight8Platform8instanceEv' CMakeFiles\Browser.dir/objects.a(Browser.cc.obj):Browser.cc:(.text+0x24a): undef ined reference to
__imp__ZN10ultralight8Renderer6CreateEv'
CMakeFiles\Browser.dir/objects.a(Browser.cc.obj):Browser.cc:(.text+0x412): undef
ined reference to __imp__ZN10ultralight8Platform8instanceEv' CMakeFiles\Browser.dir/objects.a(Browser.cc.obj):Browser.cc:(.text$_ZN10ultralig ht6ConfigC1Ev[_ZN10ultralight6ConfigC1Ev]+0x62): undefined reference to
imp
ZN10ultralight8String16C1EPKc'
CMakeFiles\Browser.dir/objects.a(Browser.cc.obj):Browser.cc:(.text$_ZN10ultralig
ht6ConfigC1Ev[_ZN10ultralight6ConfigC1Ev]+0x7d): undefined reference to `imp
ZN10ultralight8String16C1EPKc'
In the OpenGL driver at least, we modify several states (such as glUseProgram()
) that modify the current GL state after GPUDriver::DrawGeometry()
returns.
We should save / restore any modified GPU state for easier integration with existing GPU code.
Is your feature request related to a problem? Please describe.
I would like to use Ultralight for a webapp that plays music. We make use of the HTML5 audio tag and the WebAudio
classes themselves. I'd say HTML5 audio tag is higher priority but it'd be nice to have both.
Describe the solution you'd like
Describe alternatives you've considered
None? There's no way to play audio.
Additional context
Add any other context or screenshots about the feature request here.
Users sometimes need to embed render textures and other native elements inside their UI. Explore embedding these custom texture IDs via a custom <img>
tag.
Summarize the Issue
Instant crash when opening a website
Steps to Reproduce
When I try to open https://forecastcycles.com using the Browser
sample, the application crashes after the loading of the website ends.
Whereas while opening https://platform.forecastcycles.com which is a complex React app, the rendering is really good and the navigation goes on perfectly
Platform Info:
API currently defines a min/max which conflicts with Window's default defines. Rename these so there is no conflict.
The app framework on Windows currently only supports DirectX 11.1. A DX10 port should be created so we can target more GPUs and VMs (Parallels on Mac only supports DX10.1, see #19).
Expose the input method editor API so we can support Asian text input.
there is no static build option 👎
so why should we use this black box library ?
even sample browser app crashing randomly.
Current version of Overlay (0.9.1) have scale option in constructor but in real not have effect in code & render.
Not so critical, but better create 'issue' for not forget about it's.
Add support for complex text layout / rendering via Harfbuzz / ICU.
So far, the Ultralight binary and codebase has been minimized (woohoo! 25% the size of the typical Electron/CEF distributable!) but runtime memory usage has been neglected despite many opportunities to do so.
Reduce runtime memory usage to the absolute minimum up to the point that doing so would reduce performance (and even then, allow users to configure this memory vs. performance trade-off).
Summarize the Issue
The twitter link in the README.md links to a page that doesn't exist. Here's the link that I'm seeing: https://twitter.com/ultralight-ux
Steps to Reproduce
Open https://github.com/ultralight-ux/ultralight
Click on twitter link
See Twitter 404: "Sorry, that page doesn’t exist!"
Platform Info:
Summarize the Issue
View component does not support transparent background.
Steps to Reproduce
Create not full-screen View & Load page that contain body / html / * with transparent background attribute, in result will be white background in anyway.
Platform Info:
This is from SDK 0.9 I tried to run Browser sample on win10 under parallels.
It complains about not being able to create a texture and then crashes.
void GPUDriverD3D11::CreateTexture(uint32_t texture_id,
Ref<Bitmap> bitmap) {
...
if (FAILED(hr)) {
MessageBox(nullptr,
L"GPUDriverD3D11::CreateTexture, unable to create texture.", L"Error", MB_OK);
}
Name | Value | Type | |
---|---|---|---|
hr | E_INVALIDARG One or more arguments are invalid. | HRESULT | |
texture_entry | (0x0000000000000000 , 0x0000000000000000 ) | std::pair<Microsoft::WRL::ComPtr,Microsoft::WRL::ComPtr > & | |
texture_id | 1 | unsigned int |
Here's the debug output:
D3D11 ERROR: ID3D11Device::CreateTexture2D: CheckFeatureSupport() API with D3D11_FEATURE_D3D11_OPTIONS2 must report support for MapOnDefaultTextures for a D3D11_USAGE_DEFAULT Texture Resource to have CPUAccessFlags set. CPUAccessFlags are currently set to: D3D11_CPU_ACCESS_READ (0), D3D11_CPU_ACCESS_WRITE (1). MapOnDefaultBuffers is (false). [ STATE_CREATION ERROR #98: CREATETEXTURE2D_INVALIDCPUACCESSFLAGS]
Exception thrown at 0x00007FFBD4B5A388 in Browser.exe: Microsoft C++ exception: _com_error at memory location 0x000000C7285FEBE8.
D3D11 ERROR: ID3D11Device::CreateTexture2D: Returning E_INVALIDARG, meaning invalid parameters were passed. [ STATE_CREATION ERROR #104: CREATETEXTURE2D_INVALIDARG_RETURN]
The thread 0x254c has exited with code 0 (0x0).
The thread 0x20d0 has exited with code 0 (0x0).
D3D11 ERROR: ID3D11Device::CreateShaderResourceView: A ShaderResourceView cannot be created from a NULL Resource. [ STATE_CREATION ERROR #129: CREATESHADERRESOURCEVIEW_INVALIDRESOURCE]
Exception thrown at 0x00007FFBD4B5A388 in Browser.exe: Microsoft C++ exception: _com_error at memory location 0x000000C7285FEE98.
D3D11 ERROR: ID3D11Device::CreateShaderResourceView: Returning E_INVALIDARG, meaning invalid parameters were passed. [ STATE_CREATION ERROR #131: CREATESHADERRESOURCEVIEW_INVALIDARG_RETURN]
D3D11 ERROR: ID3D11Device::CreateTexture2D: CheckFeatureSupport() API with D3D11_FEATURE_D3D11_OPTIONS2 must report support for MapOnDefaultTextures for a D3D11_USAGE_DEFAULT Texture Resource to have CPUAccessFlags set. CPUAccessFlags are currently set to: D3D11_CPU_ACCESS_READ (0), D3D11_CPU_ACCESS_WRITE (1). MapOnDefaultBuffers is (false). [ STATE_CREATION ERROR #98: CREATETEXTURE2D_INVALIDCPUACCESSFLAGS]
Exception thrown at 0x00007FFBD4B5A388 in Browser.exe: Microsoft C++ exception: _com_error at memory location 0x000000C7285FEBE8.
D3D11 ERROR: ID3D11Device::CreateTexture2D: Returning E_INVALIDARG, meaning invalid parameters were passed. [ STATE_CREATION ERROR #104: CREATETEXTURE2D_INVALIDARG_RETURN]
D3D11 ERROR: ID3D11Device::CreateShaderResourceView: A ShaderResourceView cannot be created from a NULL Resource. [ STATE_CREATION ERROR #129: CREATESHADERRESOURCEVIEW_INVALIDRESOURCE]
Exception thrown at 0x00007FFBD4B5A388 in Browser.exe: Microsoft C++ exception: _com_error at memory location 0x000000C7285FEE98.
D3D11 ERROR: ID3D11Device::CreateShaderResourceView: Returning E_INVALIDARG, meaning invalid parameters were passed. [ STATE_CREATION ERROR #131: CREATESHADERRESOURCEVIEW_INVALIDARG_RETURN]
D3D11 ERROR: ID3D11Device::CreateTexture2D: CheckFeatureSupport() API with D3D11_FEATURE_D3D11_OPTIONS2 must report support for MapOnDefaultTextures for a D3D11_USAGE_DEFAULT Texture Resource to have CPUAccessFlags set. CPUAccessFlags are currently set to: D3D11_CPU_ACCESS_READ (0), D3D11_CPU_ACCESS_WRITE (1). MapOnDefaultBuffers is (false). [ STATE_CREATION ERROR #98: CREATETEXTURE2D_INVALIDCPUACCESSFLAGS]
Exception thrown at 0x00007FFBD4B5A388 in Browser.exe: Microsoft C++ exception: _com_error at memory location 0x000000C7285FEBE8.
D3D11 ERROR: ID3D11Device::CreateTexture2D: Returning E_INVALIDARG, meaning invalid parameters were passed. [ STATE_CREATION ERROR #104: CREATETEXTURE2D_INVALIDARG_RETURN]
D3D11 ERROR: ID3D11Device::CreateShaderResourceView: A ShaderResourceView cannot be created from a NULL Resource. [ STATE_CREATION ERROR #129: CREATESHADERRESOURCEVIEW_INVALIDRESOURCE]
Exception thrown at 0x00007FFBD4B5A388 in Browser.exe: Microsoft C++ exception: _com_error at memory location 0x000000C7285FEE98.
D3D11 ERROR: ID3D11Device::CreateShaderResourceView: Returning E_INVALIDARG, meaning invalid parameters were passed. [ STATE_CREATION ERROR #131: CREATESHADERRESOURCEVIEW_INVALIDARG_RETURN]
Exception thrown at 0x00007FFBB03D4979 (d3d11_3SDKLayers.dll) in Browser.exe: 0xC0000005: Access violation reading location 0x0000000000000000.
We originally built binaries with RTTI disabled to keep in accordance with the default WebKit flags, but the space-savings are negligible on Windows (saves approximately 700 KB when disabled).
We should re-enable this flag to allow users to link against Ultralight in build environments that require RTTI.
Summarize the Issue
https://github.com/ultralight-ux/ultralight/blob/master/samples/HelloWorld/src/main.cc
'../../../framework/platform/common/FontLoaderRoboto.h' file not found
Steps to Reproduce
Xcode 10
Platform Info:
MacOs 10.14
Summarize the Issue
Very low performance on simple things
Steps to Reproduce
Access the website by project Simple Browser https://materializecss.com/buttons.html
Platform Info:
Currently, CSS drop shadows render as black or not at all.
The accessibility features of WebKit are currently not exposed to the API, fix this.
Majority of work on an OpenGL GPUDriver implementation has already been completed, need to just update framework code to use it via SDL or some other cross-platform GL host.
Ideally the bindings should abstract as much of the native platform code as possible by way of the application framework to allow Electron-like usage.
In Browser sample, when hovering the mouse over a link, the cursor changes to kCursor_Hand and immediately back to kCursor_Pointer.
Steps to Reproduce
Looks like:
Platform Info:
Describe the solution you'd like
Create and expose an API to allow implementations to secure HTTPS requests against approved keys.
Describe alternatives you've considered
Using the LoadHTML to only load pages/content you've secured/verified - doesn't work with XHR.
I see it has already been mentioned on the landing page.
Just opening this issue here, because I couldn't find one tracking the progress. :)
Expose API to allow embedders to handle platform clipboard operations.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.