Код: Выделить всё
@Language("AGSL")
private static final String COLOR_SHADER_SRC =
"half4 main(float2 fragCoord) {\n" +
"return half4(1.0,0.0,0.0,1.0);\n" +
"}";
private static final RuntimeShader fixedColorShader = new RuntimeShader(COLOR_SHADER_SRC);
private static final Paint shaderPaint = new Paint();
< /code>
и в конструкторе: < /p>
shaderPaint.setShader(fixedColorShader)
< /code>
Но когда я звоню с каким -то холстом: < /p>
this.canvas.drawPaint(shaderPaint);
< /code>
Я получаю: < /p>
[SurfaceView[com.example.mandebrotset/com.example.mandebrotset.MainActivity]#1(BLAST Consumer
eglCreateWindowSurface: native_window_api_connect (win=0xb400007d4d1f56d0) failed (0xffffffea
eglCreateWindowSurfaceTmpl:689 error 3003 (EGL_BAD_ALLOC)
Exception dispatching input event.
Exception in MessageQueue callback: handleReceiveCallback
java.lang.IllegalArgumentException: Software rendering doesn't support RuntimeShader
at android.graphics.BaseCanvas.throwIfHasHwFeaturesInSwMode(BaseCanvas.java:745)
at android.graphics.BaseCanvas.throwIfHasHwFeaturesInSwMode(BaseCanvas.java:735)
at android.graphics.BaseCanvas.drawPaint(BaseCanvas.java:307)
at android.graphics.Canvas.drawPaint(Canvas.java:1832)
< /code>
[list]
[*] Я попытался перейти от API 33 к Android версии 14 с SDK API 34, но ничего не изменилось ... < /p>
< /li>
Я включен Android: HardwareAccelerated = "true" [*] Canvas от The Surface Holder дается Surfholder.lockhardwareCanvas () . Нет изменения.
[/list]
Подробнее здесь: https://stackoverflow.com/questions/794 ... timeshader