标签: renderer

使用OpenGL取代Canvas - Android

我试图用更快的opengl-es表面替换我已经拥有的基于Canvas的渲染系统,但是,我似乎无法使openGL渲染器符合这样一种方式,即它充当2d字段,而不是透视图.

我当前的渲染器代码如下所示:

     @Override
     public void onSurfaceChanged(GL10 gl, int width, int height) {
        gl.glViewport(0, 0, width, height);
        gl.glMatrixMode(GL10.GL_PROJECTION);
        gl.glLoadIdentity();
        gl.glOrthof(0.0f, width, 0.0f, height, 0.0f, 1.0f);

        gl.glShadeModel(GL10.GL_FLAT);
        gl.glEnable(GL10.GL_BLEND);
        gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
        gl.glColor4x(0x10000, 0x10000, 0x10000, 0x10000);
        gl.glEnable(GL10.GL_TEXTURE_2D);
    }

    @Override
    public void onSurfaceCreated(GL10 gl, EGLConfig config) {
        gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_FASTEST);

        gl.glClearColor(0.5f, 0.5f, 0.5f, 1);
        gl.glShadeModel(GL10.GL_FLAT);
        gl.glDisable(GL10.GL_DEPTH_TEST);
        gl.glEnable(GL10.GL_TEXTURE_2D);

        gl.glDisable(GL10.GL_DITHER);
        gl.glDisable(GL10.GL_LIGHTING);

        gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);    
    }
Run Code Online (Sandbox Code Playgroud)

如何设置渲染器以使转换变换与屏幕上的像素匹配?(所以将5向右翻译会将其移动5个像素)

java android opengl-es renderer

8
推荐指数
1
解决办法
1万
查看次数

在线Perl POD渲染器

我似乎记得有一个"官方"网站(perl.org或cpan.org),它有一个POD预览器.一个人上传了一个文件,它将显示包含在PAN上的POD.有人有此链接吗?我似乎找不到它.

perl renderer pod preview

8
推荐指数
2
解决办法
1200
查看次数

JTree将节点的背景设置为非不透明

请看一下SSCCE.如何使未选择的树节点的背景透明.目前,未选择节点的背景为白色.但是,我的单元格渲染器应该将其绘制为非透明(如果未选中)(选择时为绿色......它的作用).最后,我希望非选定节点只是没有背景的文本,因为SSCCE中红色的区域在我的应用程序中有一个渐变填充.

    import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellRenderer;

public class SimpleTree extends JFrame
{
    public static void main(final String[] args)
    {
        new SimpleTree();
    }

    public SimpleTree()
    {
        super("Creating a Simple JTree");
        final Container content = this.getContentPane();
        content.setBackground(Color.RED);
        final Object[] hierarchy = { "javax.swing", "javax.swing.border", "javax.swing.colorchooser", "javax.swing.event", "javax.swing.filechooser", new Object[] { "javax.swing.plaf", "javax.swing.plaf.basic", "javax.swing.plaf.metal", "javax.swing.plaf.multi" }, "javax.swing.table",
                        new Object[] { "javax.swing.text", new Object[] { "javax.swing.text.html", "javax.swing.text.html.parser" }, "javax.swing.text.rtf" }, "javax.swing.tree", …
Run Code Online (Sandbox Code Playgroud)

java swing treenode renderer jtree

8
推荐指数
2
解决办法
6730
查看次数

有没有办法正确对齐JCombobox中的文本

我想要一个右对齐的JComboBox.我怎样才能做到这一点?有人说"你可以设置一个渲染器到JComboBox,它可以是一个JLabel有JLabel #setHorizo​​ntalAlignment(JLabel.RIGHT)",但我不知道怎么办呢?

java swing renderer jcombobox right-align

8
推荐指数
2
解决办法
8699
查看次数

android studio中的布局预览渲染问题(Android Studio 1.2)

我在Android Studio(1.2)最新版本的预览窗口中出现以下错误,导致我无法查看我正在创建的布局,我已尝试多次重启android studio以及清理,重建项目和重新启动我的电脑

编辑:

有些项目有相同的错误,而其他旧项目工作正常

The following classes could not be instantiated:
- android.support.v7.internal.widget.ActionBarOverlayLayout (Open Class, Show Exception, Clear Cache)
Run Code Online (Sandbox Code Playgroud)

例外细节

  java.lang.NoClassDefFoundError:       android/support/v7/internal/widget/ActionBarOverlayLayout$1
    at android.support.v7.internal.widget.ActionBarOverlayLayout.<init>(ActionBarOverlayLayout.java:93)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:413)
    at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:105)
    at com.android.tools.idea.rendering.LayoutlibCallback.loadView(LayoutlibCallback.java:177)
    at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:214)
    at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:142)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:482)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
    at com.android.layoutlib.bridge.bars.BridgeActionBar.<init>(BridgeActionBar.java:84)
    at com.android.layoutlib.bridge.bars.AppCompatActionBar.<init>(AppCompatActionBar.java:56)
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.createActionBar(RenderSessionImpl.java:1691)
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:362)
    at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:321)
    at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350)
    at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:497)
    at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:485)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:894)
    at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:485)
    at com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:590)
    at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.doRender(AndroidLayoutPreviewToolWindowManager.java:644)
    at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.access$1700(AndroidLayoutPreviewToolWindowManager.java:79)
    at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7$1.run(AndroidLayoutPreviewToolWindowManager.java:586) …
Run Code Online (Sandbox Code Playgroud)

layout android renderer android-studio

8
推荐指数
1
解决办法
3万
查看次数

电子:dialog.showOpenDialog 没有返回承诺?

我想从呈现的脚本中显示一个打开对话框。

我从不同来源获得相互矛盾的信息,但据我所知,https: //electronjs.org/docs/api/dialog 上的文档表明我应该能够使用:

const dialog = require('electron').remote.dialog;
dialog.showOpenDialog({ title: '…', defaultPath: '…' })
.then(data=>console.log(data));
Run Code Online (Sandbox Code Playgroud)

我得到的错误信息是:

TypeError: dialog.showOpenDialog(...).then is not a function
Run Code Online (Sandbox Code Playgroud)

这表明它dialog.showOpenDialog()没有根据文档返回承诺。文档中的示例也不适用于我。

我知道我可以使用dialog.showOpenDialog(options,callback),并且已经成功使用,但为什么我不能使用.then()

我还注意到,如果我包含BrowserWindow它挂起的可选参数,那么问题可能会更广泛。

更新:

我已接受@rball 在下面关于版本的回答。

看来我仍在运行 Electron 5.x,而当前版本是 6.x 。文档没有具体提到它,但返回结果似乎在版本之间发生了变化。

更新到新的主要版本不直观。这是我必须做的更新:

npm outdated
npm install electron@latest -g --save
Run Code Online (Sandbox Code Playgroud)

更新 2:

为了完整起见,这里是我用来容纳两个不同版本 Electron 的代码:

if(dialog.showOpenDialog.then)
    dialog.showOpenDialog({
        title: 'Title',
        defaultPath: '…'
    })
    .then(result=> {
        if(result.canceled) return;
        var files=result.filePaths;
        //  process
    });
else
    dialog.showOpenDialog({
        title: 'Title',
        defaultPath: '…'
    },result=> {
        if(result===undefined) …
Run Code Online (Sandbox Code Playgroud)

renderer opendialog es6-promise electron

8
推荐指数
3
解决办法
5073
查看次数

Three.js - 呈现WebGLRenderTarget纹理的最有效方法是什么?

问题

我已经在我的项目中得到了一个点,我正在渲染WebGLRenderTargets并将它们用作主场景中的纹理.它有效,但似乎我要做的工作比它需要的要多得多.我生成的纹理只需要64x64,但由于我正在使用我的主渲染器(窗口宽度乘窗口高度),因此不必要地以更大的分辨率渲染WebGLRenderTargets.

我可能错了,但我相信这会增加绘制到每个RenderTarget所需的处理以及然后将大纹理绘制到网格所需的处理.

我尝试过使用第二个渲染器,但是在渲染器B中绘制到渲染器后尝试使用WebGLRenderTarget时,我似乎遇到了这个错误:

WebGL: INVALID_OPERATION: bindTexture: object not from this context

作为参考,你可以在这里看到我的抽象页面(警告:由于我正在询问的问题,这个页面可能会滞后于你).我正在我的辅助场景中的平面上运行单面函数,并使用相机放置将其切割成多个部分,然后通过WebGLRenderTarget将这些片段应用到平铺片段,以便它们能够流畅但个性化.

我是否正确地假设使用相同的渲染器大小比渲染较小的渲染器效率低得多?如果是这样,您认为最佳解决方案是什么?目前有没有办法实现这种优化?

renderer webgl three.js

7
推荐指数
1
解决办法
2012
查看次数

ApplicationStatus类E/SysUtils:ApplicationStat中的ApplicationContext为null

我不时在LogCat中收到此错误:

E/SysUtils:ApplicationStat中的ApplicationContext为null

有谁知道ApplicationStatus类?我没有在我的项目中

它发生在我在openGL中快速渲染纹理时

android opengl-es renderer

7
推荐指数
1
解决办法
5653
查看次数

浏览器如何重构无效的html结构,有什么规律或方法吗?

笔记:

答案会是这样的..是的..有规则和方法..这取决于收养机构的算法等。你可以按照这些(链接)等和你的简短描述。我不是在寻找任何算法或更多..

例如,如果一个a标签嵌套一个a 标签。chrome 浏览器重组 html 。类似的button标签。两者都是无效的 html 结构

我知道abutton标签都是交互元素。交互元素(a、按钮、输入等)与用户的活动相关。

从评论:

这个问题太宽泛了。

  1. 仅回答以下示例代码或场景。

我认为每个浏览器都应该从某个地方以相同的方式工作......这意味着应该遵循一些基本规则或方法。如果有人发现类似的东西,请提及。

为什么我要找这个?

当我为客户工作时。我发现许多无效的 html 结构。多种类型的html结构。有时我需要重新设计无效的 html 结构。我想我需要了解浏览器重构的概念以进行进一步的 Web 开发。

遵循这些问题 Q1Q2

 let aTag = document.querySelectorAll('a')
    let buttonTag = document.querySelectorAll('button')
   
 console.log('===a tag===')
    aTag.forEach(function(item){
         console.log(item)
    })
     console.log('===button tag===')

      buttonTag.forEach(function(item){
         console.log(item)
    })
Run Code Online (Sandbox Code Playgroud)
 .card{
      display: flex;
      flex-direction: column;
      padding: 10px;
      border: 1px solid slateblue;
       width: 200px;
      text-align: center;
 }
Run Code Online (Sandbox Code Playgroud)
<a href="" class="parent a-tag">
    <div class="card">
        <h4>Title</h4>
        <p>Paragraph</p>
        <button>Add to …
Run Code Online (Sandbox Code Playgroud)

html javascript browser dom renderer

7
推荐指数
1
解决办法
373
查看次数

如何在我的反应测试中模拟状态和数据的值

我正在为我的反应页面编写测试,但我的页面在其状态下使用 isLoading,加载页面时呈现“正在加载”,加载但没有数据(来自获取请求)呈现“未找到数据”,并且加载时呈现“未找到数据”数据(来自获取请求)加载欢迎页面。

我想编写一个测试来检查在以下情况下显示预期文本:

  • 页面已加载但未找到数据
  • 页面已加载并有数据

我想我已经成功地没有数据测试正常工作,但是当我尝试模拟它返回的数据时,我收到了错误消息。错误信息是

TypeError: Cannot read property 'map' of undefined
Run Code Online (Sandbox Code Playgroud)

但我不确定为什么我的模拟数据是 data: orders > 其中包含数据,因此不应未定义。

有人可以告诉我如何纠正测试吗?

欢迎页面.js

import React from "react";
import { Link } from "react-router-dom";

class WelcomePage extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      data: [],
      isLoading: false,
    };
  }

  componentDidMount() {
    this.setState({ isLoading: true });
    const proxyurl = "https://cors-anywhere.herokuapp.com/";
    const url =
      "mu url"
    fetch(proxyurl + url)
      .then((res) => res.json())
      .then((data) => this.setState({ data: data, isLoading: false }));
  }

  render() {
    const …
Run Code Online (Sandbox Code Playgroud)

state renderer reactjs react-test-renderer

7
推荐指数
1
解决办法
2万
查看次数